Go to file
klaas 673e33aaf7 Rechtemanagement erweitert 2025-03-17 17:05:27 +01:00
middleware Rechtemanagement erweitert 2025-03-17 17:05:27 +01:00
routes Rechtemanagement erweitert 2025-03-17 17:05:27 +01:00
.env_default README.md gefüllt 2025-03-15 20:11:30 +01:00
.gitignore initial commit 2025-03-15 19:29:07 +01:00
README.md README.md gefüllt 2025-03-15 20:21:20 +01:00
app.js Rechtemanagement erweitert 2025-03-17 17:05:27 +01:00
db.js initial commit 2025-03-15 19:29:07 +01:00
package-lock.json initial commit 2025-03-15 19:29:07 +01:00
package.json initial commit 2025-03-15 19:29:07 +01:00

README.md

🏋️‍♂️ Trainings- und Anwesenheitsverwaltung API

Dies ist eine REST-API zur Verwaltung von Trainingseinheiten, Anwesenheiten und Geräteplänen für Sportabteilungen.
Die API basiert auf Node.js, Express und PostgreSQL.

🚀 Installation

  1. Repository klonen:

    git clone <REPO-URL>
    cd trainings-api
    
  2. Abhängigkeiten installieren:

     npm install
    
  3. Datenbank konfigurieren:

Datei .env aus .env_default erstellen und die PostgreSQL-Verbindungsdaten und Mailzugangsdaten hinterlegen: sh cp .env_default .env

  1. Server starten

     npm start
    

📌 API-Endpunkte

🔐 Authentifizierung & Middleware

Alle Endpunkte sind durch JWT gesichert.

requireAuth → Benutzer muss eingeloggt sein. requireAdmin → Benutzer benötigt Admin-Rechte.

📋 Mitgliederverwaltung

GET /member/:id? 📌 Gibt Mitgliederinformationen zurück

/member → Liste aller Mitglieder
/member/:id → Einzelnes Mitglied
PUT /member/:id?
📌 Fügt Mitglieder hinzu oder aktualisiert sie

Ohne id → Neues Mitglied
Mit id → Mitglied aktualisieren
DELETE /member/:id
📌 Löscht ein Mitglied (Admin erforderlich)

📅 Trainingsverwaltung

GET /:abteilung/trainings/:jahr?/:kw?
📌 Liefert Trainingsinformationen

/trainings → Alle Trainings einer Abteilung
/trainings/:jahr → Alle Trainings eines Jahres
/trainings/:jahr/:kw → Training einer bestimmten KW
POST /:abteilung/trainings/:jahr/:kw
📌 Erstellt ein neues Training mit Geräteplan

Wenn zwei Trainings dieselben Geräte hatten, wird hochgezählt.
Falls das letzte Gerät 10 war, geht es auf 1.
📋 Anwesenheitsverwaltung
GET /:abteilung/anwesend/:id
📌 Liefert Anwesenheiten für ein Training

POST /:abteilung/anwesend/:id
📌 Setzt Anwesenheiten

inriege → Alle Mitglieder, die anwesend sein könnten
anw → Mitglieder, die tatsächlich anwesend sind
Automatische Korrekturen:

Falls Mitglied in anw ist, aber nicht in DB → Hinzufügen
Falls Mitglied in anw fehlt, aber in DB → Löschen

🛠 Technologie-Stack

Backend: Node.js, Express.js
Datenbank: PostgreSQL
Authentifizierung: JWT

🛠 Entwickler-Tools

📜 Linter & Formatierung

npm run lint
npm run format

📦 Abhängigkeiten aktualisieren

npm update

🏗 Zukünftige Erweiterungen

📊 Statistiken & Berichte
📱 Mobile App-Integration
📧 E-Mail-Benachrichtigungen

📬 Kontakt

mailto:admin@boergmann.it
💬 Falls du Fragen hast, erstelle ein Issue oder kontaktiere mich! 🚀