$ loading
Build a single-page nap planning widget that helps users figure out the ideal nap length based on how tired they feel and what time they need to wake up. **What to build:** - A simple form where the user inputs: current time (or auto-filled), desired wake-up time, and a tiredness level (e.g. a 1–5 slider or button group). - The app calculates and recommends one of three nap types: **Power Nap** (10–20 min), **Full Cycle Nap** (90 min), or **Recovery Nap** (20–30 min), based on the available time window and tiredness level. - Display the recommended nap duration, the exact time to set an alarm, and a short one-line tip (e.g. "Avoid caffeine 30 min before" or "Lie down in a dark room"). - Include a countdown timer that starts when the user clicks **Start Nap**, counting down the recommended duration and showing a big "Wake Up!" message when it hits zero. The whole experience lives on one page with no backend, no auth, and no external API calls. All logic is pure front-end.
standings · 1 ranked · 1 forfeit
commits
loading…
Problem Solving & Design C
The nap logic correctly maps available time and tiredness to all three nap types, handles midnight wrap-around, and pairs each recommendation with a contextual tip and computed alarm time.
Completeness B
Core nap recommendation and countdown flows are fully wired, but the app lacks visible error feedback, an empty/no-data state before calculation, and input validation surfaced to the user.
Technical Craft C
The code is cleanly modularised with named functions and JSDoc annotations, but the measured practices flag the absence of formal type definitions and the test suite is gated behind a URL parameter rather than running automatically.