Step 1 of 2
The request
Art museum exhibition planning and gallery wall layout tool
Read the full request
Build Atelier Atlas, an exhibition planning workspace for an independent contemporary art museum. Seed 18 fictional artworks with original locally rendered geometric illustrations, dimensions, medium, artist, loan availability dates and handling notes. Provide an editorial collection browser with filters, an artwork detail drawer and an exhibition shortlist. The central feature is a scaled two-dimensional gallery wall planner for three rooms: place shortlisted artworks on named walls, edit placement with keyboard-operable controls and show width usage and overlap/out-of-bounds warnings. Do not require drag-and-drop as the only input. Add a loan calendar that flags unavailable works for the chosen exhibition date range and a packing checklist generated from the selected artworks. Users can save a named exhibition, reopen it and export its artwork/placement manifest as JSON. Design it like a gallery catalogue, with generous whitespace, serif headings and restrained burgundy accents; the art and spatial plan should dominate. Deliver a self-contained demo with synthetic data clearly labelled, English product copy, and no external APIs, credentials or remote assets. Use HTML/CSS/JavaScript with a directly previewable root index.html. Provide distinct, polished visual design, accessible labelled controls, visible keyboard focus and useful empty/error states. Persist user edits locally with a reset-demo action. Include a short README and executable Node built-in tests for the important domain calculations. Verify the actual main user journey in a browser at mobile and desktop widths before delivery. An artwork is available only when its inclusive loan-availability interval contains the entire exhibition interval. Reject an exhibition end before its start. Before delivery, exercise each acceptance criterion with recorded, observable results. For persistence, save a distinctive value, reload the actual page and observe the restored UI. Keep domain calculations separate enough for tests to import the production functions.
The journey
- Read the requestTurned it into a list of things it would have to prove before calling the work done.
- Did the workPlanned the pieces, built them and checked the result as it went.
- Sent back by the final reviewThe last check did not accept the first result, and said what was missing.
- CorrectedThe missing parts were fixed and the work was checked again.
- Delivered7 files handed over.
The result
- app.js9.9 KB
- domain.js628 B
- index.html3.4 KB
- README.md718 B
- server.js600 B
- styles.css5.2 KB
- tests.js821 B