/tennis-court-reservation-system-v2

Kostenloses, Open Source Tennisplatz Reservierungssystem // Free, modern, open source tennis court reservation system. // AGPL // v2

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

Tennis Court Reservation System v2

WICHTIG: Dieses Projekt befindet sich noch in der Entwicklung. Bei Interesse bitte per E-Mail an tennis /at/ adroste /dot/ com wenden.

React SPA, PHP 7, MySQL

License: AGPL

🇺🇸 Free, modern, open source tennis court reservation system that works on any cheap web-hosting plan. GDPR compliant

🇩🇪 Kostenloses, modernes, Open Source Tennisplatz Reservierungssystem, das mit jedem günstigen Web-Hosting Anbieter funktioniert. DSGVO konform

Languages / Sprachen

  • German / Deutsch
  • English (planned)

Demo

https://adroste.github.io/tennis-court-reservation-system-v2/client/demo/

 

🇩🇪

Funktionen

  • DSGVO konform
  • Kiosk Modus
  • // todo

Systemanforderungen

  • Web-Server (Apache, nginx, ...)
  • PHP 7
  • MySQL Datenbank

Datenverbrauch im Kioskmodus

Im Kioskmodus wird die Tabelle mit den Reservierungen automatisch aktualisiert. Im Regelfall ist eine solche Anfrage < 10kB. Das Zeitintervall für die Aktualisierungen kann manuell angegeben werden, indem der Kioskmodus mittels /kiosk?update=x aufgerufen wird. x gibt hierbei die Anzahl der Sekunden an. Der Standardwert ist eine Minute.

Beispiel (x=300): Bei einem Durchschnitt von 10kB pro Anfrage ergibt sich für ein Aktualisierungsintervall von x=300 (5 Minuten) ein Datenverbrauch von ca. 3MB pro Tag.

 

🇺🇸

Features

  • GDPR compliant
  • Kiosk Mode
  • // todo

System requirements

  • Web-Server (Apache, nginx, ...)
  • PHP 7
  • MySQL Database

 

Developer Notes

notes

  • Keine reservation reminder, Reservierungsbestätigungen sind ausreichend
  • Keine Reservierungsbestätigungen an admins (unnötig)
  • Storniert: wenn selbst storniert und wenn durch admin storniert
  • loading indicator ggf mit antd message ersetzen

todos

  • Analytics
    • backend: create fingerprint by header + ip, change daily
    • mark user count as predicted
    • count users
    • configurable time view
    • stats
      • New reservation count
      • reservation count
      • views by page
      • unique users / page views
      • referrer
      • browser
      • os
      • device
  • .htaccess for client side routing
  • password recovery
  • test mail template button
  • bestehende reservierungen bei platzsperre stornieren (hinweis)
    • implementation
  • datenschutz buttons unter mein benutzerkonto implementieren
  • activity table backend
  • trainer type
  • bug: DST where day has two hours, reservation is not visible
  • automatische Anzeigenamen generieren (z.B. GastXXX)
  • Anzeigename/Guthaben in Navigationsleiste anzeigen (personaisieren)
  • Dynamic page Title (React helmet? or SSR)

tables

reservations { id auto_inc unique primary, from, to, groupId foreign_key(reservation_group.groupId), created, }

reservation_group { groupId auto_inc unique primary, courtId, userId, text, type, }