From f54f8d2331e18aca819f339305cb598e38ffc1b8 Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 15 Mar 2025 20:11:30 +0100 Subject: [PATCH] =?UTF-8?q?README.md=20gef=C3=BCllt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env_default | 21 ++++++----- README.md | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 11 deletions(-) diff --git a/.env_default b/.env_default index 8d600f1..c631060 100644 --- a/.env_default +++ b/.env_default @@ -1,14 +1,13 @@ -DATABASE_URL=postgres://klaas:Dimrb73611912@s002.boergmann.it:5432/ -DBNAME=tkd_neu -SESSIONSECRET=ayfawsr23rw -JWT_SECRET=ayfawsr23rw -MAILHOST=ha01s001.org-dns.com -MAILUSER=admin@boergmann.it -MAILFROM=admin@boergmann.it -MAILPASS=October7-Obsessed-Gumdrop-Remote -PORT=2001 +DATABASE_URL=postgres://user:psw@localhost:5432/postgres +SESSIONSECRET=Your Secret +JWT_SECRET= +MAILHOST= +MAILUSER= +MAILFROM= +MAILPASS= +PORT=2000 TELEBOT= TELECHAT= -HOST=localhost +HOST= WEEKDAY=4 -ABTEILUNG=KiTu \ No newline at end of file +ABTEILUNG=KiTu/ABENTEUERSPIELPLATZ/KKT \ No newline at end of file diff --git a/README.md b/README.md index e69de29..1f3e013 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,100 @@ +# 🏋️‍♂️ 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:** + ```sh + git clone + 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: + cp .env_default .env + +4. **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! 🚀