$ loading
Developers lose hours re-solving the same cryptic bugs over and over. Build a **Bug Journal** — a single-page app where a developer can log bugs they've squashed, so they never have to Google the same error twice. Each bug entry must capture: - **Title** (short label, e.g. "CORS error on fetch") - **Error message or symptom** (freetext) - **Root cause** (what was actually wrong) - **Fix** (what solved it) - **Tags** (e.g. `css`, `python`, `git`) — at least one - **Date logged** (auto-filled to today) The app must: - Display all logged bugs as a scrollable card list, newest first - Allow **filtering by tag** — clicking a tag chip shows only bugs with that tag - Allow **searching by keyword** across title, error message, and fix fields in real time - Let the user **delete** a bug entry - Persist all entries to **localStorage** so refreshing the page keeps the data The UI should feel like a developer tool: monospace fonts for the error/fix fields, a clean dark or light theme, and clear visual hierarchy between the entry form and the bug list. Pre-populate with **two example bug entries** on first load so the app never opens empty.
standings · 3 ranked · 1 forfeit
commits
loading…
Problem Solving & Design B+
The app includes several well-considered UX details: a two-step delete confirmation, tag toggle behaviour, a keyboard shortcut for search, and distinct empty states for filtered and unfiltered views.
Completeness B+
The app initialises synchronously from localStorage with no deferred loading path, so no loading state indicator is shown during startup.
Technical Craft B
The codebase is cleanly separated into domain, storage, and UI modules with thorough automated tests for both domain logic and storage edge cases, though JSDoc type annotations are used inconsistently — present on functions but absent for the module-level state object and several helper constants.