# Art Gallery Interactive virtual art gallery: zoomable historical timeline, art movement bands, one 3D hall per artist (dynamic wall layout, canvas placeholders for missing works, influence-linked exits), and painting detail views with preserved gallery camera on return. ## Documentation | Document | Purpose | |----------|---------| | [Documentation/basics.md](Documentation/basics.md) | Architecture, layout, user flow | | [Documentation/setup.md](Documentation/setup.md) | Install, env, npm scripts | | [Documentation/DB_structure.md](Documentation/DB_structure.md) | PostgreSQL tables | | [Documentation/API.md](Documentation/API.md) | REST endpoints | | [Documentation/data-and-images.md](Documentation/data-and-images.md) | Seeding and image pipeline | ## Stack - **Backend:** Node.js, Express, PostgreSQL - **Frontend:** React, Vite, Three.js (`@react-three/fiber`, `@react-three/drei`) ## Setup 1. Copy `.env.example` to `.env` and set database credentials. 2. Install dependencies: ```bash npm install cd client && npm install && cd .. ``` 3. Apply database schema (requires PostgreSQL superuser for first-time setup): ```bash npm run migrate npm run seed ``` 4. Start the server: ```bash npm run server ``` Open http://localhost:3001 ## Development Run API and Vite dev server separately: ```bash npm run dev:server # http://localhost:3001 npm run dev:client # http://localhost:5173 (proxies /api and /images) ```