An overall much better LMS (Learning management system) experience on LumiNUS, and more to truly illuminate your learning path, written in Dart, built with Flutter, available on both iOS and Android.
Naming courtesy to https://github.com/indocomsoft/fluminus
Features implemented by milestone 2 are labeled with a ✔
- A better LumiNUS mobile experience
- push notifications powered by Firebase Cloud Messaging ✔
- announcement
- file upload
- forum posts & reply //wonderful if we only receive “favourite” ones
- web lecture update
- offline file management (SQLite) ✔
- gmail-like announcement management (schedule & archive announcements) ✔
- push notifications powered by Firebase Cloud Messaging ✔
- A task management tool (todo-list)
- Basic task management ✔
- Intelligent suggestions (extract event and time info from announcements) ✔
- Progress track (allow users to break one big task into baby steps, and track the progress)
- A forum for module-related discussions ✔
- share past year materials
- more user-friendly forum experience than LumiNUS forums
Please look at our Project board for both finished features/bug fixes/enhancements and future plans.
fluminus the project that inspired this project, a library in Elixir to access the reverse-engineered LumiNUS API.
luminus_api a Dart library providing abstraction for LumiNUS's OpenID Connect authentication flow and API responses.
fluminus_server server-side application that currently mainly powers the push notification service.
- Within Fluminus app itself, 3741 lines of Dart code is written under
\lib
folder.- Note that we abstracted out almost any repetitive UI element into
\lib\widgets
folder and any repetitive helper functions into\lib\db
and\lib\util.dart
respectively, and Flutter (or SwiftUI or any declarative frameworks) are much more concise compared with imperative implementations.
- Note that we abstracted out almost any repetitive UI element into
- On the fluminus_app, from June 1, 2019 – July 1, 2019, excluding merges, 2 authors have pushed 69 commits to master and 85 commits to all branches. On master, 93 files have changed and there have been 4,369 additions and 668 deletions.
Flutter, SQLite in Flutter, Express (A web framework written in NodeJS), Firebase
Fabric, Travis CI, Codemagic (CI/CD for Flutter)
- Overall architecture of the Fluminus app
- Kickstarter of Fluminus app by writing and maintaining luminus_api
- Main writer of the file management and push notification sections
- Maintainer of server-side applications (push notification service & forum)
- iOS-side platform-specific optimization and distribution
- Overall UI&UX design of the Fluminus app
- Main writer of the announcement & task management sections
- Introduces Redux as the complex state management method for the app
- Abstracted UI elements into reusable widgets under
\lib\widgets
- Android-side platform-specific optimization and distribution