Dojo Competition — Project Brief

Questions for Clarification

  1. Points for Elliot’s reading — “Reading 10 long pages or equivalent” has no point value listed. Is it 1 point? 2 points? A> 1
  2. Goal examples — Can you provide some example individual and joint goals? (e.g., Gina: “Unicorn toy — 30 points”, Elliot: “New basketball — 40 points”, Joint: “Family cinema trip — 50 points”) A> each 50 dojos > £10 smiths voucher

300 dojos joint > a family day out

resets at 300

  1. Negative score actions — You mentioned some actions can have negative scores. Can you list a few examples? (e.g., “Not tidying up when asked: -1” A> poor dinner table behaviour, -2, being rude to people -5, not foing something when asked -3
  2. Reset cadence — Do daily task completions reset each day (i.e., you can earn “brushing teeth” points fresh each day), while points accumulate towards goals? A> yes, toothbrushing twice per day
  3. Multiple users / access control — Is this parent-only entry, or should kids be able to tap/mark tasks as done themselves? Any PIN or simple auth? A> just myself and wife giubergamin@gmail.com should be added to ingress authentication
  4. History / ledger visibility — Should kids see a full history of what they earned, or just current totals and progress bars?

detailed accounting visible /editablee in a seperate page

  1. Goal redemption — When a child reaches a goal’s point threshold, are those points “spent” (deducted), or do points just keep accumulating and goals are simply milestones? A> no, resets at 300
  2. Joint goal contribution — For the joint goal, do both children’s points pool together, or is it a separate shared balance? A> both pool together
  3. Theme preferences — Gina loves unicorns, Elliot loves football/basketball. Should each child have a themed view/avatar, or is one shared theme fine for v1? A> themed avatar
  4. Alexa skill scope (v2) — Just read-only queries (“What’s Elliot’s score?”), or also voice-entry (“Elliot brushed his teeth”)? A> readonly

Overview

A mobile-friendly web application to track a points-based reward competition between two children:

  • Elliot (boy, 7) — loves football and basketball
  • Gina (girl, 4) — loves unicorns

Children earn points by completing daily tasks. Points accumulate towards individual goals and a shared joint goal.

Architecture

LayerChoiceNotes
Repocraigedmunds/dojoNew GitHub repository
FrontendStatic site (HTML/CSS/JS)No build step needed for v1; could use a lightweight framework (e.g., Alpine.js or vanilla JS)
Data storeYAML files in repoNo database; files live on the code-server PVC and are committed to git
HostingKubernetes (k8s-lab) via ArgoCDPublic ingress at dojo.ctoaas.co
Alexa skillv2 milestoneVoice queries for scores and goal progress

Data Model (YAML)

config/tasks.yaml — Task Definitions

tasks:
  # Shared tasks (both children)
  - id: tidy-playroom
    name: Tidying up the playroom
    points: 2
    children: [elliot, gina]
    frequency: daily
 
  - id: tidy-kitchen
    name: Tidying up the kitchen
    points: 1
    children: [elliot, gina]
    frequency: daily
 
  - id: brush-teeth
    name: Brushing teeth
    points: 1
    children: [elliot, gina]
    frequency: daily
    maxPerDay: 2  # morning + evening
 
  - id: ready-for-bed
    name: Getting ready for bed
    points: 1
    children: [elliot, gina]
    frequency: daily
 
  - id: ready-for-school
    name: Getting ready for school
    points: 1
    children: [elliot, gina]
    frequency: daily
 
  - id: sleep-no-issues
    name: Going to sleep without issues
    points: 1
    children: [elliot, gina]
    frequency: daily
 
  - id: own-bed-all-night
    name: Sleeping in own bed all night
    points: 1
    children: [elliot, gina]
    frequency: daily
 
  # Gina-only tasks
  - id: no-peepee-accident
    name: No peepee in pants for a day
    points: 2
    children: [gina]
    frequency: daily
 
  - id: picture-book
    name: Reading 1 picture book
    points: 1
    children: [gina]
    frequency: daily
 
  # Elliot-only tasks
  - id: reading-pages
    name: Reading 10 long pages or equivalent
    points: 1  # TBC — see Q1
    children: [elliot]
    frequency: daily
 
  - id: empty-dishwasher
    name: Emptying the dishwasher
    points: 1
    children: [elliot]
    frequency: daily

config/goals.yaml — Goal Definitions

goals:
  individual:
    elliot:
      - id: goal-elliot-1
        name: "TBC"  # e.g., "New basketball"
        pointsRequired: 30
    gina:
      - id: goal-gina-1
        name: "TBC"  # e.g., "Unicorn toy"
        pointsRequired: 30
  joint:
    - id: goal-joint-1
      name: "TBC"  # e.g., "Family cinema trip"
      pointsRequired: 50

config/children.yaml — Child Profiles

children:
  - id: elliot
    name: Elliot
    age: 7
    theme: sports  # football & basketball
    icon: "⚽"
  - id: gina
    name: Gina
    age: 4
    theme: unicorn
    icon: "🦄"

data/ledger.yaml — Points Ledger

entries:
  - date: "2026-04-19"
    child: elliot
    taskId: brush-teeth
    points: 1
    note: "Morning"
  - date: "2026-04-19"
    child: gina
    taskId: tidy-playroom
    points: 2

Home Screen (UI)

The main screen shows at a glance:

  1. Score cards — One per child, showing:
    • Name and avatar/icon
    • Current total points
    • Progress bar towards next individual goal (with goal name and points remaining)
  2. Joint goal — Shared progress bar showing combined contribution towards the joint goal
  3. Today’s tasks — Checklist of today’s tasks per child, with tappable checkboxes to record completion
  4. Recent activity — Last few ledger entries

Design Principles

  • Mobile-first — Optimised for phone and iPad
  • Kid-friendly — Large tap targets, bright colours, fun icons
  • Simple navigation — Single-page or minimal tabs (Home / History / Goals)
  • Themed — Light personalisation per child (colours, icons)

Deployment

  1. Static files served from the repo via a simple web server (e.g., nginx container)
  2. YAML data files mounted from the code-server PVC (or a shared volume)
  3. ArgoCD application definition in k8s-lab repo
  4. Ingress at dojo.ctoaas.co with TLS

Scope

v1 (MVP)

  • Static web app with task recording and score display
  • YAML-based configuration and data persistence
  • Mobile-responsive design
  • ArgoCD deployment to dojo.ctoaas.co
  • Parent-operated (no auth needed for v1)

v2 (Future)

  • Alexa skill for querying scores and progress
  • Voice-based task completion recording
  • Streak tracking and badges
  • Weekly/monthly reports