Files
admin 53385ce7d8 Projekt-Notizen (NOTES.md) hinzufügen
Zusammenfassung der Next.js-Umstellung, Tab-/UI-Details, Deployment
(gleicher Dockge-Stack-Name für Datenerhalt) und Umgebungsvariablen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 19:34:32 +02:00

59 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Projekt-Notizen Arzt-Termine
## Umstellung auf Next.js (Juli 2026)
Das Projekt wurde vom getrennten **React/Vite-Frontend + Express/MongoDB-Backend**
auf eine **einzelne Next.js-App** (App Router) umgestellt. Design und Layout sind
bewusst an das Projekt `../werte-next` angelehnt.
### Was gemacht wurde
- **Architektur:** Next.js 16 (App Router), React 19, Tailwind 4, TypeScript.
- UI: Client-Komponenten in `components/` (`TabLayout`, `AppointmentForm`,
`AppointmentList`, `ConfirmationModal`), Seiten in `app/`.
- API: Next.js Route Handler unter `app/api/appointments` (GET/POST/PUT/DELETE,
Soft-Delete via `deleted`-Flag).
- DB: MongoDB-Zugriff in `lib/db.ts` (gecachter Client, DB `appointmentsdb`,
Collection `appointments`).
- Kein Login/Auth (wie zuvor, bewusst so).
- **Design von werte-next übernommen:** Rahmenbox, Farben #CCCCFF/#85B7D7/#FFFFDD,
Tabellen-Liste, Footer mit Version/Datum.
- **Tabs:**
- **Termine** (`/`): Formular + Liste **nur offener** Termine.
- **Liste** (`/liste`): **alle** Termine, Checkbox aktiv (erledigt umschaltbar).
- **Darstellung erledigter Termine:** blassere Textfarbe (kein Durchstreichen),
ans Ende sortiert.
- **Eingabeformular** auf 60 % Breite reduziert, zentriert.
- Spalten **Arzt / Fachrichtung / Bemerkungen** linksbündig.
- **Druckansicht** der aktuellen offenen Termine ab heute beibehalten.
- Altes `frontend/`- und `backend/`-Verzeichnis entfernt; Vite-Überbleibsel
`public/vite.svg` gelöscht.
### Git
- Umgesetzt auf Branch `use_next`, per Fast-Forward nach `main` gemergt und
gepusht (Remote: gitea.fuerst-stuttgart.de/admin/aerzte). Branch danach gelöscht.
- Security-Review durchgeführt: keine relevanten Schwachstellen.
## Deployment
- Image bauen & pushen: `./deploy.sh [tag]`
`docker.citysensor.de/aerzte-next`
- Auf dem Server (Dockge): `docker compose -f docker-compose.prod.yml up -d`
- **Wichtig Datenerhalt:** Beim Umstieg vom alten auf den neuen Stack den
**gleichen Dockge-Stack-Namen `aerzte`** beibehalten. Dann werden die benannten
Volumes (`aerzte_mongodb_data` / `aerzte_mongodb_config`) automatisch
wiederverwendet und die MongoDB-Daten bleiben erhalten.
Nur `docker compose down` **ohne** `-v` verwenden. (Hat funktioniert.)
- Bei zwingend neuem Stack-Namen: alte Volumes als `external` mit altem Namen
einbinden.
## Umgebungsvariablen
| Variable | Beschreibung |
| ------------------- | --------------------------------------------- |
| `MONGO_URI` | MongoDB-Verbindung inkl. Datenbankname |
| `MONGO_ROOT_USER` | Root-User für den MongoDB-Container (Compose) |
| `MONGO_ROOT_PASSWD` | Root-Passwort für den MongoDB-Container |
| `APP_PORT` | Host-Port der App (Standard: 3000) |