From 344182c30c19c453f57639d30faeeefb4213f4c5 Mon Sep 17 00:00:00 2001 From: Stefan Willoughby Date: Sun, 26 Apr 2026 12:18:42 +1000 Subject: [PATCH] docs: add to-do list to README --- README.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 90 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6a21be2..9eaf736 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,96 @@ -# dailyou +# DailyYou -A new Flutter project. +A private, on-device mood journal for Android and iOS built with Flutter. All data stays on your device — no cloud, no accounts. -## Getting Started +## Features -This project is a starting point for a Flutter application. +- **Multi-step mood logging** — guided wizard capturing mood, sleep, energy, positivity, and self-worth in one flow +- **Activity tagging** — log what you've been doing; custom activities supported +- **On-device AI insights** — weekly and monthly reflections powered by MediaPipe on-device LLM (no data leaves the device) +- **Calendar heatmap** — daily mood averages visualised across a month +- **Reminders** — optional local notifications to prompt daily check-ins +- **Biometric lock** — optional fingerprint/Face ID protection +- **Dark mode** — follows system theme -A few resources to get you started if this is your first Flutter project: +## Tech stack -- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter) -- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources) +| Layer | Library | +|---|---| +| UI | Flutter 3.x, Material 3 | +| State management | flutter_riverpod 3.x (non-codegen) | +| Database | Drift 2.x (SQLite) | +| Charts | fl_chart | +| On-device LLM | flutter_mediapipe_chat | +| Notifications | flutter_local_notifications | +| Biometrics | local_auth | +| Export | pdf + share_plus | -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. +## Getting started + +```bash +flutter pub get +dart run build_runner build --delete-conflicting-outputs +flutter run +``` + +> Android requires core library desugaring — already configured in `android/app/build.gradle.kts`. + +## Project structure + +``` +lib/ + app.dart # Root widget, theme, routing + main.dart # Entry point + core/ + database/ # Drift schema, DAOs, generated code + llm/ # LlmService abstraction + MediaPipe impl + providers/ # Riverpod providers (mood, activity, settings, LLM, insights) + features/ + log_mood/ # Mood logging wizard screen + widgets + shared/ + widgets/ # Reusable UI components +``` + +## To-do + +### Core screens +- [ ] Bottom nav shell (home, history, insights, settings) +- [ ] History / calendar heatmap screen +- [ ] Day detail screen — list entries for a selected day +- [ ] Insights screen — weekly/monthly AI summaries +- [ ] Settings screen — reminders, biometrics, theme, data export +- [ ] Onboarding flow — first-launch walkthrough + +### Mood logging +- [ ] Edit existing entry (tap from day detail) +- [ ] Free-text note step in the wizard +- [ ] Tag selection step + +### Activities +- [ ] Activity management screen — add, reorder, delete custom activities +- [ ] Seed database with default activities on first launch + +### AI / insights +- [ ] Model download + progress UI +- [ ] Query mode — ask a free-form question about your data +- [ ] Prompt builder — serialize mood history into LLM context + +### Analytics +- [ ] Charts screen — mood trend line, activity frequency bar chart, sleep vs mood scatter + +### Infrastructure +- [ ] Local notifications — schedule and cancel reminders +- [ ] Biometric lock — gate app on fingerprint/Face ID +- [ ] PDF export and share sheet +- [ ] App icon and splash screen + +--- + +## Database schema + +- `MoodEntries` — mood (1–5), sleep minutes, energy, positivity, self-worth, optional note +- `Activities` — built-in and custom activities with icon and colour +- `EntryActivities` — many-to-many join between entries and activities +- `Tags` — free-form tags +- `LlmInsights` — cached AI-generated insight text keyed by prompt SHA-256 +- `UserSettings` — key/value store for app preferences