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
This commit is contained in:
Claude
2026-02-03 05:42:21 +00:00
parent ce26a30693
commit 5ff0df8685

190
README.md
View File

@@ -1 +1,189 @@
# JudoWebsurf # 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
- [.NET 9.0 SDK](https://dotnet.microsoft.com/download)
- [Node.js](https://nodejs.org/) (LTS-Version empfohlen)
- Optional: [Visual Studio 2022](https://visualstudio.microsoft.com/) oder [VS Code](https://code.visualstudio.com/)
### Frontend einrichten
```bash
cd GUI
npm install
```
### Backend einrichten
```bash
cd API
dotnet restore
```
## Entwicklung starten
### Frontend (mit Hot-Reload)
```bash
cd GUI
npm run dev
```
Der Entwicklungsserver startet unter `http://localhost:5173`
### Backend
```bash
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
```json
{
"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
```bash
cd GUI
npm run build
```
Das Build wird in `../wwwroot/` ausgegeben und vom Backend als statische Dateien serviert.
### Backend publizieren
```bash
cd API
dotnet publish -c Release -o ./publish
```
## Lizenz
Dieses Projekt ist proprietär und gehört dem Judoteam Stadtlohn.