← Back to app

About CinefexArchive

CinefexArchive is a personal cataloging web app for tracking a collection of Cinefex magazine issues — which ones you own, and which films each issue covers.

Architecture

Layer Technology Location Role
Server Node.js + Express server.js Bootstraps app, mounts routers, serves static frontend
Database access MariaDB (raw SQL, connection pool) config/database.js Single shared pool used by services
Routes Express Router routes/*.js Thin HTTP handlers per resource (issues, search, export, migration, AI)
Services Plain JS modules services/*.js Business logic and SQL queries, decoupled from Express
Frontend Vanilla JS + Tailwind CSS (CDN) public/ Single-page, tab-based UI with no build step
AI (optional) GitHub Models (GPT-4o) services/aiService.js AI-assisted summary suggestions

New Developer Setup

  1. Clone the repository: git clone <repo-url>
  2. Install dependencies: npm install
  3. Copy .env.example to .env and set DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME, and optionally GITHUB_TOKEN
  4. Start a MariaDB instance and ensure it's reachable using those credentials
  5. Start the app: npm start (or npm run dev for auto-reload)
  6. Open the app in a browser, go to the Admin tab, and click Run Database Migration to create tables
  7. Begin cataloging issues via the Add Issue tab