Add parquet floor, museum-style exit, movement-tinted walls, and gold/black frames with gallery sync after Fix it. Debug panel gets Checked and Fix it buttons; documentation and image-fetch reliability updates included. Co-authored-by: Cursor <cursoragent@cursor.com>
Art Gallery
Interactive virtual art gallery: zoomable historical timeline with era click-to-zoom and major event markers, branching art-movement flow (curved streams, hover-to-reveal artist lifespans), one 3D hall per artist (parquet floor, movement-tinted walls, black/gold frames by review status, corridor layout for large catalogs, museum-style exit doors, golden influence lamps, canvas placeholders for missing works, influence-linked exits), painting detail with prev/next catalog browsing and fullscreen lightbox, debug-mode image audit (Checked / Fix it), Checkup page, preserved gallery camera on return, and Wikipedia-sourced artist biographies.
Documentation
| Document | Purpose |
|---|---|
| Documentation/basics.md | Architecture, layout, user flow |
| Documentation/setup.md | Install, env, npm scripts |
| Documentation/DB_structure.md | PostgreSQL tables |
| Documentation/API.md | REST endpoints |
| Documentation/data-and-images.md | Catalog, bios, seeding, image pipeline |
Stack
- Backend: Node.js, Express, PostgreSQL
- Frontend: React, Vite, Three.js (
@react-three/fiber,@react-three/drei)
Setup
-
Copy
.env.exampleto.envand set database credentials. -
Install dependencies:
npm install cd client && npm install && cd .. -
Apply database schema (requires PostgreSQL superuser for first-time setup):
npm run migrate npm run seed -
Enrich the catalog (recommended after seed):
npm run fetch-artist-bios # Wikipedia biographies for all artists npm run expand-catalog # add famous works for artists with thin catalogs npm run update-influences # art-history lineage links between paintings npm run migrate:checkup-flags # review/fixed flags for Checkup + debug mode npm run fetch-images -- --limit=50 # random batch of missing images (10s per work) npm run fetch-images -- --artist="Claude Monet" # one artist in catalog order -
Build the client and start the server:
cd client && npm run build && cd .. npm run server
Development
Run API and Vite dev server separately:
npm run dev:server # http://localhost:3001
npm run dev:client # http://localhost:5173 (proxies /api and /images)