Programme (Animation vs. Everything)
This page covers the Animation vs. Everything (AvE) feature, a structured four-phase Year 7 maths, Python, and animation programme that runs on the Raspberry Pi 5 and is surfaced as a first-class part of the homeschool platform.
School Platform series
- School Platform
- Architecture
- AI features
- Calendar integration
- Programme - You are here
- Explainers
- Schedule
- Integrations
- Deployment
What it is
AvE is a single student-wide journey made of four phases (Awakening, Discovery, Expansion, Creator). Each phase contains multiple modules, each module contains parts (logical groupings), and each part contains numbered steps (individual tasks). Both phases and modules carry badges that are earned as work is completed.
The programme uses pace-neutral terminology ("Part N / Step N") rather than time-pressure language ("Week N / Day N"). All content is British English, gender-neutral, and speaks directly to the learner.
Routes
| Route | Purpose |
|---|---|
/programme | Landing with all four phases, wall-chart thumbnails, summary tiles, recent badges, and a Print folio button. Smart-redirects to the active phase if work is in progress. |
/programme/[phase] | Tabbed phase detail (Overview, Modules, Badges, Setup, Explainers). |
/programme/folio | Printable moderator folio of all four phases with earned badges. |
/programme/explainer/[code] | Popup window for interactive visual explainers (see Explainers). |
The sidebar has a single Programme entry; the smart-redirect handles navigating to where the student left off.
Content architecture
Each task has two content fields gated by authentication:
| Field | Audience | Visible to |
|---|---|---|
childContent | Student | Everyone (anonymous on LAN) |
parentContent | Parent/teacher | Admin login only |
Child content provides discovery instructions that guide problem-solving without giving answers. Parent content provides full solutions, hints, and conversation starters. This separation ensures the child cannot see answers in the browser DOM.
Data model
The AvE hierarchy in the database:
Key models:
| Model | Purpose |
|---|---|
AvePhase | Four phases with status, overview markdown, and notes |
AveModule | Multiple per phase with goal, maths concept, Python skill |
AveTask | Individual steps with child/parent content, command blocks, related files |
AveBadge | 125+ badges across five types (Mini, Project, Boss, Secret, Setup) |
AveTaskLearningArea | Links tasks to WA curriculum areas for dashboard counts |
Badge system
| Type | Scope | Earning method |
|---|---|---|
| Setup | Phase-level | Completing specific setup tasks (Pi boot, first git push) |
| Secret | Phase-level | Detector predicates (never from task completion directly) |
| Mini | Module-level | Completing specific small in-module tasks |
| Project | Module-level | Completing the module's named project |
| Boss | Module-level | Completing the final boss task for a module |
Secret badges show an italic hint teaser while unearned ("The clock told the truth. You ignored it.") so the student knows something is there without being spoiled.
Task completion ripple
Completion is one-way: unticking a task does not demote badge or module status. Parent manual overrides always win.
Tab system
The phase detail page (/programme/[phase]) has five tabs:
| Tab | Content |
|---|---|
| Overview | Wall chart (expandable PDF), student overview, parent overview, phase notes |
| Modules | Child-facing tasks grouped by part with collapsible sections, completion pills, and inline notes |
| Badges | Phase-wide progress bar, all badges grouped Secret, Setup, then by module |
| Setup | Parent-prep tasks with structured command blocks (GitLab, venv, IDE setup) |
| Explainers | Card grid of all interactive walkthroughs registered for this phase |
Only the first non-completed module auto-expands on the Modules tab. Completed parts auto-collapse with a green pill.
Learning Journey
A collapsible card at the top of the Modules tab shows:
- Which steps have been completed across all modules
- The cumulative command reference learned so far
- Progress statistics
Each module (from Module 2 onward) shows a "What you already know" section listing the previous module's command reference.
Ask Bob programme context
Each expanded task shows an "Ask Bob about this step" button that opens an AI chat with full awareness of:
- The current step's child instructions
- Cumulative commands learned so far
- The parent solution (fetched server-side, never exposed to the client)
Responses use Socratic guardrails: hints and questions only, never revealing answers directly.
Content editor
Admin users can edit childContent, parentContent, and commandReference directly from the programme page via an inline editor with:
- Edit/Preview toggle per field
- Validation for non-empty content and balanced code fences
- Changes persist immediately to the database
Seed safety
The seed script (prisma/seed-ave*.ts) runs on every deploy but uses a safe-fields-only policy:
- Never overwrites
earned,earnedAt,startedAt,completedAt,notes, orstatus - Title, description, and content updates are replayable
- To force-overwrite all content from seed data, set
SEED_FORCE_CONTENT=true
This means admin-edited content survives re-deploys unless explicitly overridden.