# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview Single-page app for tracking engineering projects across weekly sessions ("Sitzungen"). Vanilla JS/HTML/CSS frontend + Node.js/Express server. No build step, no bundler, no tests. Data is persisted in a SQLite database (`node:sqlite`, needs Node >= 22.13) at `sessions/projektuebersicht.db`. **ONE** HTML entrypoint, served statically by Express: - `Test.html` — the whole app (sidebar nav items, in order: Meine Aufgaben, **Projekte**, Wochenbericht, Auslastung, Projektbeteiligte, then **Einstellungen** and — for admins only — **Admin**). Served at `/`. It also contains the **Projektbereich** — the area of ONE project — as the tab `plan` (`
`), with its own sub-navigation (`.plan-nav`) over six sections: **Dashboard**, **Terminplan** (Gantt), **Aufgaben** (task/milestone list), **Leistung** (erbrachter Leistungswert, see below), **Dateien**, **Einstellungen** (project master data incl. honorar and the beauftragte Leistungsphasen). Opened via `openProjectPlan()` in `js/gantt.js`, which is now just `setPlanTarget()` + `showTab('plan')` — the same kind of switch as Dashboard → Projekte, sidebar and topbar stay put. **There used to be a separate `Projekte` tab next to the Projektboard.** It listed the very same projects a second time and offered a second editing mask for the very same fields. Both are now ONE list — the tab `board`, labelled **Projekte** (see "Eine Projektliste" below). The URL still reads `/Projektplan/?weekLabel=…&projNr=…` and the selected section still lives in the URL fragment (`…#aufgaben`), so both stay linkable. See "Projektbereich" below. **`admin-users.html` no longer exists either.** It was a standalone admin-only page with a hand-built header instead of the sidebar and its own `checkAuthAndInit()` + role check. Its markup moved into `Test.html` as the `benutzer` section of the Admin area, its `