How deonetwo/wadd-todo-app works
Wadd is a cross-platform, offline-first to-do application with task, goal, milestone, and journal workflows. Users work through Avalonia views and view models; service implementations persist local data in SQLite, while Google Drive sync replicates it and records conflicts for review. The README also documents AI goal coaching, calendar and recurrence, Excel export, and platform reminders. The graph preserves those product branches; unsampled feature wiring is shown only where the README establishes it, and source excerpts were partial.
Main entry points: GoogleDriveSyncService.cs Drive sync · MainViewModel.cs Main view model · TodoItemEntity.cs Local SQLite · TaskReviewWizardViewModel.cs Conflict review
Components 22
User experience
- Tasks and calendar
src/Wadd.UI/Views/TasksView.axaml.cs - Main view model
src/Wadd.UI/ViewModels/MainViewModel.cs - Goals and journal
src/Wadd.UI/ViewModels/GoalsViewModel.cs - Conflict review
src/Wadd.UI/ViewModels/TaskReviewWizardViewModel.cs - App composition
src/Wadd.UI/App.axaml.cs
Application services
- Task service
src/Wadd.Services/SQLiteTodoService.cs - Goal service
src/Wadd.Services/SQLiteGoalService.cs - AI goal coaching
src/Wadd.Services/AiGoalService.cs - Recurrence evaluator
src/Wadd.Services/RecurrenceEvaluator.cs - Data export
src/Wadd.Services/ExportService.cs
Persistence and sync
- Drive sync
src/Wadd.Services/GoogleDriveSyncService.cs - Conflict merging
src/Wadd.Services/ConflictResolutionEngine.cs - Conflict repository
src/Wadd.Services/SQLiteConflictRepository.cs - Sync log repository
src/Wadd.Services/SQLiteSyncLogRepository.cs - Local SQLite
src/Wadd.Services/Entities/TodoItemEntity.cs
Platform integration
- Today task widget
src/Wadd.Android/TodayTasksWidgetProvider.cs - Platform notifications
src/Wadd.Services/WindowsNotificationService.cs - OAuth proxy
serverless/cloudflare-worker/src/index.js
External services
- Google Drive
- Google OAuth
- AI providers
Other components
- User
Connections 26
- User → Tasks and calendar: uses
- User → Goals and journal: uses
- Tasks and calendar → Main view model: invokes
- Main view model → Task service: loads and saves
- Main view model → Drive sync: requests sync
- Main view model → Goal service: manages goals
- Main view model → Data export: exports data
- Goals and journal → Goal service: manages goals
- Goals and journal → AI goal coaching: requests coaching
- AI goal coaching → AI providers: requests generation
- Tasks and calendar → Recurrence evaluator: shows occurrences
- Task service → Local SQLite: reads and writes
- Goal service → Local SQLite: reads and writes
- Drive sync → Local SQLite: merges local data
- Drive sync → Google Drive: syncs records
- Drive sync → Sync log repository: tracks mutations
- Drive sync → Conflict merging: merges versions
- Conflict merging → Conflict repository: records conflicts
- Conflict review → Conflict repository: resolves conflicts
- Conflict review → Task service: saves resolution
- Conflict review → Drive sync: refreshes status
- Drive sync → OAuth proxy: exchanges tokens
- OAuth proxy → Google OAuth: exchanges credentials
- Today task widget → Local SQLite: reads and updates tasks
- App composition → Main view model: composes
- App composition → Platform notifications: registers service