Skip to content

pedromariano18/ICM-StudyFlow

Repository files navigation

StudyFlow

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


Screenshots


Features

  • 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

Architecture

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

Tech stack

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)

Getting started

Pre-requisites

  • Android Studio Hedgehog or later
  • Android device or emulator running API 23+

Setup

  1. Clone the repository
git clone https://github.com/pedromariano18/ICM-StudyFlow.git
  1. Open the project in Android Studio

  2. Add your own google-services.json from the Firebase Console to app/

  3. Build and run on a device or emulator

Demo account

A test account is available for quick evaluation without registration:


Known limitations

  • 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

License

MIT License — see LICENSE for details.

About

Android study management app built with Jetpack Compose, Room, Firebase and Hilt

Topics

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages