Offline-First Campus Timetable and Assignment Reminders
Students find their timetable in a PDF on a notice board, a photo in a WhatsApp group, or a portal that will not load on weak mobile data, and assignment deadlines are announced in class and forgotten. Build an offline-first mobile app that holds a student's weekly timetable and assignments, sends reminders without a connection, and lets a class representative share timetable changes with the whole section. A beginner mobile project with real offline and notification problems to solve.
Beginner
Achievable by one student in a semester with familiar tools.1 semester · 2 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- Weekly and today timetable views that work fully offline
- Assignments, quizzes and exams with due dates, notes and a completion state
- Local reminders that fire without a connection and survive a phone restart
- Timetable import from a CSV template
- Section sharing, where a class representative publishes timetable changes and announcements that sync to students
- An offline and notification test plan run on at least three Android phone brands
- A three-week trial with a real section and an internal testing release on Google Play
If you have time left
- A home screen widget showing the next class
- Export of deadlines to Google Calendar
- An iOS build with the same features
- Attendance tracking per course with a warning before the minimum attendance requirement is breached
Problem
Timetables change during the semester: a class moves room, a lecture is rescheduled, a quiz is announced for Thursday. The news travels through a class representative's WhatsApp message that half the section misses. Students who check the university portal find it slow or unreachable, and deadlines live in memory until the night before.
What you build
- A weekly timetable view, and a today view with the next class, room and teacher.
- Assignments, quizzes and exams with due dates, course, notes and a done state.
- Local reminders before each deadline at chosen intervals, and optionally before each class.
- Full offline use. Every screen works in airplane mode, and nothing is lost when the phone restarts.
- Sharing: a class representative publishes the section's timetable and announcements, and students join the section with a code or QR code and receive updates the next time they connect.
- Import of a timetable from a simple CSV template, since most departments already keep it in a spreadsheet.
Suggested architecture
- Stack: Flutter, with Drift over SQLite for local storage and flutter_local_notifications for reminders. React Native with Expo and SQLite, or native Kotlin with Room, are fine alternatives. Pick one and stay with it.
- Local first: the local database is the source of truth for the student's own data, and network calls never block the interface.
- Sync for shared sections: a small backend (Firebase, Supabase, or a Node.js API with PostgreSQL) holds section timetables and announcements. Clients pull changes since their last sync. Personal assignments stay on the device unless the student opts into backup.
- Reminders: schedule notifications on the device so they fire without a connection, and reschedule them whenever the timetable changes.
Milestones by month
- Month 1: a survey of 30 students on how they track classes and deadlines, local data model, timetable screens.
- Month 2: assignments, local reminders, CSV import.
- Month 3: sections, class representative publishing, sync with change history, offline test plan.
- Month 4: a three-week trial with at least one section, fixes, an internal testing release on Google Play, report and demo.
How it will be assessed
- A demo in airplane mode: add an assignment, restart the phone, and receive the reminder.
- A timetable change published by the class representative reaching every student's device after they reconnect, with reminders rescheduled.
- Reminder reliability on at least three Android phone brands, reported honestly.
- Trial results: daily active users, reminders delivered, and feedback from students and the class representative.
Pitfalls
- Battery optimisation on popular Android brands stops scheduled notifications. Test on real devices from several manufacturers, guide users to exempt the app, and document which phones still fail.
- Starting with a university portal integration. Portals change, block scrapers and need permission. CSV import and a class representative are enough.
- Storing class times without a rule for the semester calendar, public holidays and make-up classes.
- Adding chat. WhatsApp already exists; announcements are one way.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.