How daniel-pino-2000/tadu works
Tadu is an Android task-management app. Users authenticate, then create and organize tasks, review them in today, search, calendar, or history views, and schedule reminders. TaskViewModel mediates UI actions through TaskRepository, which uses Room as the local read/write store and syncs task changes with Firebase. Authentication and settings have separate repository-backed flows; reminders are delivered through Android alarms and receivers. The README documents capabilities beyond the sampled excerpts, so those components are included where the tree supports them; some screen-to-view-model wiring is not independently verified in the excerpts.
Main entry points: Navigation.kt Navigation · TaskViewModel.kt Task state · TaskRepository.kt Task repository · AuthViewModel.kt Auth state
Components 27
App interface
- App entry
app/src/main/java/com/myapp/tadu/MainActivity.kt - Navigation
app/src/main/java/com/myapp/tadu/navigation/Navigation.kt - Today and search
app/src/main/java/com/myapp/tadu/HomeView.kt - Task editor
app/src/main/java/com/myapp/tadu/AddTaskView.kt - Calendar view
app/src/main/java/com/myapp/tadu/TaskCalendarView.kt - Task history
app/src/main/java/com/myapp/tadu/TaskHistoryView.kt - Settings view
app/src/main/java/com/myapp/tadu/TaskSettingsView.kt - Login and signup
app/src/main/java/com/myapp/tadu/screens/LogInScreen.kt - Signup view
app/src/main/java/com/myapp/tadu/screens/SignUpScreen.kt
Task workflow
- Task state
app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt - Task model
app/src/main/java/com/myapp/tadu/data/Task.kt
Identity and settings
- Auth state
app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt - User repository
app/src/main/java/com/myapp/tadu/data/remote/UserRepository.kt - Settings state
app/src/main/java/com/myapp/tadu/settings/SettingsViewModel.kt - Settings repository
app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt - Preferences store
app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt
Reminders
- Reminder scheduler
app/src/main/java/com/myapp/tadu/notifications/AndroidReminderScheduler.kt - Reminder receiver
app/src/main/java/com/myapp/tadu/notifications/ReminderReceiver.kt - Boot receiver
app/src/main/java/com/myapp/tadu/notifications/BootReceiver.kt
Persistence and cloud
- Task repository
app/src/main/java/com/myapp/tadu/data/TaskRepository.kt - Task DAO
app/src/main/java/com/myapp/tadu/data/TaskDao.kt - Room database
app/src/main/java/com/myapp/tadu/data/TaskDatabase.kt - Cloud task service
app/src/main/java/com/myapp/tadu/data/remote/TaskCloudService.kt
Other components
- User
- Firebase services
- Android alarms
- Device calendar
Connections 32
- User → App entry: opens app
- App entry → Navigation: shows routes
- Navigation → Today and search: routes to
- Navigation → Task editor: routes to
- Navigation → Calendar view: routes to
- Navigation → Task history: routes to
- Navigation → Settings view: routes to
- Navigation → Login and signup: routes to
- Navigation → Signup view: routes to
- Today and search → Task state: uses state
- Task editor → Task state: updates tasks
- Calendar view → Task state: uses tasks
- Task history → Task state: uses tasks
- Task state → Task repository: requests operations
- Task repository → Task DAO: reads and writes
- Task DAO → Room database: queries
- Task repository → Cloud task service: syncs tasks
- Cloud task service → Firebase services: reads and writes
- Task repository → Task model: handles
- Task editor → Device calendar: launches calendar
- Login and signup → Auth state: submits credentials
- Signup view → Auth state: submits registration
- Settings view → Auth state: account actions
- Auth state → User repository: requests auth
- User repository → Firebase services: auth and profile
- Settings view → Settings state: updates preferences
- Settings state → Settings repository: reads and writes
- Settings repository → Preferences store: persists preferences
- Task state → Reminder scheduler: schedules reminders
- Reminder scheduler → Android alarms: sets alarms
- Android alarms → Reminder receiver: fires alarm
- Boot receiver → Reminder scheduler: reschedules alarms