Lehrstuhl für Datenbanken und Informationssysteme Brocken-Challenge Datenbank-Praktikum 1 Datenbank-Praktikum
Brocken-Challenge Wohltätigkeitslauf am Brocken - Hintergrundinfos findet jährlich im Februar statt mit ca. 180 Teilnehmern Einnahmen aus Teilnahmegebühren und Sponsoring kommen verschiedenen vorher festgelegten Charity-Projekten zu gute Lauf wird ehrenamtlich von einzelnen Organisatoren organisiert Anmeldeverfahren momentan per Email - Aufgabe Modernisierung/Vereinfachung des Anmeldeverfahrens in Form einer Web- Anwendung auf Basis frei nutzbarer Technologien - Akteure: Organisator Läufer Charity-Partner 2 Datenbank-Praktikum
Akteure Organisator - verwaltet Charity-Projekte (Aufsetzen, Suchen, Ändern, Schließen) Bezeichnung, Beschreibung, Website Zeitfenster für Spenden - organisiert Wettkämpfe (Aufsetzen, Suchen, Ändern, Schließen) Bezeichnung, Termin, Ort, Website Wettkampf sind verschiedene Charity-Projekte zugeordnet max. Teilnehmeranzahl und Warteliste 3 Datenbank-Praktikum
Akteure Organisator - verwaltet Wettkampfanmeldungen/-zulassungen öffnet/schließt Anmeldefenster pflegt Anmelde- und Warteliste (inkl. Möglichkeiten zur Suche und Filterung) bestätigt Anmeldungen und verschickt Zahlungsaufforderung per Email (mit definierbarem Zahlungsziel von standardmäßig 10 Tagen) storniert Anmeldungen (bspw. bei nicht erfolgter Zahlung) - bearbeitet Spendenzahlungen erfasst Zahlungen und bestätigt Teilnahme erstellt Spendenquittungen (PDF) 4 Datenbank-Praktikum
Akteure Läufer - An-/Abmeldung am/vom Wettkampf registriert sich für Wettkampf mit Name, Vorname, Verein, Geschlecht, Geburtsdatum, davon abgeleiteter Altersklasse*, Streckenauswahl und (optional) einem Charity-Projekt verschickt Unterstützungslink an potentielle Spenden-Partner - Einsicht seiner Daten prüft Zulassung bzw. Platz auf Warteliste sieht Zusagen und Spendenzahlungen seiner Charity-Partner *Altersklassen in 5 Jahres-Schritten je nach Geschlecht; Beispiele: - M25: Männer im Alter von 25-29 Jahren - W40: Frauen im Alter von 40-44 Jahren 5 Datenbank-Praktikum
Akteure Charity-Partner - sponsert Charity-Projekt entweder über Link in Email von angemeldetem Läufer oder durch Auswahl eines Charity-Projekts (und optional eines dafür bereits registrierten Läufers Auswahl über Vorname, Name und Verein) registriert sich dazu mit Anschrift, Ansprechpartner, Email-Adresse, Transparenz-Kennzeichen* und pauschaler Spendenzusage * Transparenzkennzeichen erfasst, ob Spende des Charity-Partners öffentlich Erwähnung finden soll/darf 6 Datenbank-Praktikum
Anforderungen an die Implementierung Anforderungen/Besonderheiten - Login-Mechanismus für Läufer und Organisator - PDF-Generierung aus gespeicherten Daten - automatischer Email-Versand - Schutz vor SQL-Injection 7 Datenbank-Praktikum
Anforderungen an die Implementierung Hinweise zur Implementierung - Datenbanksystem PostgreSQL verwenden als Open-Source-System kostenfrei verfügbar zentrale Server-Instanz sowie Zugriff wird zur Verfügung gestellt - Web-Technologie selbst wählbar (Empfehlung: Java) Einsatz von Frameworks bei der Anwendungsentwicklung erlaubt (mit einer Ausnahme; siehe nächster Punkt) - SQL-Statements selbst entwickeln Datenbankzugriffe durch SQL-Statements sind eigenständig zu implementieren (keine Persistenz-Frameworks wie Hibernate und Co.) - Datenbank-Funktionalität nutzen Mechanismen zur Integritätssicherung (Schlüssel/Constraints) Anwendungslogik in Datenbank durch Funktionen, Prozeduren, Trigger 8 Datenbank-Praktikum
empfohlenes Entwicklungs-Setup Server-Technologie - Dropwizard (Java) http://www.dropwizard.io/ Java-Framework zur Entwicklung von Web-Services Getting Started: http://dropwizard.codahale.com/getting-started/ Beispiel: https://github.com/dropwizard/dropwizard/tree/master/dropwizard-example auf ipc789 in angepasster Form (Verwendung von PostgreSQL) bereitgestellt bei Verwendung zuvor team-user anpassen (example.yml, migrations.xml) und Port in example.yml (808?) anpassen Entwicklungsumgebung Eclipse Konfigurationshilfe: https://www.openshift.com/blogs/day-13-dropwizard-the-awesome-java-rest-server-stack Client-Technologie - AngularJS (JavaScript) oder alternativ EmberJS (JavaScript) http://angularjs.org/ bzw. http://emberjs.com JavaScript-Frameworks zur Entwicklung von Web-Anwendungen 9 Datenbank-Praktikum
fachliche Zusatz-Anforderungen Erweiterungen (Schwierigkeitsstufe: 1 leicht, 2 normal, 3 schwer) - Administration der Organisatoren (2) Anlegen, Ändern und Löschen neuer Organisatoren-Accounts Organisator kann seinen eigenen Account nicht löschen - Zahlungslistenimport durch Läufer und Charity-Partner (3) Spendenzahlungen erhalten eindeutiges Kennzeichen über das Sie im Verwendungszweck in csv-kontoauszügen identifiziert und automatisch den noch ausstehenden Zahlungen zugeordnete werden können - Einbezug von Vorjahresdaten (2) Läufer und Charity-Partner können sich bei Laufanmeldung über Vorjahresteilnahmen identifizieren Organisator kann Jahresübergreifende Auswertungen zu Spendenzusagen von Läufer und Charity-Partner erstellen 10 Datenbank-Praktikum
fachliche Zusatz-Anforderungen Erweiterungen (Schwierigkeitsstufe: 1 leicht, 2 normal, 3 schwer) - Speicherung von Binärdaten (1) Charity-Partner können (optional) ihr Logo hinterlegen - Spenden pro Kilometer (3) Charity Partner können anstatt des Pauschalbetrags auch eine Spendenzusage pro Kilometer des von Ihnen benannten Läufers abgeben Organisator verarbeitet Wettkampfergebnisliste (Import von csv-dokument) anhand der zurückgelegten Strecke der Läufer werden Zahlungsaufforderungen für ihre Charity-Partner errechnet und durch Organisator per Email verschickt Datenzugriff von Vorjahr - Empfehlung für Läufer (2) automatische Ermittlung der Läufer (inkl. ihrer Charity-Partner) mit der insgesamt höchsten Spendenzusage Vorauswahl der Läufer in Teilnahmebestätigungsdialog des Organisators 11 Datenbank-Praktikum
fachliche Zusatz-Anforderungen Erweiterungen (Schwierigkeitsstufe: 1 leicht, 2 normal, 3 schwer) - mehrere Strecken pro Lauf (1) zu einer Charity-Laufveranstaltung können mehrere Strecken angeboten werden Läufer registriert sich für jeweilige Strecke einmalig pro Lauf Organisator erstellt streckenbezogene Teilnehmerlisten (im csv-format) - Export von csv-dateien (1) Organisator erstellt Auswertungen (im csv-format) - Teilnehmerliste (alle Daten zu Läufer inkl. Zahlungskennzeichen) - Charity-Partner-Liste (alle Daten der Partner inkl. Zahlungskennzeichen und Gesamtspendensumme) 12 Datenbank-Praktikum