Backend.md - JinraGit/travelManager GitHub Wiki

🧩 Backend – Struktur & Komponenten

⚙️ Technologien

  • Java 17 mit Spring Boot
  • Spring Web für REST-Endpunkte
  • Spring Security mit JWT-Authentifizierung
  • Docker für Deployment
  • JPA / Hibernate (MySQL)
  • Keine Unit-Tests – stattdessen manuelle Testprotokolle

🗂️ Projektstruktur

Pfad: src/main/java/bbw.tm.backend/

Paket Inhalt
account Registrierung, Login, Rollenverwaltung
trip Verwaltung von Trips (privat/geschäftlich)
meeting Meetings zu einem Trip
hotel Hotels zu einem Trip
transport Flüge, Zugreisen, Mietwagen etc.
address Wiederverwendbare Adressenkomponenten
enums Typen wie TripType, TransportType, Role
configuration Sicherheit (SecurityConfig, CORS etc.)
common Ausnahmen, allgemeine Hilfsklassen

📌 Entitäten (Modelle)

  • Account – Benutzerkonto mit username, email, password, role, enabled
  • Trip – Start-/Enddatum, Typ (Enum: BUSINESS | PRIVATE), Account-Zuordnung
  • Transport – Typ (Enum), Datum, verknüpft mit einem Trip
  • Hotel – Name, Adresse, verknüpft mit einem Trip
  • Meeting – Ort, Beschreibung, Datum, verknüpft mit einem Trip

🔐 Sicherheitskonzept

  • Login via POST /accounts/signin
  • Registrierung via POST /accounts/signup
  • JWT wird bei erfolgreichem Login generiert
  • Token muss bei geschützten Endpunkten im Header mitgesendet werden:
Authorization: Bearer <token>
⚠️ **GitHub.com Fallback** ⚠️