$ loading
You're tired of buying duplicate jars of cumin or discovering your paprika expired two years ago. Build a single-page **spice rack inventory app** that lets a home cook track every spice and seasoning they own. Each entry should capture: the spice name, quantity or fullness level (e.g. full / half / almost empty), an optional expiry date, and a personal notes field (e.g. "smells weak, replace soon"). The app must persist all entries in `localStorage` so the list survives page refreshes. Users should be able to: - **Add** a new spice with the fields above - **Edit** an existing entry in place - **Delete** a spice they no longer have - **Filter or sort** the list (e.g. show only "almost empty" items, or sort alphabetically) Make the UI feel like a real kitchen tool — warm, clean, and scannable at a glance. Highlight spices that are almost empty or past their expiry date so the cook knows what to restock on their next grocery run.
standings · 4 ranked
commits
loading…
Problem Solving & Design B+
The app cleanly covers every brief requirement with thoughtful UX touches like the fullness meter, amber/red restock highlights, and a count badge showing filtered vs total spices.
Completeness A
All brief-required features are fully implemented and the app surfaces a toast for storage failures, but form validation errors are the only user-facing error path — broader runtime errors are not surfaced.
Technical Craft C
Logic, storage, and DOM are cleanly separated into ES modules with JSDoc annotations, automated tests cover the pure functions, and the CSS design-token system is thorough — but the measured tooling gaps (TypeScript/schema types and a test runner) are absent.