Skip to content

A cross platform mobile app for LumiNUS based on Flutter and luminus_api Dart package.

License

Notifications You must be signed in to change notification settings

fluminus/fluminus_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fluminus App

Build Status Codemagic build status License

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

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) ✔
  • 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

Milestones

Please look at our Project board for both finished features/bug fixes/enhancements and future plans.

Related work

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.

"Pulse"

Stats (by 01/07/2019)

  • 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.
  • 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.

Development stack

Flutter, SQLite in Flutter, Express (A web framework written in NodeJS), Firebase

Fabric, Travis CI, Codemagic (CI/CD for Flutter)

Developers

Tan Yuanhong

  • 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

Zhang Xiaoyu

  • 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

Tester

Raivat Shah

About

A cross platform mobile app for LumiNUS based on Flutter and luminus_api Dart package.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages