ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Little and often daily practice — times tables, phonics and more.
Translation pending
EducationTypeScript · PythonGitHub @dqalibOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Kumon-style daily practice web app for Years 1–4 (maths + English). Private family use. • Project brief: PROJECT_BRIEF.md • Skill map (levels + mastery rules): docs/skill-map.md • Decisions: docs/decisions.md • Tasks for Kimi: kimi-briefs/ Status — v0.2 • Times tables (TT-01 → TT-16) working end to end: practice sets, corrections, mastery gate, level-up, drop-back. • Parent PIN, child profiles, parent dashboard (progress, tricky facts, change level, backup download). • Cloud sync via Supabase (optional): one parent login, works offline, merges between iPads. Setup: docs/supabase-setup.md.Read the full README ↗
Kumon-style daily practice web app for Years 1–5 (maths, English, coding words). Private family use.
npm install
cp .env.example .env.local # optional: add Supabase values for sync
npm run dev # http://localhost:3000
npm test # unit tests (question generator + mastery gate)
npm run build
| Path | What |
|---|---|
src/lib/tt.ts | Times tables levels + question generator |
src/lib/mastery.ts | Mastery gate (pass / fail / drop-back rules and thresholds) |
src/lib/store.ts | All data reads/writes (localStorage on the device) |
src/lib/merge.ts | Merges two copies of family data (device + cloud) |
src/lib/sync.ts | Supabase sign-in and sync |
supabase/schema.sql | Database table + security rules |
src/lib/letters.ts | Handwriting: letter stroke templates + tracing checker |
src/lib/digits.ts | Reads handwritten numbers from Pencil strokes (on-device) |
public/models/digits-v1.json | Digit reader model (int8, ~200 KB) — retrain with ml/digits/train.py |
src/components/InkPad.tsx | Apple Pencil canvas (pressure, palm rejection) |
src/components/PencilAnswer.tsx | Write-your-answer box for maths |
src/lib/phonics.ts | Phonics levels + question generator (uses src/content/phonics) |
src/lib/spelling.ts | Spelling levels, set generator and marking (uses src/content/spelling) |
src/app/child/[id]/spelling/page.tsx, src/components/LetterKeyboard.tsx | Spelling practice screen + big on-screen keyboard |
src/lib/grammar.ts, src/app/child/[id]/grammar/page.tsx | Grammar & punctuation sets (uses src/content/grammar, Kimi 004) and practice screen |
src/lib/as.ts, src/app/child/[id]/maths/page.tsx | Adding & taking away generator (Kimi 005) and practice screen |
src/components/NumberPractice.tsx | Shared keypad/Pencil practice screen (times tables, adding & taking away) |
src/lib/np.ts, src/app/child/[id]/numbers/page.tsx | Numbers & place value generator (Kimi 007) and practice screen |
src/lib/reading.ts, src/app/child/[id]/reading/page.tsx, src/components/PassageReview.tsx | Reading comprehension: approved-story picker, reading screen, parent approve/reject panel (stories from src/content/reading, Kimi 006) |
src/lib/placement.ts, src/app/child/[id]/check/[strand]/page.tsx | Placement check (first visit to TT / AS / SP / GP) |
src/lib/report.ts | Weekly summary, daily goal, streak and tricky items (parent dashboard + child home) |
src/lib/speech.ts, src/lib/audio-key.ts, src/lib/phrases.ts, scripts/make-audio.ts | Speaking: pre-made British voice recordings (public/audio, see docs/audio-setup.md), else the device voice |
src/lib/memory.ts | "Do you still remember?" spaced review (Leitner boxes) for spelling and coding words |
src/lib/coding.ts, src/content/coding/terms.json, src/app/child/[id]/coding/page.tsx | Coding words: learn cards + tap-the-answer quiz |
src/app/parent/report/[id]/page.tsx, childReport in src/lib/report.ts | Full progress report per child (printable) |
src/components/VoicePanel.tsx, voice-google.bat | Voice coverage + this iPad's British voice; record the rest with Google |
src/lib/sfx.ts | Right / wrong sounds |
src/lib/strands.ts | Which level strands show for which school year; drives home-page cards and parent level pickers |
src/components/ChoiceGrid.tsx, SpeakButton.tsx, SoundButtons.tsx, src/lib/speech.ts | Tap-to-answer, text-to-speech and sound-button components (Kimi, brief 003) |
src/app/ | Screens: / picker, /setup, /child/[id], /child/[id]/practice, /parent |
src/components/ | NumberPad, ParentGate |
Next.js 16 — read AGENTS.md before changing framework code.