2.5 KiB
🏋️♂️ 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
-
Repository klonen:
git clone <REPO-URL> cd trainings-api
-
Abhängigkeiten installieren:
npm install
-
Datenbank konfigurieren: Datei .env aus .env_default erstellen und die PostgreSQL-Verbindungsdaten und Mailzugangsdaten hinterlegen: cp .env_default .env
-
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! 🚀