Files
Art-gallery/README.md
T
Danila KhodjaefandCursor 4eead54062 Add production deployment, photorealistic movement walls, and fix duplicate influence links.
Configure hosting for gallery.mysuperlab.netcraze.pro and LAN access, enhance movement gallery textures with period-appropriate painted materials, dedupe influenced-by API responses via painting_influence_sources, and refresh several painting image files.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 23:00:13 +03:00

3.2 KiB

Art Gallery

Interactive virtual art gallery: zoomable historical timeline with era click-to-zoom, major event markers (vertical guides into the movement flow), branching art-movement streams (click a movement name to enter its 3D movement gallery — photorealistic period interiors with painted walls, stone, and wood textures; chronological wings with up to ~55 works each, side-wall windows, wing navigator), 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 art-history annotations, prev/next catalog browsing and fullscreen lightbox, debug-mode image audit on painting detail and artist bio (Checked / Fix it / More / Clear / Upload), 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

  1. Copy .env.example to .env and set database credentials.

  2. Install dependencies:

    npm install
    cd client && npm install && cd ..
    
  3. Apply database schema (requires PostgreSQL superuser for first-time setup):

    npm run migrate
    npm run seed
    
  4. 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 (paintings)
    npm run migrate:artist-checkup-flags # same flags for artist portraits (bio debug)
    npm run migrate:painting-annotations # art-history notes on painting detail
    npm run update-painting-annotations  # load curated notes (+ optional --wikipedia)
    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
    
  5. Build the client and start the server:

    npm run start:prod
    

    Production URLs:

    See Documentation/setup.md for nginx/systemd configs in deploy/.

Development

Run API and Vite dev server separately:

npm run dev:server   # API — PORT from .env (3520 or 3001)
npm run dev:client   # http://localhost:5173 (proxies /api and /images)