01 — The Problem
What this build solves.
01
Capture friction
Typing every task breaks flow — voice and browser capture should create structured work in one pass.
02
Module sprawl
Tasks, calendar, and themes need clear boundaries without becoming separate apps.
03
Calendar without OAuth
Useful agendas should work from manual entry, voice, and extension capture — not only Google sync.
04
Browser → app bridge
Invites and task snippets live in the browser; they need to land in the same Firestore store the app reads.
02 — How It Works
Architecture at a glance.
Home grid, bottom bar (Home / Mia / Calendar), settings, guest uid, theme controller
Dashboard, categories, voice intents, enrichment, All done empty state
Agenda / Day / Week / Month, attendance prompts, voice + parse invite
mia-task-extension → tasks · mia-calendar-extension → events
| Layer | Technology | Role |
|---|---|---|
| Client | Flutter / Dart | Cross-platform UI and modules |
| Backend | Firebase Auth + Firestore | Guest uid; tasks + events |
| Voice | AssemblyAI | Speech-to-text |
| AI | Gemini | Intent / title / category enrichment |
| Capture | Chrome MV3 extensions | Tasks + calendar invites → Firestore |
| Config | .env + theme JSON | Secrets and visual packs |
03 — Highlights
What ships today.
Voice add for tasks and calendar events (AssemblyAI + Gemini)
Bottom navigation: Home · Mia · Calendar
Agenda / Day / Week / Month with week strip and Now marker
Finished events drop off with “Did you attend?” prompt
JSON theme packs (Mia / Focus / Cal) + lavender app icon
Companion extensions for task paste and calendar invite capture
04 — Status
Build status — shipped complete.
✓
Completed
Mia tasks + voice + Calendar views
✓
Completed
Theme packs + bottom nav shell
✓
Completed
Task + Calendar Chrome extensions integrated
✓
Completed
Separate GitHub repos for app + companions