An Android application designed to help students manage their study time more effectively — tracking progress per subject, organising tasks, and providing personalised study recommendations.
Built as a final project for the Mobile Computing course at Universidade de Aveiro (2024/2025).
- Subject management — create subjects with a defined study goal in hours and track progress over time
- Study session timer — start and stop timed study sessions with ambient background music to aid focus
- Task management — create tasks with priority levels, due dates, and subject associations
- Study recommendations — intelligent suggestions based on the gap between current progress and defined goals
- Session history — full log of completed study sessions per subject
- Daily reminders — scheduled notifications to encourage consistent study habits
- Inactivity alerts — motivational notifications after periods of inactivity
- QR Code scanner — scan codes to navigate directly to a subject (experimental)
- Study Mode — location-based automatic activation of focus mode (experimental)
- Firebase Authentication — email/password login and Google Sign-In
StudyFlow follows MVVM (Model-View-ViewModel) with a clean layer separation:
app/
├── domain/ # Models and repository contracts
├── data/ # Room DB, DAOs, repository implementations, Firebase auth
├── presentation/ # Screens and ViewModels per feature (auth, dashboard, subject, task, session, qr)
├── di/ # Hilt dependency injection modules
├── location/ # Geofencing managers and Study Mode logic
└── util/ # Shared utilities
| Layer | Technology |
|---|---|
| UI | Jetpack Compose + Material 3 |
| Navigation | Compose Destinations |
| Architecture | MVVM + StateFlow + Coroutines |
| Dependency Injection | Hilt 2.48 |
| Local persistence | Room 2.5.2 |
| Authentication | Firebase Authentication (email + Google Sign-In) |
| Background work | WorkManager 2.9.0 |
| Foreground service | Study session timer with notification |
| Location | Play Services Geofencing API |
| QR scanning | ZXing (zxing-android-embedded) |
| Min SDK | 23 (Android 6.0) |
| Target SDK | 34 (Android 14) |
- Android Studio Hedgehog or later
- Android device or emulator running API 23+
- Clone the repository
git clone https://github.com/pedromariano18/ICM-StudyFlow.git-
Open the project in Android Studio
-
Add your own
google-services.jsonfrom the Firebase Console toapp/ -
Build and run on a device or emulator
A test account is available for quick evaluation without registration:
- E-mail: pedro@gmail.com
- Password: benfica
- Study Mode (geofencing) — implemented but left in experimental state due to background location permission complexity and battery impact
- QR Code shared sessions — scanner is functional but session-sharing redirects incorrectly to login screen; under revision
- QR subject IDs — currently hardcoded; database integration pending
MIT License — see LICENSE for details.







