Kid habits earn 100%.
Parent plans the save.
Kids earn the family goal with habits on a percent bar. Parents plan the real dollars. One shared finish line.
Try it: project site · repo clone · kid screens are percent-only · demo runs with zero API keys
Disneyland
Every check-in moves the bar.
The parent is the dollar planner: goal cost, weekly save, and catch-up if the plan slips. The kid never sees dollars, only a percent bar and chores. Approvals move the bar. Real money settles offline in the family wallet.
Two paths. One goal.
Allowance apps either gamify chores with fake money or hand kids a debit card. Do My Chore splits the bargain instead.
Earn 100% of the goal
Every chore has a cadence and a weight. "Make your bed" daily is worth 40% of the goal, paid out one tiny slice per check-in. Weights sum to at least 100% - parents can deliberately oversubscribe so a few skipped days don't sink the plan.
- Percent only. No dollars, coins, or store on any kid screen.
- Photo check-ins for chores a parent can verify by looking.
- A rejected chore is a next try - a kind note from the parent, never a failure.
- Finish the day and get the moment: That's today done.
Plan the real cost
The same app is a financial planner. Disneyland is $3,500 over 14 weeks - so the parent saves about $250 a week.
- Dollars live here. Save cadence, saved-so-far, and an honest catch-up rate if you slip.
- A manual I saved this week log keeps the promise visible.
- Approve or send back with a note - previewing exactly what the kid will read.
- Makeup chores exist if the kid falls behind - off by default, never automatic.
From goal to earned, in four moves
Set the goal
Family trip or kid item, real cost, target date. The planner does the save math - about $250 a week for a $3,500 trip.
Suggest the plan
AI drafts a weekly save plus weighted habits that sum to at least 100%. Edit any line, then accept. It explains its why in plain parent language.
The kid checks in
Photo proof where looking works, trust where it doesn't. Each approval moves the bar a tiny slice of the weight.
100% earns it
The bar fills, the day gets its moment, and the finale hands off to the parent - the trip is talked about together, tonight.
AI that suggests. Parents decide.
Both AI moments run deterministically with zero API keys - the demo never depends on a key being set.
Suggest plan
Given the goal, cost, date, and the kid's age, the AI proposes a weekly save and 4-8 weighted chores summing to at least 100% - with a why in plain parent language.
Photo assist
For chores a parent can verify by looking, it suggests approve or send back. Trust-based chores - reading time - never ask for photos.
The loop judges can feel
Icon, parent plan, kid percent bar, and the chore textures behind the demo. Fresh gallery captures without DEBUG ribbons are listed for Devpost in the PR notes.
Proof becomes a memory
Approved check-in photos collect into a deletable album of the goal you're building toward. Demo photos are test data. Check-in photos stay in your family's scoped storage.



No bank. No card.
No fake promises.
The app plans money and tracks habits. Real money moves between parent and kid, offline. That honesty is a feature, not a limitation - and it's fenced in the code.
What we never claim
- No banking, card, or KYC features - ever. Kid screens show percent only.
- No verification-accuracy claims. The AI suggests; the parent decides.
- No kids'-privacy compliance claims. Demo photos are labeled test data.
- Family data stays family data: row-level security on every table, storage paths scoped by family.
Run it yourself
Quickstart
# 1. local Supabase (Docker)
git clone https://github.com/pamu512/do-my-chore
cd do-my-chore && supabase start
supabase db reset
# 2. the app (seeded demo family)
cd app && flutter pub get
flutter run \
--dart-define=SUPABASE_URL=http://127.0.0.1:54321 \
--dart-define=SUPABASE_ANON_KEY=<from supabase status>
Needs Docker (Supabase runs local) and the Flutter SDK. The seeded demo family makes the loop reproducible in minutes.
Built with
Seeded demo family: parent@demo / kid@demo. Seeded weights 40 / 30 / 20 / 10 add up to 100%. 114 tests keep the money math honest.