Home - IU-Internationale-Hochschule-Augsburg/fallstudie-thema-2-online-umfragesystem GitHub Wiki
Welcome to...
Bisher belegte URLs mit unseren Screens:
URL | Beschreibung des Screens |
---|---|
http://localhost:8080/participant-view | Dies ist die dynamische Fragebogen-Seite für die Umfrageteilnehmer. Über diese können sie sich durch den ganzen Umfragebogen klicken. |
http://localhost:8080/login | Dies ist die Login-Page. Die aktuelle Startseite des MVPs. Über diesen Screen loggt sich ein bestehender Nutzer ein |
http://localhost:8080/register | Dies ist die Registrieren-Page. Dort legt ein Nutzer einen neuen User an |
http://localhost:8080/logout | Dies ist die URL für das Ausloggen des Users. Diese wird aufgerufen, wenn der User auf den Logout-Button in der Umfrage-Ansicht klickt |
http://localhost:8080/survey-admin | Dies ist die Umfrage-Ansicht eines eingeloggten Users |
http://localhost:8080/questions-view | Dies ist die Fragen-Ansicht |
http://localhost:8080/add-survey | Dies ist die Umfrage-hinzufügen-Ansicht |
http://localhost:8080/add-question | Dies ist die Frage-hinzufügen-Ansicht |
http://localhost:8080/h2-console | VORSICHT, das ist eine alte URL: Dies ist die grafische Oberfläche für die H2-Datenbank |
http://localhost:8080/question-save | Über diese URL speichern wir die Daten einer bestehenden Frage oder erzeugen eine neue Frage |
http://localhost:8080/survey-save | Über diese URL speichern wir die Daten einer bestehenden Umfrage oder erzeugen eine neue Umfrage |
http://localhost:8080/save-registration | Über diese URL werden die Daten aus dem RegisterForm in die Datenbank geschrieben. Darüber hinaus passiert hier Error Handling |
http://localhost:8080/save-user-settings | Über diese URL können User ihre Konto-Einstellungen bearbeiten. Die Daten werden in der Datenbank aktualisiert. Darüber hinaus wird hier auch für Error Handling gesorgt, wenn eine neu eingetippte E-Mail bereits registriert ist, wenn das alte Passwort nicht mit dem in der Datenbank übereinstimmt und wenn die beiden neu eingetippten Passwörter nicht übereinstimmen. |
http://localhost:8080/button-question-handler | Über diese URL behandeln wir das Klicken verschiedener Buttons in der Fragen-Ansicht |
http://localhost:8080/button-survey-handler | Über diese URL behandeln wir das Klicken verschiedener Buttons in der Umfrage-Ansicht |
http://localhost:8080/user-actions | Über diese URL behandeln wir das Klicken verschiedener Buttons im Header der Umfrage-Ansicht (Logout oder Konto-Einstellungen) |
http://localhost:8080/error | Dies ist die individualisierte Error-Page |
Hinweis: Einige URLs erzeugen eine sichtbare Ansicht, die Handler-URLs sowie auch /user-actions und /survey-save sowie /question-save und weitere sind nur zum Ausführen verschiedener Aktionen wie das Speichern oder Aktualisieren von Daten in der Datenbank. /error ist die URL der Error-Page.
Anmeldedaten für die H2-Datenbank:
- Das als URL angeben: jdbc:h2:mem:testdb
- Username: sa
- Passwort: 1234
Anmeldedaten für die PostgreSQL-Datenbank:
Benutzername und Passwort haben alle Teammitglieder aus Team 1 und 2 per Mail erhalten. (Stand: 08. Juni 2024)
Driver-Class und JDBC URL sind in folgendem Screenshot zu finden:
- datasource url (.yaml-Datei): jdbc:postgresql://survey-master-pg-survey-master.e.aivencloud.com:25901/defaultdb?currentSchema=public
- url: jdbc:postgresql://survey-master-pg-survey-master.e.aivencloud.com:25901/defaultdb
- Driver-Class-Name: org.postgresql.Driver
- Host: survey-master-pg-survey-master.e.aivencloud.com
- Port: 25901
- Database-Name: defaultdb
- Schema-Name: public
Übersicht über die Java-Klassen (Backend)
Die Klassen im entity-Ordner repräsentieren die Tabellen unserer Datenbank:
Java-Klasse | Beschreibung |
---|---|
Answer | Datenbank-Tabelle zum Speichern der Antworten der Umfrage-Teilnehmer. Daher wird auch die User-Id in der Tabelle gespeichert. |
Question | Datenbank-Tabelle zum Speichern der Fragen und Antwortoptionen. Diese Tabelle benötigen wir zum Erzeugen des Fragebogens. |
Survey | Datenbank-Tabelle zum Speichern der Umfragen. |
User | Datenbank-Tabelle zum Verwalten der User. Über eine Rollenvergabe lassen sich Teilnehmer und Umfrage-Ersteller in Zukunft voneinander trennen. |
Interfaces im Repository-Ordner
Die Interfaces im repository-Ordner definieren Operationen zum Abrufen, Speichern, Löschen und Aktualisieren von Daten. Diese Interfaces erben von CrudRepository. Crud steht für Create-Read-Update-Delete Operationen. Für jede Entity gibt es ein solches Interface/Repository.
Restliche Java-Klassen:
Java-Klassen | Beschreibung |
---|---|
SurveyApplication | Die Application dient als zentrale Einstiegsklasse für eine Spring Boot-Anwendung. Dabei ist die main-Methode die auszuführende Hauptmethode. |
LoginController | Ist eine Klasse, die login-spezifische HTTP-Anfragen entgegennimmt, sie verarbeitet und eine entsprechende HTTP-Antwort zurückgibt. Über Annotationen wie @GetMapping und @PostMapping findet das Routing von HTTP-Requests statt. |
SurveyController | Ist eine Klasse, die umfragen-spezifische HTTP-Anfragen entgegennimmt, sie verarbeitet und eine entsprechende HTTP-Antwort zurückgibt. Über Annotationen wie @GetMapping und @PostMapping findet das Routing von HTTP-Requests statt. |
QuestionController | Ist eine Klasse, die fragen-spezifische HTTP-Anfragen entgegennimmt, sie verarbeitet und eine entsprechende HTTP-Antwort zurückgibt. Über Annotationen wie @GetMapping und @PostMapping findet das Routing von HTTP-Requests statt. |
ParticipantSurveyController | Ist eine Klasse, die HTTP-Anfragen über den Probanden/Teilnehmer-Screen entgegennimmt, sie verarbeitet und eine entsprechende HTTP-Antwort zurückgibt. Über Annotationen wie @GetMapping und @PostMapping findet das Routing von HTTP-Requests statt. |
AnswerMapper | Answer-Mapper ist eine Mapper-Klasse, welche die Eingaben aus der Benutzeroberfläche auf die Datenbank-Entität "Answer" mappt. Der Grund für das Erstellen der Mapper-Klasse war, dass die Antwortoptionen von den questionTypes "Radiobutton" und "Checkbox" in den gleichen Datenbankfeldern gespeichert werden. Aus technischen Gründen können diese nicht in denselben UI-Feldern erfasst werden. Daher ist kein 1-zu-1-Mapping möglich. |
SurveyErrorController | Über die Klasse wird bei einem auftretenden Fehler eine individualisierte Error-Page geladen. |
QuestionService | Dies ist eine Service-Klasse, die das Löschen von Fragen und das Laden der aktuellen Fragen in der Fragen-Ansicht übernimmt. |
SurveyService | Dies ist eine Service-Klasse, die das Löschen von Umfragen übernimmt. |
UserService | Diese Klasse implementiert das Interface UserDetailsService. Die Funktion loadUserByUsername(String username) wird verwendet, um Benutzerinfos basierenf auf dem Benutzernamen abzurufen. |
JasyptConfig | Dies ist eine Konfigurationsklasse für die Encryption mit Jasypt. |
WebSecurityConfig | Diese Klasse definiert die Sicherheitskonfiguration der Anwendung. Die Methode securityFilterChain() konfiguriert dabei Sicherheitsregeln und Filterketten. Es wird festgelegt, welche URLs öffentlich zugänglich sind, welche eine Authentification erfordern und wie Login- und Logout-Prozess aussehen |
SurveyView, QuestionView, SingleQuestionView, QuestionForm, ParticipantSurveyView, LoginForm, RegisterForm, UserSettingsForm und SurveyForm sind selbsterklärend. Die @Data-Annotation generiert automatisch Getter, Setter, hashCode, equals und toString-Methoden.