DAFTARI — A ledger that cannot be lost. Offline-first Flutter app + 4 real Google ADK/Gemini Cloud Run agents, built for small-scale gold miners in Tanzania. All Things Agentic Hackathon — Taskmaster track.
# DAFTARI — The Ledger That Cannot Be Lost
**Speak what happened. It works with no network. Nothing is ever lost.**
DAFTARI is an offline-first ledger for anyone whose work doesn't happen at a desk — a small-scale miner, a trader, a shopkeeper, anyone running a business where the day is unpredictable and a notebook is the only record. Press one button, speak freely — one sentence or a whole day's transactions in one breath — and DAFTARI splits that sentence into separate entries, shows exactly what it understood, and asks only about the parts it couldn't read with confidence.
Built for the **All Things Agentic Hackathon** — Track: **Taskmaster**.
---
## What's in this repository
| Path | What it is | Deploys to |
|---|---|---|
| `flutter/daftari/` | The Android + Web app — the source of truth | Android device, and a static web build |
| `app/`, `components/`, `lib/` (repo root) | The marketing website (Next.js) | Vercel |
| `agents/sikio/` | Refines an uncertain field from the on-device interpreter | Cloud Run |
| `agents/daftari/` | Deterministic validation, deduplication, batch arithmetic | Cloud Run |
| `agents/mkumbushi/` | Evening gap detection + one Gemini-phrased question | Cloud Run |
| `agents/mlinganishi/` | Reconciles two linked parties' records | Cloud Run |
| `docs/` | Architecture, limitations, and deployment guides | — |
Four independent Cloud Run services, one Vercel website, one Flutter app — none required for any of the others to work. The app is fully usable offline with zero agents deployed.
See `docs/HACKATHON_READINESS.md` for how this project maps to the hackathon's judging rubric.
---
## Quick start
### Website (Next.js → Vercel)
```bash
npm install
npm run dev
```
### App (Flutter)
```bash
cd flutter/daftari
flutter pub get
dart run flutter_launcher_icons
dart run build_runner build --delete-conflicting-outputs
flutter analyze
flutter test
flutter run
```
See `flutter/daftari/README.md` for full details, including producing a sig …