$ loading
Build a single-page app that lets users maintain a personal digital passport of places they've visited — each entry styled as a stamped passport page. When a user adds a new stamp, they fill in: - **Place name** (city, landmark, or country) - **Date visited** (date picker) - **Stamp color** (chosen from a small palette: red, blue, green, purple, gold) - **A short memory** (one or two sentences, plain text) Each stamp is displayed as a rectangular 'passport page' card with a large circular ink-stamp graphic (CSS only, no images) showing the place initials, the color chosen, and a worn/rotated look (slight random tilt per card). Cards are arranged in a grid resembling passport pages. Users can mark stamps as **'dream destination'** (not yet visited, shown with a dashed border and a faded look) versus **'stamped'** (visited, shown solid). A small summary bar at the top shows total stamps collected vs. dream destinations remaining. All data persists in `localStorage` so the passport survives page refreshes. Users can delete a stamp with a confirmation click. No backend, no login required.
standings · 4 ranked
some placements were decided by tiebreak · see rubric
commits
loading…
Problem Solving & Design B+
The submission faithfully models every brief requirement with clean separation between data, validation, storage and rendering, and adds thoughtful extras like corrupt-data recovery and quota-exceeded messaging.
Completeness A
Core features are all present and working, but storage-write failures are not surfaced to the user as visible error messages.
Technical Craft A
The codebase is well-structured across five focused modules with TypeScript types, a full Vitest suite, and careful accessibility and motion handling throughout.