nmemmertandClaude Sonnet 4.6 ab32ba8634 Complete visual redesign — new design system
- Switch to Inter (body) + Nunito (kid headings) from Google Fonts
- Replace warm-cream palette with clean blue-tinted design system
  - --bg: #f5f7ff, --card: #fff, --accent: #4f7ef8
  - Layered shadow variables (--shadow-xs through --shadow-lg)
  - --border / --border-hover / --accent-light tokens
- Admin panel: sticky header with compact nav pills, clean card borders,
  uppercase label style for admin-card fields, hover transitions
- Student app: Nunito bold headings, better kid-card glow on dark home,
  cleaner word-card / done-card / item-card styles
- Better button hierarchy: gradient primary, neutral secondary, red danger
- Modernized form inputs: consistent 1.5px border + focus ring system
- Cleaner planner tasks (accent-light tint), today rows, unit blocks
- All theme variants updated to match new palette tokens

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-10-19 12:58:24 -04:00

🎓 Homeschool

A self-hosted homeschool learning platform — courses, lessons, assignments, quizzes, and a gradebook — with spelling practice and flashcards built in as first-class activity types. Two apps share one server: a kid-facing app (index.html) and a PIN-protected parent console (admin.html).

How it's organized

  • Courses → Units → Items. A parent builds courses (e.g. "Science 3"), each broken into units (e.g. "Week 1: Weather"), each holding items: lessons, assignments, quizzes, or an embedded spelling/flashcards activity.
  • Lessons are parent-authored content (text, images, YouTube embeds) the kid marks as read.
  • Assignments are turned in with a tap ("Mark as done") and graded by a parent from a grading queue.
  • Quizzes (multiple choice, true/false, short answer) are auto-graded on submission, with a right/wrong review shown immediately.
  • Spelling and flashcards activities reuse the same engines described below, and their results flow into the same gradebook.
  • Daily agenda. A parent schedules items (or free-text offline tasks like "Read Ch. 3") onto specific days in the weekly planner; the kid's home screen shows "Today's work" as a checklist that fills in as they go.
  • Gradebook. Every graded item (assignments, quizzes, spelling tests) rolls up per course into a percentage, with a printable weekly report for homeschool portfolio records.

How the spelling module works

  • Dictation practice — the browser speaks each word (and an example sentence if the list has one); the kid types it. No internet or API keys needed — it uses the browser's built-in speech synthesis.
  • Letter-diff feedback — a wrong answer shows exactly which letters were wrong, then the correct word appears for a few seconds, hides, and the kid retypes it from memory (look–cover–write–check).
  • Leitner spaced repetition — every word has a box (0–5). Right on the first try moves it up a box and pushes the next review out (1 → 2 → 4 → 7 → 14 days). A miss sends it back to box 1. Box 5 = mastered. Daily practice mixes the current list with whatever old words are due.
  • Spelling test — every word on the list, dictation only, no hints or retries. Scores are saved, and missed words automatically re-enter the practice rotation.

How the flashcards module works

Classic flip-cards (front → reveal → "Got it!" / "Study more") using the same Leitner scheduler as spelling, so a deck's due cards resurface on the right day automatically. Works standalone or as a course item.

Running it

npm install
npm start          # http://localhost:3000

Or with Docker:

docker compose up -d

The SQLite database lives in ./data/ (mounted as a volume in Docker).

Requires Node 24+ (uses the built-in node:sqlite module — no native dependencies).

First-time setup

  1. Open the app → Parent dashboard (/admin.html) → PIN 1234 (change it in Settings).
  2. Add your kids.
  3. Build a course: add units, then add items (lessons, assignments, quizzes, or a spelling/flashcards activity pointing at a list or deck).
  4. Enroll kids in the course, from the course's Roster section.
  5. Use the Weekly Planner to schedule items onto specific days — or let kids browse everything anytime from My Courses.
  6. For spelling specifically: pick a built-in Dolch list or create your own (one word per line, optional word | example sentence), then assign each kid a weekly list from the Spelling panel.

Kids just tap their name — no passwords. Everything they do (course work or spelling) reports back into the parent console automatically.

S
Description
No description provided
Readme
3.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 72.6%
CSS 16.7%
HTML 10.5%
Dockerfile 0.2%