# ApiCore-Frontend Next.js-Oberfläche von ApiCore (App Router, TypeScript, Tailwind, shadcn/ui, TanStack Query). Die App spricht nur über die API des Backends; sie hat keinen eigenen Datenbankzugriff. Überblick über das ganze Projekt: [`../README.md`](../README.md), Seitenstruktur: [`../ARCHITECTURE.md`](../ARCHITECTURE.md) Abschnitt 2. ## Einrichten ```bash npm install cp .env.example .env.local # API_URL, z. B. http://localhost:3001/api/v1 npm run dev # http://localhost:3000 ``` `API_URL` ist eine Laufzeit-Variable: Im Cluster kommt sie aus der ConfigMap `apicore-frontend-config`, ein neuer Wert braucht keinen neuen Build. Diese Next.js-Version (16) weicht von älteren ab; vor Änderungen die mitgelieferte Doku unter `node_modules/next/dist/docs/` lesen (siehe [`AGENTS.md`](AGENTS.md)). ## Prüfen ```bash npm run lint npm run typecheck # next typegen && tsc --noEmit npm test # Vitest + React Testing Library npm run build ``` Der Image-Build (`Dockerfile`) führt Lint, Typecheck und Tests aus und bricht bei Fehlern ab. ## Offline - Offline-Warteschlange in IndexedDB (`src/lib/offline/`), Band „Offline – X Einträge warten“, Sync bei Wiederverbindung mit Idempotenz-Schlüssel. - Service Worker (`public/sw.js`, `public/sw-routes.js`) mit App-Hülle und Offline-Seiten unter `src/app/(app)/offline/` für den Kaltstart ohne Netz. - „Stand laden“ holt die Daten eines Stands auf das Gerät; Abmelden löscht Pakete und Caches. Tokens werden nie gespeichert.