Lectures — Academic Companion
Native Android academic companion for MUST students. 7-day timetable with a live tracker, lecture notes, task deadlines, an academic calendar, and a real-time campus vacant-room finder. Kotlin + Jetpack Compose M3 + Room.
A native Android academic companion for Mbarara University of Science and Technology students. It combines a 7-day timetable with a live "happening now / next up" tracker, rich lecture notes linked to enrolled courses, a task and deadline manager with priority tiers, a unified academic calendar, and a real-time campus vacant-rooms finder that cross-references timetables against buildings and lecture halls to show which rooms are free and for how long. Built on Clean MVVM with unidirectional data flow: Jetpack Compose M3 for the UI, Kotlin Coroutines and Flow for state, and a Room/SQLite single source of truth that keeps the app fully functional offline. Strictly on-device — no telemetry, no data harvesting; all academic data stays in private SQLite files.
Highlights
- Real-time campus vacant-rooms finder derived from timetable data
- Fully offline — Room/SQLite as the single source of truth
- Zero telemetry: no tracking, no data harvesting, on-device only
- Six documented subsystems with a full docs/ index in the repo
Technical architecture
- UI layer: Jetpack Compose M3 screens (Timetable, Calendar, Notes, Tasks) render state from ViewModels.
- ViewModel layer: Clean MVVM with unidirectional data flow — screens emit user events, ViewModels expose UiState via StateFlow.
- Repository layer: a single TimetableRepository acts as the source of truth and data-sync engine.
- Data layer: Room/SQLite for on-device persistence; AlarmManager schedules class and deadline notifications.
- Privacy: zero telemetry — no analytics, no network collection; all student data stays on device.