Files
aerzte/NOTES.md
T
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

2.8 KiB
Raw Blame History

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)