tkd_neu/README.md

75 lines
2.6 KiB
Markdown

# Server README
## Übersicht
Dieser Server ist eine Webanwendung, die mit Node.js und Express.js erstellt wurde. Er bietet eine API für Benutzerregistrierung und -anmeldung sowie eine geschützte Route für autorisierte Benutzer.
Es sollen mehrere Abteilungen abgebildet werden, Mitglieder des Vereins können in mehreren Abteilungen Mitglied sein.
Jede_r Übungsleiter_in hat Zugriff auf die eigene Abteilung und die dazugehörigen Mitglieder und deren Notfallkontakte.
## Zukünftige Funktionen
### Funtionen aus Version 1
- Anwesenheit
- geleitete Spiele
- Spielewiki
- Riegenzuordnung
### Login für Mitglieder
Mitglieder können ihre eigenen Daten bearbeiten und den eigenen Fortschritt anzeigen.
### Fortschrittsanzeige für Mitglieder
Übungen, die in der Turnstunde geschafft wurden sollen angezeigt werden. So können zum einen Vertretungs-Helfer sehen, wie der Stand der Riege ist, zum anderen können die Kinder zuhause zeigen, was sie geschafft haben.
### installation
Website mit Script zum erstellen der .env Datei sowie der Tabellen und eines Admin-Benutzers.
## Begriffe
- Mitglied: Vereinsmitglied
- Teilnehmer: Teilnehmer_in einer Abteilung. Kann Mitglied sein oder zur Probe Teilnehmen.
- Abteilung: Sportstunde mit einem oder mehreren Trainingstagen.
- Riege: Unterteilung einer Abteilung, wird von einem Helfer geleitet.
- Helfer: Person, die Aufwärmen und Spiele leitet.
- Riegenleiter: Helfer, der eine Riege leitet.
- Leiter: Helfer, der eine Abteilung leitet (Übungsleiter_in) Eine Abteilung hat nur einen Leiter.
## Anforderungen
- Node.js (Version 14 oder höher)
- Express.js (Version 4 oder höher)
- PostgreSQL-Datenbank (mit pg-Modul)
## Konfiguration
- Die Datenbankverbindung wird über Umgebungsvariablen konfiguriert (siehe `.env`-Datei).
- Der Server läuft standardmäßig auf Port 3000.
## API-Endpunkte
- `/auth/register`: Registrierung eines neuen Benutzers
- `/auth/login`: Anmeldung eines bestehenden Benutzers
- `/auth/update`: Aktualisierung der Daten eines bestehenden Benutzers
- `/members/all`: Alle Teilnehmer einer Abteilung ausgeben. Es muss eine Abteilungs-ID übergeben werden. Bei id = -1 werden alle Mitglieder zurückgegeben.
- `/members/new`: Erstellung eines neuen Mitglieds
## Middleware
- `authenticateToken`: Überprüft den JWT-Token in der Authorization-Header
## Datenbank
- Die Datenbank wird mit dem pg-Modul verbunden.
## Starten des Servers
Die Anwendung kann mit `npm start`, `node server/app.js` oder `nodemon server/app.js` gestartet werden.
# app Readme
Das Frontend wird mit next.js erstellt und nutzt Typescript und Tailwind.