# daniel-pino-2000/tadu architecture

> Architecture diagram of the GitHub repository daniel-pino-2000/tadu, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/daniel-pino-2000/tadu
- Repository: https://github.com/daniel-pino-2000/tadu

## Overview

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: [`app/src/main/java/com/myapp/tadu/navigation/Navigation.kt`](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/navigation/Navigation.kt) (Navigation), [`app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt`](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt) (Task state), [`app/src/main/java/com/myapp/tadu/data/TaskRepository.kt`](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskRepository.kt) (Task repository), [`app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt`](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt) (Auth state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App interface"]
  node_activity["App entry<br/>[MainActivity.kt]"]
  node_navigation["Navigation<br/>[Navigation.kt]"]
  node_home["Today and search<br/>[HomeView.kt]"]
  node_task_editor["Task editor<br/>[AddTaskView.kt]"]
  node_calendar["Calendar view"]
  node_history["Task history<br/>[TaskHistoryView.kt]"]
  node_settings_ui["Settings view"]
  node_login_ui["Login and signup<br/>[LogInScreen.kt]"]
  node_signup_ui["Signup view<br/>[SignUpScreen.kt]"]
end

subgraph group_tasks["Task workflow"]
  node_task_vm["Task state<br/>[TaskViewModel.kt]"]
  node_task_model["Task model<br/>[Task.kt]"]
end

subgraph group_identity["Identity and settings"]
  node_auth_vm["Auth state<br/>[AuthViewModel.kt]"]
  node_user_repo["User repository<br/>[UserRepository.kt]"]
  node_settings_vm["Settings state"]
  node_settings_repo["Settings repository"]
  node_settings_store[("Preferences store")]
end

subgraph group_reminders["Reminders"]
  node_scheduler["Reminder scheduler"]
  node_reminder_receiver["Reminder receiver"]
  node_boot_receiver["Boot receiver<br/>[BootReceiver.kt]"]
end

subgraph group_storage["Persistence and cloud"]
  node_task_repo["Task repository<br/>[TaskRepository.kt]"]
  node_task_dao["Task DAO<br/>[TaskDao.kt]"]
  node_room[("Room database<br/>[TaskDatabase.kt]")]
  node_cloud_tasks["Cloud task service"]
end

node_user(("User"))
node_firebase[("Firebase services")]
node_android_alarms["Android alarms"]
node_device_calendar["Device calendar"]

node_user -->|"opens app"| node_activity
node_activity -->|"shows routes"| node_navigation
node_navigation -->|"routes to"| node_home
node_navigation -->|"routes to"| node_task_editor
node_navigation -->|"routes to"| node_calendar
node_navigation -->|"routes to"| node_history
node_navigation -->|"routes to"| node_settings_ui
node_navigation -->|"routes to"| node_login_ui
node_navigation -->|"routes to"| node_signup_ui
node_home -->|"uses state"| node_task_vm
node_task_editor -->|"updates tasks"| node_task_vm
node_calendar -->|"uses tasks"| node_task_vm
node_history -->|"uses tasks"| node_task_vm
node_task_vm -->|"requests operations"| node_task_repo
node_task_repo -->|"reads and writes"| node_task_dao
node_task_dao -->|"queries"| node_room
node_task_repo -->|"syncs tasks"| node_cloud_tasks
node_cloud_tasks -->|"reads and writes"| node_firebase
node_task_repo -->|"handles"| node_task_model
node_task_editor -.->|"launches calendar"| node_device_calendar
node_login_ui -->|"submits credentials"| node_auth_vm
node_signup_ui -->|"submits registration"| node_auth_vm
node_settings_ui -->|"account actions"| node_auth_vm
node_auth_vm -->|"requests auth"| node_user_repo
node_user_repo -->|"auth and profile"| node_firebase
node_settings_ui -->|"updates preferences"| node_settings_vm
node_settings_vm -->|"reads and writes"| node_settings_repo
node_settings_repo -->|"persists preferences"| node_settings_store
node_task_vm -->|"schedules reminders"| node_scheduler
node_scheduler -->|"sets alarms"| node_android_alarms
node_android_alarms -->|"fires alarm"| node_reminder_receiver
node_boot_receiver -->|"reschedules alarms"| node_scheduler

click node_activity "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/MainActivity.kt"
click node_navigation "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/navigation/Navigation.kt"
click node_home "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/HomeView.kt"
click node_task_editor "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/AddTaskView.kt"
click node_calendar "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskCalendarView.kt"
click node_history "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskHistoryView.kt"
click node_settings_ui "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskSettingsView.kt"
click node_login_ui "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/screens/LogInScreen.kt"
click node_signup_ui "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/screens/SignUpScreen.kt"
click node_task_vm "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt"
click node_task_model "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/Task.kt"
click node_task_repo "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskRepository.kt"
click node_task_dao "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskDao.kt"
click node_room "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskDatabase.kt"
click node_cloud_tasks "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/remote/TaskCloudService.kt"
click node_auth_vm "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt"
click node_user_repo "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/remote/UserRepository.kt"
click node_settings_vm "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsViewModel.kt"
click node_settings_repo "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt"
click node_settings_store "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt"
click node_scheduler "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/AndroidReminderScheduler.kt"
click node_reminder_receiver "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/ReminderReceiver.kt"
click node_boot_receiver "https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/BootReceiver.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_activity,node_navigation,node_home,node_task_editor,node_calendar,node_history,node_settings_ui,node_login_ui,node_signup_ui,node_user toneBlue
class node_task_vm,node_task_model,node_firebase toneAmber
class node_auth_vm,node_user_repo,node_settings_vm,node_settings_repo,node_settings_store toneMint
class node_scheduler,node_reminder_receiver,node_boot_receiver toneRose
class node_task_repo,node_task_dao,node_room,node_cloud_tasks,node_android_alarms,node_device_calendar toneIndigo
```

## Components

### App interface

- [App entry](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/MainActivity.kt): `app/src/main/java/com/myapp/tadu/MainActivity.kt`
- [Navigation](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/navigation/Navigation.kt): `app/src/main/java/com/myapp/tadu/navigation/Navigation.kt`
- [Today and search](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/HomeView.kt): `app/src/main/java/com/myapp/tadu/HomeView.kt`
- [Task editor](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/AddTaskView.kt): `app/src/main/java/com/myapp/tadu/AddTaskView.kt`
- [Calendar view](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskCalendarView.kt): `app/src/main/java/com/myapp/tadu/TaskCalendarView.kt`
- [Task history](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskHistoryView.kt): `app/src/main/java/com/myapp/tadu/TaskHistoryView.kt`
- [Settings view](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/TaskSettingsView.kt): `app/src/main/java/com/myapp/tadu/TaskSettingsView.kt`
- [Login and signup](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/screens/LogInScreen.kt): `app/src/main/java/com/myapp/tadu/screens/LogInScreen.kt`
- [Signup view](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/screens/SignUpScreen.kt): `app/src/main/java/com/myapp/tadu/screens/SignUpScreen.kt`

### Task workflow

- [Task state](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt): `app/src/main/java/com/myapp/tadu/view_model/TaskViewModel.kt`
- [Task model](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/Task.kt): `app/src/main/java/com/myapp/tadu/data/Task.kt`

### Identity and settings

- [Auth state](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt): `app/src/main/java/com/myapp/tadu/view_model/AuthViewModel.kt`
- [User repository](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/remote/UserRepository.kt): `app/src/main/java/com/myapp/tadu/data/remote/UserRepository.kt`
- [Settings state](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsViewModel.kt): `app/src/main/java/com/myapp/tadu/settings/SettingsViewModel.kt`
- [Settings repository](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt): `app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt`
- [Preferences store](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt): `app/src/main/java/com/myapp/tadu/settings/SettingsRepository.kt`

### Reminders

- [Reminder scheduler](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/AndroidReminderScheduler.kt): `app/src/main/java/com/myapp/tadu/notifications/AndroidReminderScheduler.kt`
- [Reminder receiver](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/ReminderReceiver.kt): `app/src/main/java/com/myapp/tadu/notifications/ReminderReceiver.kt`
- [Boot receiver](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/notifications/BootReceiver.kt): `app/src/main/java/com/myapp/tadu/notifications/BootReceiver.kt`

### Persistence and cloud

- [Task repository](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskRepository.kt): `app/src/main/java/com/myapp/tadu/data/TaskRepository.kt`
- [Task DAO](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskDao.kt): `app/src/main/java/com/myapp/tadu/data/TaskDao.kt`
- [Room database](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/TaskDatabase.kt): `app/src/main/java/com/myapp/tadu/data/TaskDatabase.kt`
- [Cloud task service](https://github.com/daniel-pino-2000/tadu/blob/master/app/src/main/java/com/myapp/tadu/data/remote/TaskCloudService.kt): `app/src/main/java/com/myapp/tadu/data/remote/TaskCloudService.kt`

### Other components

- **User**
- **Firebase services**
- **Android alarms**
- **Device calendar**

## Connections

- 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
