MUGMARP
All projects
/projects/must-timetable-android·mobile· 2025
Featuredactive

MUST Timetable Android

Native Android app for MUST students. Real timetables, personal notes, alarms, full offline support. Kotlin + Jetpack Compose + Room + Firebase.

Overview

A native Android application for Mbarara University of Science and Technology students. Pulls live teaching timetables, supports personal lecture notes, fires alarms before each class, and works fully offline — important for students on campus with patchy connectivity. Built with Jetpack Compose for the UI, Room for local persistence, and Firebase Firestore for the shared timetable feed. Anonymous authentication keeps onboarding frictionless while the data layer stays the source of truth on-device.

Highlights

  • Full offline support via Room as the source of truth
  • Anonymous Firebase auth — zero-friction onboarding for students
  • Background alarms via WorkManager for class reminders
  • Production Firestore rules with rate-limiting per device

Technical architecture

  • UI layer: Jetpack Compose screens (TimetableScreen, WelcomeScreen, MainScaffold) consume StateFlow from ViewModels.
  • ViewModel layer: holds screen state, orchestrates repository calls, survives configuration changes.
  • Repository layer: abstracts Room (local source of truth) vs Firestore (remote feed). Falls back to local on no-network.
  • Data layer: Room entities for classes/notes/alarms; Firestore documents mirror timetable updates; anonymous auth gates writes.
  • Side effects: WorkManager schedules lecture alarms; notifications fire even when app is backgrounded.
Stack
KotlinJetpack ComposeRoomFirebase FirestoreFirebase AuthCoroutinesStateFlow
Statusactive
Year2025