# AGENTS.md ## File structure ``` . ├── server.js # Express server with API endpoints ├── package.json # Dependencies (express, cors) ├── public/ │ ├── Test.html # Root HTML file (served at /) │ ├── main.v2.js # Complete frontend client app │ └── styles.css # UI styles ├── Docker/ │ └── Dockerfile # Node.js Alpine image ├── docker-compose.yml # Docker service definition └── sessions/ # Data directory (bind-mounted in Docker) ├── ELT/ # Elektro department ├── HLS/ # HLS department └── ARCH/ # Architektur department ``` ## Overview Single-page app for tracking engineering projects across weekly sessions ("Sitzungen"). Vanilla JS/HTML/CSS frontend (`public/`) + Node.js/Express server (`server.js`). No build step, no bundler. Data is persisted as CSV files under `sessions/`. ## Running - `npm install` then `npm start` (executes `node server.js`). - Or with Docker: `docker compose -f Docker/docker-compose.yml up --build`. - Server runs on `PORT` env var or defaults to `3003`; serves `public/Test.html` as root and API under `/load-all`, `/save-csv`, `/delete-csv`. - Frontend assumes the API lives at `window.location.origin`, falling back to `http://localhost:3003` when opened as a local file. Opening `Test.html` directly without a server will load seed/demo data. ## Operations ### Local ```bash npm install npm start ``` Access at `http://localhost:3003` (or `PORT=3004` if occupied). ### Docker ```bash docker compose -f Docker/docker-compose.yml up --build ``` Access at `http://localhost:3003` (or override with `PORT=3004`). ## CSV format - Delimiter: semicolon (`;`) - Encoding: UTF-8 with BOM (`\ufeff`) - Structure: - `sessions//` contains department data - Week files: `