# 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 `