How karen1554/gart-gallery works
Purpose and entry points
This is a static artist/gallery website with a small Node-backed administration surface for managing gallery content and uploaded assets. Public entry points are index.html, galleries.html, works.html, and category-specific work pages such as works-dogs.html and works-landscape.html. The server entry point is server.js.
Public site layer
Public pages are conventional HTML documents styled and enhanced client-side:
• Shared presentation and general behavior: assets/css/style.css, assets/js/script.js
• Works/gallery-specific behavior: assets/js/works.js
• Public content pages: index.html, galleries.html, works.html
The public UI likely reads gallery metadata from a local data source rather than a database, creating a clear browser-to-static/HTTP-content boundary.
Gallery content store
Gallery records are centralized in data/gallery.json. This file is the material content boundary between administration and the public gallery renderer. Uploaded media is held under uploads, so gallery entries likely reference server-hosted image paths rather than embedding media in HTML.
Core paths:
• data/gallery.json
• uploads
• assets/js/works.js
Administration surface
admin-dashboard.html provides a separate management interface, with dedicated styling and JavaScript in assets/css/admin-dashboard.css and assets/js/admin-dashboard.js. Its architectural role is to create, update, or remove gallery metadata and coordinate media uploads through server endpoints exposed by server.js.
Core paths:
• admin-dashboard.html
• assets/js/admin-dashboard.js
• server.js
Server and persistence boundary
server.js is the runtime boundary for dynamic capabilities absent from static HTML: serving the site, exposing data-management APIs, handling uploads, and persisting changes to data/gallery.json and uploads. The application’s persistence model appears filesystem-based, with no database directory or migration layer present.
Core paths:
• server.js
• data/gallery.json
• uploads
Deployment and runtime
Node.js is the primary runtime, indicated by package.json and package-lock.json. render.yaml defines deployment configuration for Render, making Render the expected hosting/infrastructure target. Environment-dependent values are documented through .env.example; these likely support server configuration or administrative access and should remain outside committed source.
Core paths:
• package.json
• render.yaml
• .env.example
Components 15
Public site
- Public HTML pages · Home, galleries, works, and category pages.
index.html - Shared styles
assets/css/style.css - Shared browser behavior
assets/js/script.js - Gallery renderer · Loads and renders gallery content.
assets/js/works.js
Administration
- Admin dashboard
admin-dashboard.html - Admin styles
assets/css/admin-dashboard.css - Admin client · Coordinates gallery edits and media uploads.
assets/js/admin-dashboard.js
Node runtime & hosting
- Node server · Serves static content and dynamic management capabilities.
server.js - Gallery management API · Creates, updates, and removes gallery metadata.
server.js - Upload handler · Accepts and stores uploaded media.
server.js - Node dependencies
package.json - Render deployment
render.yaml - Environment contract · Documents deployment-dependent server or admin values.
.env.example
Other components
- Gallery metadata · Filesystem-backed gallery records shared by admin and public rendering.
data/gallery.json - Uploaded media · Server-hosted image assets referenced by gallery records.
uploads
Connections 17
- Public HTML pages → Shared styles: styles
- Public HTML pages → Shared browser behavior: enhances
- Public HTML pages → Gallery renderer: gallery pages use
- Gallery renderer → Node server: requests content
- Node server → Gallery metadata: serves records
- Node server → Uploaded media: serves media
- Admin dashboard → Admin styles: styles
- Admin dashboard → Admin client: runs
- Admin client → Gallery management API: manages records
- Admin client → Upload handler: uploads media
- Gallery management API → Gallery metadata: reads and writes
- Upload handler → Uploaded media: writes files
- Node server → Gallery management API: routes requests
- Node server → Upload handler: routes uploads
- Node dependencies → Node server: runs
- Render deployment → Node server: deploys
- Environment contract → Node server: configures