{"id":51030052,"url":"https://github.com/hsinhoyeh/code-quest-kids","last_synced_at":"2026-06-21T23:31:11.342Z","repository":{"id":364564509,"uuid":"1268390355","full_name":"hsinhoyeh/code-quest-kids","owner":"hsinhoyeh","description":"Scratch-style visual programming game for kids age 6–10. Five themed packs (maze, bus, build, ocean, cargo), bilingual EN/繁中 with zhuyin, teacher level editor, GitHub Pages.","archived":false,"fork":false,"pushed_at":"2026-06-13T15:13:06.000Z","size":99,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-13T15:24:12.191Z","etag":null,"topics":["block-programming","education","educational-game","educational-software","kids-programming","maze","scratch","visual-programming"],"latest_commit_sha":null,"homepage":"https://hsinhoyeh.github.io/code-quest-kids/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hsinhoyeh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-13T13:27:50.000Z","updated_at":"2026-06-13T15:18:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hsinhoyeh/code-quest-kids","commit_stats":null,"previous_names":["hsinhoyeh/code-quest-kids"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/hsinhoyeh/code-quest-kids","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hsinhoyeh%2Fcode-quest-kids","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hsinhoyeh%2Fcode-quest-kids/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hsinhoyeh%2Fcode-quest-kids/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hsinhoyeh%2Fcode-quest-kids/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hsinhoyeh","download_url":"https://codeload.github.com/hsinhoyeh/code-quest-kids/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hsinhoyeh%2Fcode-quest-kids/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34629658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["block-programming","education","educational-game","educational-software","kids-programming","maze","scratch","visual-programming"],"created_at":"2026-06-21T23:31:11.238Z","updated_at":"2026-06-21T23:31:11.333Z","avatar_url":"https://github.com/hsinhoyeh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 Code Quest Kids\n\nA Scratch-style **visual programming game** for young coders (age 6–10). Tap\ncolourful blocks to build a program, guide your robot, earn ⭐ for clever\nsolutions, and climb the 🏆 leaderboard.\n\nBilingual out of the box: **English** + **繁體中文 (zh-TW)** with 注音 (zhuyin /\nbopomofo) annotations on every Chinese character. 100% static — no build step,\nno backend — deploys straight to **GitHub Pages**.\n\n\u003e 程式冒險小高手 — 給 6–10 歲小朋友的視覺化程式遊戲。點積木、組程式、帶機器人\n\u003e 闖五大主題關卡，拿星星、上排行榜！支援中英雙語加注音，純靜態網頁。\n\n**Live site:** https://hsinhoyeh.github.io/code-quest-kids/\n\n---\n\n## 🎮 Game packs\n\n### 🤖 Maze Quest (12 levels · age 6–10)\nTap `Move forward`, `Turn left`, `Turn right`, and `Repeat` blocks to guide the\nrobot to the 🚩 flag. Fewer blocks = more ⭐. Levels 1–6 (~age 6–8) introduce\nsequencing, turning, and loops. Levels 7–10 (~age 8–10) add longer paths and\nmulti-step planning. Levels 11–12 introduce **math expressions** inside the\nRepeat block (`2+3`, `2×3`) — tap the `fx` button to switch from a plain number\nto a mini expression pad.\n\n| Level | Concept |\n|-------|---------|\n| 1 First Steps | Sequencing |\n| 2 Turn Around | Directions \u0026 turning |\n| 3 The Corner | Combining moves + turns |\n| 4 Zig Zag | Longer sequences |\n| 5 Loop Power | **Repeat** block |\n| 6 The Spiral | Loops + turns (decomposition) |\n| 7 Crossroads | 6×6 grid, multi-turn planning |\n| 8 The Wall | Navigating around barriers |\n| 9 Staircase | Diagonal path with loops |\n| 10 Big U-Turn | 7×7 grid, full-path planning |\n| 11 Math Gateway | Double barrier — use `1+2` and `3+3` in Repeat |\n| 12 Multiply Express | Long corridors — use `2×3` in Repeat |\n\n### 🚌 Bus \u0026 Lights (5 levels)\nDrive the bus to pick up passengers and match the LED light color at each stop.\nIntroduces **conditional-style** thinking: red / green / yellow commands\nalongside movement.\n\n### 🛠️ Build It! (5 levels)\nAssemble a **car → airplane → rocket** by placing parts in the correct order.\nTeaches sequencing in a construction context: body before windows, wings before\nnose, etc.\n\n### 🐋 Ocean (5 levels)\nGuide a whale shark through the ocean, collecting fish. Combines movement with\nresource-gathering — eat all the fish to win.\n\n### 🚚 Cargo Run (5 levels)\nVisit sites to pick up goods, each with a **weight** and a **value**. Deliver to\nthe destination without exceeding the weight limit while maximising total value —\nan age-appropriate introduction to the **knapsack problem**.\n\n---\n\n## ⭐ Scoring\n\nStars are awarded per level based on how efficiently you solved it:\n\n- **⭐⭐⭐** — matched (or beat) the optimal block count\n- **⭐⭐** — within +2 blocks of optimal\n- **⭐** — solved it! (any number of blocks)\n\nEvery level shows an **objective banner** before you start so the goal and\nconstraints are crystal clear.\n\n---\n\n## 👥 Multi-player\n\nMultiple kids can play on the same device, each with their own progress and\nleaderboard entry.\n\n- **👤 Player pill in the top bar** — always visible. Tap it at any time (menu,\n  mid-level, editor) to see all players and switch instantly.\n- **\"Pass to friend 👤\" on the win screen** — appears after every win; one tap\n  closes the win modal and opens the player switcher for a smooth handoff.\n- **Add a player** — type a name and press \"Add \u0026 start fresh\"; each new player\n  starts from level 1 with zero scores.\n- **Delete a player** — tap × next to any name in the players panel.\n- All progress is stored in `localStorage` per device — no accounts, no network,\n  completely kid-safe.\n\n---\n\n## 🎓 Teacher features\n\n- **Level editor** — draw a custom maze, set allowed blocks, name it in both\n  languages, test it, save it, and export/import as JSON.\n- Levels are localStorage-persisted per device; no accounts, no data collection —\n  kid-safe by design.\n\n---\n\n## 🚀 Run locally\n\n```bash\npython3 -m http.server 8000\n# open http://localhost:8000\n```\n\nAny static web server works. Opening `index.html` directly also works in most\nbrowsers.\n\n---\n\n## 🌐 Deploy to GitHub Pages\n\n**Included GitHub Actions workflow** pushes the site on every commit to `master`:\n\n```\n.github/workflows/deploy.yml\n```\n\nIn your repo: **Settings → Pages → Build and deployment → Source: GitHub\nActions**. The site goes live at `https://\u003cusername\u003e.github.io/code-quest-kids/`.\n\n---\n\n## 🧩 Project structure\n\n```\nindex.html              # markup, screens, modals\ncss/style.css           # playful, big-tap-target styling\njs/zhuyin.js            # bopomofo dictionary + annotation engine\njs/i18n.js              # EN / 繁中 strings + language switch\njs/sound.js             # Web Audio synth (win fanfare, error tone)\njs/levels.js            # Maze pack (12 levels, incl. math expression levels)\njs/busLevels.js         # Bus \u0026 Lights pack (5 levels)\njs/buildLevels.js       # Build It! pack (5 levels)\njs/oceanLevels.js       # Ocean pack (5 levels)\njs/cargoLevels.js       # Cargo Run pack (5 levels)\njs/engine.js            # canvas rendering + program execution\njs/blocks.js            # block palette + click-to-add program builder\njs/leaderboard.js       # localStorage scores \u0026 progress\njs/app.js               # screens, scoring, modals, leaderboard glue\njs/editor.js            # teacher level editor\n```\n\n---\n\n## 🌍 Going global (shared leaderboard)\n\nThe leaderboard is **per-device** by design. To share scores across players,\nreplace the read/write functions in `js/leaderboard.js` with `fetch()` calls to\na key-value backend (Cloudflare Workers + KV, Supabase, jsonbin, etc.). The\n`record()` / `leaderboard()` interface stays the same — nothing else changes.\n\n---\n\nMade with ❤️ for young coders.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhsinhoyeh%2Fcode-quest-kids","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhsinhoyeh%2Fcode-quest-kids","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhsinhoyeh%2Fcode-quest-kids/lists"}