How xygritte/mytask-academic-planer-app works
MyTask is an Android academic planner for managing courses, tasks and class schedules, with calendar/dashboard views, reminders, account-based cloud sync, templates and backup/restore. The main entry point gates access to the workspace and coordinates account sync; feature screens provide the planning workflow, while repositories connect it to local and cloud state. The README is only a one-line product description, and several feature implementations were not sampled, so uncertain internal wiring is omitted.
Main entry points: NavGraph.kt Navigation · MainActivity.kt App entry · FirebaseAuthRepository.kt Firebase auth · CloudDataSyncRepositoryEntityMerge.kt Cloud data sync
Components 24
App and access
- App entry
app/src/main/java/com/mytask/MainActivity.kt - Navigation
app/src/main/java/com/mytask/navigation/NavGraph.kt - Login screens
app/src/main/java/com/mytask/ui/login/LoginScreen.kt
Academic planning
- Dashboard
app/src/main/java/com/mytask/ui/dashboard/DashboardScreen.kt - Calendar
app/src/main/java/com/mytask/ui/calendar/CalendarScreen.kt - Course management
app/src/main/java/com/mytask/ui/course/CourseListScreen.kt - Task management
app/src/main/java/com/mytask/ui/task/TaskListScreen.kt - Schedule management
app/src/main/java/com/mytask/ui/schedule/ScheduleScreen.kt - Academic templates
app/src/main/java/com/mytask/ui/template/AcademicTemplateDialog.kt
Data and accounts
- Course repository
app/src/main/java/com/mytask/data/repository/CourseRepository.kt - Task repository
app/src/main/java/com/mytask/data/repository/TaskRepository.kt - Schedule repository
app/src/main/java/com/mytask/data/repository/ScheduleRepository.kt - Template application
app/src/main/java/com/mytask/data/repository/TemplateApplyRepository.kt - Room database
app/src/main/java/com/mytask/data/local/MyTaskDatabase.kt - Firebase auth
app/src/main/java/com/mytask/data/repository/FirebaseAuthRepository.kt - Profile state
app/src/main/java/com/mytask/data/repository/UserProfileRepository.kt - Cloud data sync
app/src/main/java/com/mytask/data/repository/CloudDataSyncRepositoryEntityMerge.kt - Backup and restore
app/src/main/java/com/mytask/data/repository/BackupRepository.kt
Reminders
- Reminder settings
app/src/main/java/com/mytask/ui/profile/NotificationSettingsScreen.kt - Reminder scheduler
app/src/main/java/com/mytask/Notification/ReminderScheduler.kt - Daily reminder worker
app/src/main/java/com/mytask/Notification/DailyReminderWorker.kt - Notification delivery
app/src/main/java/com/mytask/Notification/NotificationHelper.kt
Other components
- Student
- Firebase services
Connections 23
- Student → App entry: opens
- App entry → Navigation: hosts
- App entry → Firebase auth: checks session
- App entry → Cloud data sync: syncs account data
- App entry → Login screens: shows access gate
- Student → Dashboard: uses planner
- Navigation → Dashboard: routes
- Navigation → Calendar: routes
- Navigation → Course management: routes
- Navigation → Task management: routes
- Navigation → Schedule management: routes
- Navigation → Login screens: routes
- Firebase auth → Profile state: stores profile state
- Firebase auth → Cloud data sync: coordinates data sync
- Firebase auth → Firebase services: reads profile
- Cloud data sync → Room database: reads and replaces
- Cloud data sync → Firebase services: merges cloud data
- Backup and restore → Room database: exports and imports
- Academic templates → Template application: applies selection
- Reminder settings → Reminder scheduler: configures reminders
- Reminder scheduler → Daily reminder worker: schedules work
- Daily reminder worker → Room database: reads tasks and schedules
- Daily reminder worker → Notification delivery: posts or cancels