StudyBuddy - Android Study Tracker By Steven Price StudyBuddy is a mobile application built with Jetpack Compose and Firebase designed to help students track their focus time, manage subjects, and visualize their academic progress.
Full Demo Here: https://youtu.be/1Ze6XQ6SDo0
Core Features
- Secure Authentication Login Screen: Uses Firebase Email/Password Authentication to verify returning users and securely manage sessions.
Sign Up Screen: Handles new user registration, instantly creating a unique User ID (UID) in the Firebase backend to isolate personal study data.
- Personalized Dashboard The command center of the app, providing:
Subject Overview: A dynamic grid of enrolled classes.
Time Tracking: Real-time calculation of "Focused Time" synced from the local database.
Task Management: A glance at upcoming deadlines or study goals.
- Academic Organization Subjects List: Displays all subjects with an aggregated "Total Study Time" per subject.
Subject Details: A deep dive into a specific class, listing historical study sessions and performance statistics.
- Study Session Logging Users can "Add Study Session" to log:
Duration: The exact time spent studying.
Notes: Qualitative data on what was covered.
Rating: A self-assessment of how productive the session was.
Data Management (CRUD Operations) The app utilizes Room Database for local persistence and Firebase for cloud identity, implementing the four fundamental "CRUD" operations:
Create: Add new classes (e.g., "Calculus", "Mobile Dev").
Read: Fetch and display the list of subjects on the Dashboard.
Update: Modify subject names or icons.
Delete: Remove a subject. Note: Implements Cascade Delete to ensure all associated study sessions are removed if a subject is deleted.
Study Sessions Create: Log new focus blocks after a timer ends.
Read: Query sessions by specific subject, by date (for stats), or view an "all sessions" history.
Update/Delete: Correct or remove logged sessions to keep study data accurate.
Tech Stack Language: Kotlin
UI Framework: Jetpack Compose
Backend: Firebase Auth
Local Database: Room SQLite
Navigation: Compose Navigation Component
