tkd_neu/README.md

2.6 KiB

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.