尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Live, offline, tournament-style logic games for college events.
The host taps Start and every connected phone gets the same puzzle at the same moment. Speed and correctness feed a live leaderboard that every device can see, along with a department-vs-department board. It all runs on one laptop's Wi-Fi hotspot with no internet, so nobody can ask an AI for the answer.
| Big screen (projector) | Host console |
|---|---|
Games, all generated from a seed and checked on the server. Each has an easy, medium and hard level.
| Game | What students do | Fairness |
|---|---|---|
| Anagram Blitz | Unscramble 6–8 words from themed packs (Tech, Campus, Food, Science), or from the host's own custom words | Dictionary anagrams also count (notes → stone) |
| Mini Sudoku | 6×6 (easy and medium) or 9×9 (hard), with pencil marks, undo and conflict highlighting | Every puzzle has exactly one solution |
| Word Hunt | Wordle-style: 5 letters, 6 tries, the same word for everyone | Colours are computed on the server, so the word never reaches phones |
| Number Crunch | Reach the target with + − × ÷ by tapping tiles, Countdown style | Every target is guaranteed reachable |
| N-Queen | Classic N-Queens on 6×6 (easy), 8×8 (medium) or 10×10 (hard), with a fixed queen and blocked cells, ✕ notes and clash highlighting | Every board has exactly one completion, so a memorised textbook answer doesn't help |
Scoring:
Formats: Classic (total points) and Knockout (the bottom X% is out after each round and spectates).
Every device sees the leaderboard:
Anti-cheat:
Student ID + PIN:
Monthly leaderboard (/leaderboard):
config/leaderboard/monthly.json: download it from the Monthly tab, commit, push, and Vercel rebuilds (how). No Student IDs are published.Host console:
Robustness:
Design: a "back-bench notebook" look:
Vibe Hackathon (team competition) at /competitions/vibecoding/: teams of 2–4 build a real one-page site on their phones by asking an AI (Google Gemini), tile by tile, with hidden automated checks; then they solve a sliding puzzle, publish their site on the event network and handle a "client's change request". Save Points, Go Back, Project Notes, hints, a live projector wall, voting and awards. Friendly words at first; the real ones (prompt, commit, revert, deploy) are revealed at the end. See docs/competitions/ and the event-day runbook.
All wording (titles, descriptions, buttons, funny messages), the department list, scoring numbers, timings and word lists live in config/. Edit a file there and every screen updates. No app code to touch. config/README.md has a "change X → edit file Y" table.
👉 Read docs/EVENT_DAY.md. It's the checklist for hosts.
Short version (Windows laptop):
pnpm pack:arena on a dev machine, then copy dist/brain-arena/ to the laptop. The laptop only needs Node.js 20+.setup-hotspot.ps1. It raises the Mobile Hotspot limit to 128 (WifiMaxPeers), keeps the hotspot awake, opens the firewall and sets up the loopback adapter, so the hotspot has no internet.start-arena.bat. It turns on the hotspot and starts the server.http://192.168.137.1:4000 (the address never changes, so print the QR).http://localhost:4000/host/ (the PIN is in the terminal). Projector: http://localhost:4000/screen/.For more phones than the laptop's Wi-Fi card can handle, you can add Wi-Fi sharing repeater phones (same URL) or USB Wi-Fi dongles (one QR per network). The guide covers both.
The web app is a static export, so Vercel can host the online half: the landing page, solo practice and the installable PWA. Live events still run on the laptop. Vercel can't host the arena server, because it needs a long-running WebSocket process.
ajayda24/iedc-hub-tournaments.apps/web and leave "Include files outside the root directory" on. Everything else comes from apps/web/vercel.json: a pnpm workspace install, next build --webpack and output out/, deployed as a plain static site (framework "Other").routes-manifest.json couldn't be found, set Settings → Build & Deployment → Framework Preset to Other and redeploy.main redeploys.pnpm install
pnpm dev # arena on :4000 + Next dev server on :3000
# open http://localhost:3000/host/ (PIN printed by the arena), /screen/, /play/
pnpm check # typecheck + unit tests: run before every push
pnpm test # engine + arena unit tests (Vitest)
pnpm build # static web export (apps/web/out, precompressed) + arena bundle
pnpm start # arena serving the built app on :4000
pnpm test:e2e # Playwright: real arena + browsers (needs `pnpm build` first)
pnpm bots --n 80 # 80 simulated students who actually solve puzzles (dry run / load test)
pnpm pack:arena # dist/brain-arena: single-folder build for the event laptop
pnpm vibecoding:bots # Vibe Hackathon load test: 15 simulated teams + a forced restart (mock AI)
pnpm vibecoding:models # which Gemini models your key can use
pnpm vibecoding:quality # can the real models build every tile? (24 beginner prompts)
Measured locally with pnpm bots --n 80 over four rounds:
config/ ✏️ ALL text, settings, word lists and the published leaderboard (edit here, no code)
copy/ words on every screen, one file per screen
leaderboard/ monthly.json, what the website's /leaderboard shows
words/ Word Hunt and Anagram word lists
apps/
web/ 📱 everything on a screen: phones, host console, projector, practice, leaderboard
app/ one folder per URL (/play, /host, /screen, …)
src/screens/ the page screens src/games/ one view per game
src/ui/ shared pieces src/net/ connection to the arena
arena/ 💻 the laptop server: rounds, scoring, PINs, history, crash safety
src/competitions/ team competitions (Vibe Hackathon): AI gateway, check runner, published sites
packages/shared/ 🧩 game engines + rules shared by both: protocol, scoring, monthly board
src/competitions/ the pure rules of each competition (Vibe Hackathon: tiles, checks, scoring, puzzle)
scripts/ 🛠️ build helpers; scripts/event-kit/ holds the .bat/.ps1 files for the laptop
e2e/ ✅ end-to-end tests (a real arena + browser)
docs/ 📖 EVENT_DAY.md (host checklist), ADD_A_GAME.md, screenshots
dist/brain-arena/ 📦 the built event kit (gitignored). Its arena-data/ is the real event data
Each folder has a short README with a file-by-file map: config, apps/web, apps/arena, packages/shared, scripts.
Where does a change go?
| I want to… | Go to |
|---|---|
| Change wording, departments, points, timings | config/ |
| Change how a page looks or behaves | apps/web/src/screens/ (page) or apps/web/src/ui/ (shared piece) |
| Change a game's puzzles or answer checking | packages/shared/src/games/<id>/ |
| Change a game's look on the phone | apps/web/src/games/<Name>View.tsx |
| Change round flow, scoring rules in play, PINs, history | apps/arena/src/ |
| Add a game | docs/ADD_A_GAME.md |
| Change Vibe Hackathon's tiles, scoring, AI models | config/competitions/vibecoding/ (tasks, scoring, models .json) |
| Add a team competition | docs/competitions/ADD_A_COMPETITION.md |
| Change the laptop start/hotspot scripts | scripts/event-kit/ |
Keeping it working: run pnpm check before pushing (GitHub also runs it on every push, see .github/workflows/ci.yml). For bigger changes, also pnpm build and pnpm test:e2e.
http on the LAN, so phones need nothing pre-installed.ws:// from https pages, and service workers need HTTPS.packages/shared/src/games/<id>/ plus a view in apps/web/src/games/. The full checklist is in docs/ADD_A_GAME.md.config/ (see above). Word lists come from the MIT word-list package. Edit config/words/wordhunt-answers.txt or config/words/anagram-packs.source.json, then run pnpm content:build.More games:
Spice:
Platform:
--upstream) for a second laptop,setup-hotspot.ps1 / start-hotspot.ps1 are written for Windows 10/11 and need a quick test on your laptop.