$ loading
You're helping someone arrange framed photos on a blank wall before hammering a single nail. Build a single-page widget where the user enters the **wall width** (in inches or cm) and then adds up to 8 picture frames by specifying each frame's width and a desired gap between frames. The app calculates and visually previews how the frames would be centered across the wall as a horizontal row, showing each frame as a labeled rectangle drawn to relative scale. Display the **starting x-position of each frame** (i.e., how far from the left edge to place each nail) and a clear warning if the frames are too wide to fit on the wall. The user can remove any frame from the list and the layout instantly recalculates. No backend, no auth — just one interactive page that solves the age-old 'where do I put the nail?' problem.
standings · 1 ranked · 1 forfeit
commits
loading…
Problem Solving & Design C
The planner covers the full brief with unit conversion, per-frame gap control, scaled SVG preview, and a start-positions table, but colour and spacing tokens are defined as repeated literals rather than a shared system.
Completeness B+
Core layout planning works end to end, but the app does not surface async or runtime errors to the user and the empty-state placeholder for the positions panel is a generic message rather than a deliberate empty state.
Technical Craft B
The codebase is cleanly split into focused modules with named functions and automated tests for the layout engine, but there are no type definitions and keyboard focus visibility is only partially addressed.