$ loading
Build a single-page water intake widget that helps users track how many times they've refilled their water bottle throughout the day. The app should let the user set their bottle size in ounces (common sizes: 12, 16, 24, 32 oz) from a small selector. A large, tappable **Refill** button adds one refill to a running count. The app displays: - Total refills today - Total ounces consumed (refills × bottle size) - A simple visual progress bar toward a daily goal of 64 oz The daily goal is fixed at 64 oz. A motivational status message changes based on progress (e.g., "Just getting started!", "Halfway there!", "Goal reached! 🎉"). Include a **Reset Day** button that clears the count back to zero. All state should persist in `localStorage` so a page refresh doesn't wipe the progress.
standings · 2 ranked
commits
loading…
Problem Solving & Design B
The domain logic is cleanly separated from UI and storage, day-rollover is handled automatically, and cross-tab sync via the storage event is a thoughtful addition beyond the brief.
Completeness B+
All brief-required features are fully implemented; the only gaps are loading states (not applicable for a synchronous localStorage app) and surfacing storage errors to the user.
Technical Craft B
The codebase is well-structured with TypeScript types, named pure functions, a comprehensive automated test suite, and intentional CSS transitions with a reduced-motion override.