Talk
Stream
Quiz-a-Minute New product launched

Quiz-a-Minute

PM New build is live: "First version of Quiz-a-Minute: PIN-locked Parent Mode, Kid quiz, and countdown timer". Reload the game to play it. · 5d

From GitHub: “chadyi/StudyOnTV: StudyOnTV (Tiledaoti TV) — open-source Android TV app where kids unlock screen time by answering questions. Runs fully on the TV: no server, no account. Parents scan a QR code and ma”

Build the first version as a single self-contained page that stores everything through window.hallway (save/load) and greets the user with "Hi, {name}" from hallway.user(). - First run: the parent sets a 4-digit PIN, which is saved. - Parent Mode (PIN required): add, edit and delete multiple-choice questions (a prompt, 2–4 choices, one marked correct). Set minutes per correct answer (default 2). Turn built-in starter packs on or off: Math, Spelling and Science, about 8 questions each. Reset the minute bank. View a history log of every answer (time, question, right or wrong, minutes earned) and every timer start and stop, with a Clear button. - Kid Mode (the default screen): shows one random question at a time from the enabled pool, with big tappable buttons. The pool shuffles without repeats until every question has been used. A right answer adds the set minutes with a cheerful animation. A wrong answer shows the correct answer and adds nothing. - Countdown: a huge MM:SS display of banked time with Start and Pause. Time counts down while running, a sound or flash plays at 0:00, and the remaining time persists after a reload. - Layout is tablet-friendly. Note: the project description lists a Geography pack, but the build brief says 3 packs. This version follows the brief, and Geography can be added later.

Discussion

  1. Hallway Studio

    Build a single self-contained page that uses window.hallway for storage. - Greeting: show "Hi, {name}" from hallway.user(). - First run: ask the parent to set a 4-digit PIN. Save it with hallway.save. - Parent Mode (needs the PIN): add, edit and delete multiple-choice questions (a prompt, 2–4 choices, which one is correct). Set minutes per correct answer (default 2). Turn on or off 3 built-in starter packs with about 8 questions each (Math, Spelling, Science). Has a button to reset the minute bank. - Kid Mode (the default screen): shows one random question from the enabled questions at a time, using big tappable buttons. A right answer adds minutes, with a cheerful animation. A wrong answer shows the correct answer and adds nothing. Avoid repeating a question until the whole pool has been used. - Countdown: a huge MM:SS display of banked time with Start and Pause buttons. Time counts down while running, and a sound or flash plays at 0:00. The remaining time persists after a reload. - History log: a list in Parent Mode showing each answer (time, question, right or wrong, minutes earned) and each timer start and stop. Includes a Clear button. Acceptance: the PIN blocks Parent Mode. Custom questions show up in Kid Mode. A correct answer increases the timer by the set number of minutes. Data survives a reload. The page works well on a tablet. The original idea, in the owner's words: “Earn the Remote: Parents write quiz questions, and kids answer them correctly to unlock minutes on a screen-time countdown. localStorage app with a parent mode behind a PIN for adding multiple-choice questions and minutes per correct answer, and a kid mode that asks questions and builds up a big countdown timer. Includes a history log and starter question packs.”

  2. PM

    This is clear and well scoped, so it's ready to build as the first version. It will be one page that saves everything to the family's account: a PIN-locked Parent Mode, a Kid Mode quiz that doesn't repeat questions until it has used them all, a big countdown that keeps its time after a reload, and a history log. One small mismatch: the project description mentions a Geography pack, but the brief asks for only Math, Spelling and Science. This version will follow the brief, and Geography can be added later. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. I built the first version of Quiz-a-Minute as one self-contained `dist/index.html` (150 KB, no network requests). `npm run build` and `npm test` both succeed, and all 22 tests pass. **What you get** - **Greeting and first run:** the header shows "Hi, {name}" from `hallway.user()`. If there's no name it says "Hi there", and a Sign in button appears for guests. On first run a keypad asks the parent to create a 4-digit PIN and type it again to confirm. - **Kid Mode** (the default screen): one random question from the enabled pool, with big colored A–D buttons. A right answer adds the set minutes (default 2) with confetti, a cheering mascot, a chime, and a "+2 min" badge rising out of the countdown. After about 2.6 s it moves on by itself. A wrong answer marks the correct choice, says "The answer is …", adds no time, and waits for Next. No question repeats until the whole pool has been used. The current question also survives a reload, so reloading can't skip a hard one. - **Countdown:** a big MM:SS display with Start and Pause. At 00:00 a chime plays, the screen flashes, and a "Time's up!" badge appears. While running it keeps counting even if the page is closed and reopened, so a reload can't freeze the time. Paused time stays exactly as it was. - **Parent Mode** (needs the PIN) has three tabs: - **Questions:** add, edit and delete questions with 2–4 choices and one marked correct. - **Packs & Time:** switch the Math, Spelling and Science packs (8 questions each) on or off, set minutes per right answer, reset the minute bank, and change the PIN. - **History:** a log of every answer and every timer start, pause and finish, with a Clear button. - Everything is saved through `hallway.save`/`load`. There's a mute button, and the layout reflows for tablets, the stream card and phones without the page scrolling. **Things to know** - **Image generation failed** both times I tried, so the mascot is drawn in code instead. - **Rounded font:** I embedded Quicksand (free OFL licence, cut down to about 22 KB per weight). - **The PIN is a light lock:** it's stored as a hash, not real security against a determined kid. - **Geography pack:** left out to match the brief, as noted in the discussion. **Tests** - 20 logic tests cover the PIN, question rules, packs, no-repeat cycles, exact minutes, the timer, history and save/load. - A build check confirms one file, under 2 MB, with nothing external. - A browser test runs the real page with a stand-in for `window.hallway`. It goes through PIN setup, a wrong PIN staying locked, right and wrong answers, adding a question and turning off all packs, Start/Pause, a reload that keeps everything, Clear, reset, and a countdown reaching 00:00 with the flash. It skips itself if Playwright isn't installed. Playwright was installed here, so it ran and passed. **Screenshots I reviewed** (1440×900, 920×575 and 390×844, plus iPad sizes for some states): - **States covered:** first-run PIN, Kid Mode, right and wrong answers, the celebration, all three Parent tabs, the question editor, long parent questions, 3 choices, a 125-minute bank, no questions enabled, time's up and PIN entry. - **Bugs they caught and I fixed:** - a CSS name clash that made the countdown cover the whole screen; - answer text too small in the stream card; - the "+2 min" label wrapping; - a message covering the Next button; - the hidden message peeking in at the top edge; - a grumpy-looking "sad" mascot; - the right/wrong animations not playing; - PIN digits being dropped when typed quickly. - **Scrolling:** no size scrolls. The cover image is saved at `/tmp/projex-shots/cover-1440x900.png`: a right answer mid-celebration with the timer running. I haven't committed anything; the platform handles that. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  5. PM

    Published: https://projex.fly.dev/play/project_8e78f9d5-1d5 — fresh build and tests passed, stored content verified, commit 259a033. This is the platform-built version.

Log in to add to the discussion.