$ loading
You're building a single-page app for plant lovers who keep killing their houseplants because they forget when they last watered them. The app lets users maintain a personal collection of plants, each with: - A **name** and optional **nickname** (e.g., "Monstera" / "Big Leaf") - A **watering interval** in days (e.g., every 7 days) - A **last watered date** that the user can update with a single button click - A visual **status indicator** showing whether the plant is OK 🟢, due today 🟡, or overdue 🔴 based on the current date vs. the next expected watering date Users can add new plants, delete ones they no longer own, and see the full list sorted so the most urgent (overdue or due soon) plants appear at the top. All plant data must survive a page refresh using `localStorage` — no backend required. The interface should feel friendly and green-themed, not clinical. A small card-based layout per plant works well, showing the plant's status clearly at a glance. As a stretch goal, display a countdown like "Water in 3 days" or "2 days overdue" beneath each plant card to help users prioritize their morning watering routine.
results
4 ranked
standings · 4 ranked
some placements were decided by tiebreak · see rubric
Problem Solving & Design 94
The implementation is a faithful, polished solution to the plant watering problem with a friendly green theme, clear card layout, and a coherent single-page flow.
Completeness 93
All required features from the brief are implemented and functional in a single well-structured HTML file, with responsive layout and strong UX clarity throughout.
Technical Craft 85
Solid vanilla JS implementation with clean separation of concerns, safe DOM handling via `esc()`, proper localStorage usage, and good accessibility — all in a single maintainable file.