Skip to content

EkagraS/UniTrack

Repository files navigation

UniTrack

UniTrack is an Android application designed to help students organize and manage their academic activities in a structured and practical way. The app focuses on reducing manual effort involved in tracking attendance, remembering class schedules, planning study sessions, and managing short-term academic tasks.

Instead of acting as a simple checklist app, UniTrack combines background automation, reminders, and cloud sync to handle repetitive academic workflows with minimal user interaction.


🎯 Why UniTrack?

Students often rely on multiple apps or manual notes to track attendance, marks, schedules, and study plans. UniTrack brings these into a single system where most routine actions (such as attendance marking, task cleanup, and reminders) happen automatically in the background.

The goal is not just to store data, but to reduce the cognitive load of managing academic routines.


📱 Core Features

  • Course Management
    Add and manage courses with schedule, timings, faculty details, attendance tracking, and internal marks.
  • Attendance Tracking
    Attendance is updated daily based on course schedules using background workers, with user control to mark absences when required.
  • Study Planner
    Create time-based study sessions for specific courses and topics. Sessions are automatically cleared after their due time.
  • Quick Tasks
    Lightweight tasks for short-term reminders, automatically removed after a fixed duration.
  • Class Reminders
    Class alarms can be enabled per course, with a global setting to control how many minutes before the class the reminder should trigger.
  • Settings & Preferences
    Manage notification preferences, alarm timing, appearance settings, and account-related actions from a dedicated settings screen.

🛠 Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose (Material 3)
  • Architecture: MVVM
  • Authentication: Firebase Authentication
  • Database: Firebase Firestore
  • Background Processing: WorkManager
  • Reminders & Alerts: Alarm Manager + Notifications
  • Local Preferences: DataStore

📸 Screenshots

Below are screenshots of the current implementation of UniTrack. All screens shown correspond to features that are fully implemented in the app.

Login Screen

Home Screen

The main dashboard providing quick access to courses, tasks, and study plans.

All Courses

List of all added courses with attendance and quick navigation.

Course Dashboard

Detailed view of a course showing attendance records, marks, and alarm controls.

Add Course

Course creation screen including schedule, timings, and attendance configuration.

Study Planner

Study planner screen with an empty state and bottom sheet used to add a new study session.

Settings

Settings screen used to control alarms, notification behavior, appearance, and account-related actions.


⚙️ Background Automation

UniTrack relies heavily on background processing to reduce manual work for the user. Several features are intentionally designed to work without requiring the app to be opened daily.

  • Quick Task Cleanup
    Short-term tasks are automatically removed after a fixed duration using WorkManager, preventing clutter without user intervention.
  • Study Planner Cleanup
    Study sessions are time-bound. Once a session crosses its due time, it is automatically removed using a one-time background worker.
  • Daily Attendance Update
    Attendance is updated daily based on the course schedule. If a class is scheduled for the day, attendance is marked automatically in the background.

All background work is scheduled in a way that respects Android system constraints and does not rely on the app being open in the foreground.


⏰ Alarms & Notifications

UniTrack separates reminders into two different categories to avoid unnecessary alerts:

  • Class Alarms
    Class reminders are handled using Alarm Manager for exact-time alerts. Alarms can be enabled or disabled per course, and also require a global setting to be enabled.
  • Study Planner Notifications
    Daily study reminders are delivered as notifications rather than alarms, ensuring they are informative without being disruptive.

Users can control how many minutes before a class the reminder should trigger, and alarms are scheduled or cancelled dynamically when settings change.


🗂 Data Lifecycle & Cleanup Strategy

Instead of keeping all user-generated data indefinitely, UniTrack follows a lifecycle-based data approach:

  • Quick tasks expire automatically
  • Study sessions are removed after their due time
  • Attendance is updated daily instead of manually tracked

This keeps the data relevant, prevents performance degradation over time, and ensures that the app remains lightweight even with prolonged usage.


🎨 UI & UX Decisions

The UI is built entirely using Jetpack Compose with Material 3 components. Key design choices include:

  • Bottom sheets instead of traditional dialog boxes for better flow
  • Clear empty states to guide first-time users
  • Minimal input screens with sensible defaults
  • Settings grouped by intent (alarms, preferences, account)

The app prioritizes clarity and ease of use over excessive customization.


🔐 Permissions & System Integration

UniTrack uses only required permissions and requests them contextually:

  • Notification permission for reminders
  • Exact alarm permission only when class alarms are enabled

Permissions are requested at the point of use rather than during app launch, to avoid overwhelming the user.


📦 Project Structure

  • UI Layer: Jetpack Compose screens
  • State Management: ViewModels with observable state
  • Data Layer: Firebase Firestore + DataStore
  • Background Layer: WorkManager workers
  • System Services: Alarm Manager and Notifications

The project follows a clear separation of concerns to keep features isolated and maintainable as the app grows.


🚧 Known Limitations

  • Offline-first sync is limited and depends on Firebase availability
  • Attendance logic assumes consistent class schedules
  • Advanced analytics are intentionally kept minimal

These trade-offs were made to keep the app focused and reliable for daily use.


📌 Notes

UniTrack is actively evolving and was built with extensibility in mind. The current implementation reflects practical design choices rather than feature inflation.

Acknowledgement

Thanks to my friends, family and everyone who supported and motivated me throughout the development of this project.

About

An app for college/school going people to store their college info like attendance, marks, notes and everything.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages