Files
JudoWeb/README.md
Claude 5ff0df8685 Add comprehensive README with project documentation
Include project description, tech stack, structure, setup instructions,
available scripts, database configuration, and API endpoints.

https://claude.ai/code/session_01UFj67Xe3r5qqRaq4UMRhpa
2026-02-03 05:42:21 +00:00

5.1 KiB

JudoWeb

Eine moderne Webanwendung für das Judoteam Stadtlohn - mit Vereinspräsentation und Verwaltungssystem.

Projektbeschreibung

JudoWeb ist eine Full-Stack-Webanwendung, die zwei Hauptzwecke erfüllt:

  • Öffentliche Vereinswebsite: Präsentation des Judoclubs mit Informationen zu Judo, Vereinswerten (Respekt, Disziplin, Selbstbehauptung) und Veranstaltungen
  • Verwaltungssystem: Benutzerverwaltung, Registrierung und Altersgruppenmanagement

Features

  • Responsive Homepage mit Bildkarussell (Würfe, Haltetechniken, Stabilitätstraining)
  • Veranstaltungsübersicht (Nikolausturnier, Wettkämpfe, Kinoabende)
  • Benutzerauthentifizierung mit Registrierungsschlüsseln
  • Altersgruppenmanagement
  • Dark/Light Theme-Umschaltung
  • Mobile-optimiertes Design

Technologie-Stack

Backend

  • .NET 9.0 mit ASP.NET Core Web API
  • Entity Framework Core 9 - ORM
  • ASP.NET Core Identity - Authentifizierung
  • Swagger/Swashbuckle - API-Dokumentation

Frontend

  • Vue.js 3 mit TypeScript
  • Vite - Build-Tool und Entwicklungsserver
  • Vuetify 3 - Material Design Komponenten
  • Vue Router - Client-seitiges Routing

Datenbank

  • SQLite (Entwicklung)
  • PostgreSQL (Produktion)

Zusätzliche Services

  • Plunk - E-Mail-Versand

Projektstruktur

JudoWeb/
├── API/                           # Backend (.NET)
│   ├── Controllers/               # API-Endpunkte
│   │   ├── AgeGroupController.cs
│   │   ├── AuthController.cs
│   │   └── RegistrationKeyController.cs
│   ├── Models/
│   │   ├── Internal/              # Domain-Modelle
│   │   └── Outgoing/              # DTOs
│   ├── Database/                  # EF Core Kontext
│   ├── Repository/                # Datenzugriff
│   ├── Services/                  # Business-Logik
│   └── Migrations/                # Datenbank-Migrationen
│
├── GUI/                           # Frontend (Vue.js)
│   ├── src/
│   │   ├── routes/                # Seiten-Komponenten
│   │   ├── components/            # Wiederverwendbare Komponenten
│   │   ├── plugins/               # Vue-Plugins
│   │   └── router/                # Router-Konfiguration
│   └── public/static/             # Statische Assets
│
└── JudoWeb.sln                    # Visual Studio Solution

Installation & Setup

Voraussetzungen

Frontend einrichten

cd GUI
npm install

Backend einrichten

cd API
dotnet restore

Entwicklung starten

Frontend (mit Hot-Reload)

cd GUI
npm run dev

Der Entwicklungsserver startet unter http://localhost:5173

Backend

cd API
dotnet run

Die API ist verfügbar unter:

  • HTTP: http://localhost:5246
  • HTTPS: https://localhost:7248
  • Swagger UI: https://localhost:7248/swagger

Verfügbare Scripts

Frontend (GUI/)

Befehl Beschreibung
npm run dev Startet Entwicklungsserver
npm run build Erstellt Produktions-Build
npm run test:unit Führt Unit-Tests aus
npm run type-check TypeScript-Typprüfung
npm run format Code-Formatierung mit Prettier

Backend (API/)

Befehl Beschreibung
dotnet run Startet Entwicklungsserver
dotnet build Kompiliert das Projekt
dotnet publish -c Release Erstellt Produktions-Build
dotnet ef database update Wendet Migrationen an

Datenbank-Konfiguration

Die Anwendung wählt automatisch die Datenbank basierend auf der Konfiguration:

  1. PostgreSQL (Produktion): Wenn PostgresConnection in appsettings.json oder als Umgebungsvariable gesetzt ist
  2. SQLite (Entwicklung): Standardmäßig wird app.db verwendet

Datenbank-Migrationen werden beim Anwendungsstart automatisch ausgeführt.

Beispiel PostgreSQL-Konfiguration

{
  "ConnectionStrings": {
    "PostgresConnection": "Host=localhost;Database=judoweb;Username=user;Password=pass"
  }
}

API-Endpunkte

Endpunkt Beschreibung
GET /api/ageGroups Alle Altersgruppen abrufen
POST /api/ageGroups Neue Altersgruppe erstellen
PUT /api/ageGroups/{id} Altersgruppe aktualisieren
DELETE /api/ageGroups/{id} Altersgruppe löschen
POST /api/account/register Benutzer registrieren
POST /api/account/login Benutzer anmelden
GET /api/registrationKey Registrierungsschlüssel abrufen

Vollständige API-Dokumentation ist über Swagger UI verfügbar.

Produktion

Frontend bauen

cd GUI
npm run build

Das Build wird in ../wwwroot/ ausgegeben und vom Backend als statische Dateien serviert.

Backend publizieren

cd API
dotnet publish -c Release -o ./publish

Lizenz

Dieses Projekt ist proprietär und gehört dem Judoteam Stadtlohn.