2023-04-16 09:18:44 +00:00
# Projekt RepApp
RepApp ist eine Web App um Reparaturen im Rahmen eines Repair-Cafés zu organisieren.
## Benutzer
2023-04-24 19:03:56 +00:00
RepApp unterscheidet zwischen den folgenden Benutzer-Typen:
2023-04-16 09:18:44 +00:00
### Gast
Ein Gast ist ein Gerätebesitzer der ein oder mehrere Geräte zur Reparatur anmelden möchte.
### Reparateur
2023-04-17 08:29:20 +00:00
Ein Reparateur ist ein Mitglied des Repair-Cafés das die Gäste bei der Reparatur ihrer Geräte unterstützt.
2023-04-16 09:18:44 +00:00
### Organisator
2023-04-17 07:59:56 +00:00
Ein Organisator ist Mitglied des Repair-Cafés das die Termine mit den Gästen organisiert und die Reparateure zu den Geräten zuordnet.
2023-04-16 09:18:44 +00:00
2023-04-17 07:59:56 +00:00
## Anwendungsfälle
2023-04-16 09:18:44 +00:00
2023-04-24 19:03:56 +00:00
Die Anwendungsfälle sind in Meilensteine unterteilt.
Zu Meilenstein 1 (M1) gehören alle Anwendungsfälle die notwendig sind um RepApp "produktiv" für die Anmeldung von Geräten zu verwenden.
2023-04-16 09:18:44 +00:00
### Gast
2023-04-23 19:26:39 +00:00
- [x] M1: Als Gast möchte ich einen Termin für eine Reparatur vereinbaren. (A1)
- [x] M1: Als Gast möchte ich eine Bestätigung für eine Reparaturanfrage bekommen. (A2)
- [ ] M1: Als Gast möchte ich eine Terminbenachrichtigung oder eine Absage bekommen. (A3)
2023-04-18 18:04:32 +00:00
- [ ] Als Gast möchte ich mein angemeldetes Gerät und dessen Status einsehen können. (A4)
2023-04-23 19:26:39 +00:00
- [ ] M1: Als Gast möchte ich Rückfragen zum Gerät empfangen und diese beantworten können. (A5)
- [ ] M1: Als Gast möchte ich Fragen ans Repair-Café stellen können. (A26)
2023-04-18 18:04:32 +00:00
- [ ] Als Gast möchte ich ein Gerät für eine Folgereparatur anmelden können. (A6)
2023-04-20 13:04:13 +00:00
- [ ] Als Gast möchte ich meine Daten ansehen können. (A21)
- [ ] Als Gast möchte ich meine Daten löschen können. (A22)
- [ ] Als Gast möchte ich eine Geräteanmeldung löschen können. (A23)
2023-04-24 19:03:56 +00:00
- [ ] M1: Als Gast möchte ich ausschließlich per eMail mit dem System interagieren können. (A30)
- [ ] M1: Als Gast möchte per eMail Fragen ans Team stellen können. (A33)
- [ ] M1: Als Gast möchte ich per eMail auf Rückfragen antworten können. (A34)
2023-04-16 09:18:44 +00:00
### Reparateur
2023-04-23 19:26:39 +00:00
- [ ] M1: Als Reparateur möchte ich die angemeldeten Geräte ansehen können. (A7)
- [ ] M1: Als Reparateur möchte ich mir ein angemeldetes Gerät zuordnen können. (A8)
2023-04-18 18:04:32 +00:00
- [ ] Als Reparateur möchte ich ein angemeldetes Gerät ablehnen können. (A9)
2023-04-23 19:26:39 +00:00
- [ ] M1: Als Reparateur möchte ich Rückfragen zum Gerät stellen können. (A10)
- [ ] M1: Als Reparateur möchte ich eine Benachrichtigung bekommen wenn eine Rückfrage beantwortet wird. (A11)
- [ ] M1: Als Reparateur möchte ich eine Benachrichtigung bekommen wenn mir ein Gerät zugeordnet wird. (A12)
- [ ] M1: Als Reparateur möchte ich mich für ein Repair-Café anmelden können. (A13)
- [ ] M1: Als Reparateur möchte ich mich für ein Repair-Café abmelden können. (A14)
2023-04-20 13:04:13 +00:00
- [ ] Als Reparateur möchte ich benachrichtigt werden wenn ein Gast eine mir zugeordnete Geräteanmeldung löscht. (A25)
2023-04-16 09:18:44 +00:00
### Organisator
2023-04-23 19:26:39 +00:00
- [x] M1: Als Organisator möchte ich benachrichtigt werden wenn ein Gast ein Gerät anmeldet. (A25)
- [ ] M1: Als Organisator möchte ich ein Repair-Café anlegen können. (A15)
- [ ] M1: Als Organisator möchte ich die Geräte einsehen können. (A16)
- [ ] M1: Als Organisator möchte ich eine Rückfrage zu einem Geräte stellen können. (A17)
- [ ] M1: Als Organisator möchte ich ein Geräte ablehnen können. (A18)
- [ ] M1: Als Organisator möchte ich ein Geräte zu einem Termin zuordnen können. (A19)
- [ ] M1: Als Organisator möchte ich einen Reparateur zu einem Termin zuordnen können. (A20)
- [ ] M1: Als Organisator möchte ich ein Gerät bearbeiten können. (A28)
- [ ] M1: Als Organisator möchte ich ein Gerät absagen können, wenn der Gast mich informiert hat dass er nicht kommt. (A29)
2023-04-20 13:04:13 +00:00
- [ ] Als Organisator möchte ich benachrichtigt werden wenn ein Gast eine Geräteanmeldung löscht. (A24)
2023-04-23 19:26:39 +00:00
- [ ] Als Organisator möchte ich alle Daten exportieren können. (A31)
- [ ] Als Organisator möchte ich Geräte auf ein späteres Repair-Café verschieben können. (A32)
2023-04-16 09:18:44 +00:00
## Daten
### Cafe
Ein Cafe ist ein Repair-Café Termin.
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Datum: Datum der Veranstaltung
- Ort: Beschreibung wo das Repair-Café stattfindet
2023-04-21 16:24:31 +00:00
- Adresse: Adresse an der das Repair-Café stattfindet
2023-04-16 09:18:44 +00:00
Annahmen:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Ein Repair-Café beginnt um 13:00 Uhr.
2023-04-17 07:59:56 +00:00
- Ein Repair-Café hat drei aufeinanderfolgende Zeitslots pro Reparateur mit je einer Stunde
2023-04-16 09:18:44 +00:00
### Reparateur
Ein Reparateur ist ein Mitglied des Repair-Cafés das Gäste bei der Reparatur ihrer Geräte unterstützt.
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Name: Name des Reparateurs
- Mail: eMail-Adresse für Benachrichtigungen
Annahmen:
2023-04-16 17:55:54 +00:00
2023-04-17 07:59:56 +00:00
- Reparateure sind immer verfügbar, d.h. Zeitslots für jeden Reparateur werden zu einem neuen Repair-Café Termin automatisch hinzugefügt.
- Reparateure können alles reparieren. Geräte Kategorien, Skills, ... werden im Moment nicht berücksichtigt.
2023-04-16 09:18:44 +00:00
### Organisator
Ein Organisator ist ein Mitglied des Repair-Cafés das Reparaturtermine mit den Gästen vereinbart.
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Name: Name des Organisators
- Mail: eMail-Adresse für Benachrichtigungen
2023-04-16 19:51:16 +00:00
### Gast
2023-04-16 09:18:44 +00:00
2023-04-16 19:51:16 +00:00
Ein Gast ist ein Gerätebesitzer, der ein Gerät zur Reparatur anmeldet.
2023-04-16 09:18:44 +00:00
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-17 08:29:20 +00:00
- Name: Name des Gastes
- Telefon: Festnetz oder Mobilnummer des Gastes
- Wohnort: Wohnort des Gastes
- Mail: eMail-Adresse des Gastes für Benachrichtigungen
2023-04-16 19:51:16 +00:00
Technische Attribute:
- Identifier: SHA256 Hash aus Name + Wohnort + Timestamp
### Gerät
Ein Gerät ist ein defekter Gegenstand der im Rahmen eines Repair-Cafés repariert werden soll.
Attribute:
2023-04-16 09:18:44 +00:00
- Gerät: Bezeichnung des Geräts
2023-04-21 16:24:31 +00:00
- Hersteller: Hersteller des Geräts
2023-04-16 09:18:44 +00:00
- Fehler: Beschreibung des Defekts
- Folgetermin: Boolesches Flag das anzeigt ob es sich um einen Folgetermin handelt.
2023-04-21 16:24:31 +00:00
- Foto vom Gerät
- Foto vom Typenschild
- Bestätigung gesendet?: Ein boolesches Flag das anzeigt ob eine eMail als Anmeldebestätigung gesendet wurde.
2023-04-16 09:18:44 +00:00
Technische Attribute:
2023-04-16 17:55:54 +00:00
2023-04-17 08:29:20 +00:00
- Identifier: SHA256 Hash aus Gerät + Gast + Timestamp
2023-04-20 19:14:38 +00:00
- Gast: Referenz zum Gast der das Gerät besitzt
2023-04-21 16:24:31 +00:00
- Cafe: Referenz zum Repair-Café für das diese Gerät angemeldet ist
2023-04-16 09:18:44 +00:00
### Termin
2023-04-17 07:59:56 +00:00
Ein Termin ist eine Zuordnung von einem Gerät zu einem Zeitslot der Repair-Café Veranstaltung und einem Reparateur.
Ein Termin ist bestätigt, wenn eine Organisator eine Termineinladung gesendet hat und er Gast diese bestätigt hat.
2023-04-16 09:18:44 +00:00
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Uhrzeit: Uhrzeit des Termins
2023-04-20 13:04:13 +00:00
- Betätigt: Boolesches Flag. True wenn die Einladung vom Gast bestätigt wurde.
2023-04-16 09:18:44 +00:00
Technische Attribute:
2023-04-16 17:55:54 +00:00
2023-04-20 19:14:38 +00:00
- Cafe: Referenz zum Cafe
- Reparateur: Referenz um Reparateur oder NULL
- Gerät: Referenz zum Gerät
2023-04-16 09:18:44 +00:00
2023-04-16 17:55:54 +00:00
### Frage
2023-04-16 09:18:44 +00:00
2023-04-17 07:59:56 +00:00
Eine Frage ist eine Rückfrage nach mehr Informationen zu einem Gerät, erstellt von einem Organisator oder einem Reparateur.
2023-04-16 09:18:44 +00:00
Attribute:
2023-04-16 17:55:54 +00:00
2023-04-16 09:18:44 +00:00
- Frage: Frage zum Gerät oder Defekt
- Antwort: Antwort des Gastes
- Datum: Datum der Erstellung der Rückfrage
Technische Attribute:
2023-04-16 17:55:54 +00:00
2023-04-20 19:14:38 +00:00
- Organisator: Referenz zum Organisator oder NULL
- Reparateur: Referenz zum Reparateur oder NULL
- Gerät: Referenz zum Gerät
2023-04-16 09:18:44 +00:00
2023-04-17 07:59:56 +00:00
### Kandidat
2023-04-16 19:31:32 +00:00
2023-04-17 07:59:56 +00:00
Ein Kandidat ist ein Geräte ohne festen Termin.
Diese Geräte werden von den Gästen zu Beginn des Repair-Café gebracht und am Ende abgeholt.
Falls ein Reparateur Zeit hat kann er eines dieser Geräte reparieren.
2023-04-16 19:31:32 +00:00
2023-04-20 19:14:38 +00:00
- Bestätigt: Boolesches Flag. True wenn die Einladung vom Gast bestätigt wurde.
2023-04-16 19:31:32 +00:00
Technische Attribute:
2023-04-20 19:14:38 +00:00
- Cafe: Referenz zum Cafe
- Gerät: Referenz zum Gerät
2023-04-16 19:31:32 +00:00
2023-04-16 09:18:44 +00:00
## Ansichten
2023-04-18 18:04:32 +00:00
### Landing Page: Repair-Cafés (S1)
2023-04-16 10:07:38 +00:00
2023-04-20 19:14:38 +00:00
URL: /
Name: index
Diese Seite zeigt eine Liste der zukünftigen Repair-Café Termine.
2023-04-20 13:04:13 +00:00
Sie enthält pro Repair-Café einen Knopf um ein Gerät für dieses Repair-Café anzumelden.
#### Sicherheit
Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar.
2023-04-16 10:07:38 +00:00
2023-04-18 18:04:32 +00:00
### Gerät anmelden (S2)
2023-04-16 10:07:38 +00:00
2023-04-20 19:36:10 +00:00
URL: cafe/int:cafe/
2023-04-20 19:14:38 +00:00
Name: register_device
2023-04-20 13:04:13 +00:00
Diese Seite zeigt das Formular zum anmelden der Geräte.
2023-04-21 16:24:31 +00:00
Das Formular hat die Felder `eMail-Adresse` , `Art des Geräts` , `Hersteller & Modell/Typ` , `Fehlerbeschreibung` , `Foto vom Gerät` , `Foto vom Typenschild` , ein Kontrollkästchen `Folgetermin` , ein Kontrollkästchen `Informationen zur Reparaturabwicklung` , ein Kontrollkästchen `Datenschutz` und einen Knopf `Absenden` zum senden des Formulars.
2023-04-20 13:04:13 +00:00
Das Repair-Café zu dem die Anmeldung gehört ist über eine ID in der URL der Seite festgelegt.
2023-04-21 16:24:31 +00:00
Die eMail-Benachrichtigung and die Organisatoren und die Bestätigung an den Gast wird beim absenden des Formulars gesendet, falls die eMail Adresse zu einem bekannten Gast gehört.
2023-04-20 13:04:13 +00:00
#### Sicherheit
Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar.
2023-04-16 10:07:38 +00:00
2023-04-18 18:04:32 +00:00
### Gast anmelden (S3)
2023-04-16 10:07:38 +00:00
2023-04-21 16:24:31 +00:00
URL: cafe/int:cafe/device/str:device_identifier/mail/str:mail/
2023-04-20 19:14:38 +00:00
Name: register_guest
2023-04-20 13:04:13 +00:00
Diese Seite zeigt das Formular zum anmelden eines neuen Gastes.
Das Formular hat die Felder `Name` , `Telefon` , `Wohnort` und einen Knopf `Absenden` zum senden des Formulars.
Die eMail-Adresse und das Gerät zu dem die Gast-Kontaktdaten gehören ist über IDs in der URL der Seite festgelegt.
2023-04-21 16:24:31 +00:00
Die eMail-Benachrichtigung and die Organisatoren und die Bestätigung an den Gast wird beim absenden des Formulars gesendet.
2023-04-20 13:04:13 +00:00
#### Sicherheit
Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar.
2023-04-17 08:29:20 +00:00
2023-04-20 19:14:38 +00:00
### Anmeldung bestätigt (S7)
2023-04-21 16:24:31 +00:00
URL: cafe/int:cafe/device/str:device_identifier/confirm/
2023-04-20 19:14:38 +00:00
2023-04-21 16:24:31 +00:00
Name: register_device_final
2023-04-20 19:14:38 +00:00
Die Seite Anmeldung bestätigt zeigt einen Hinweis dass die Anmeldung des Gerätes erfolgreich abgeschlossen wurde.
Die Geräte ID ist in der URL der Seite festgelegt.
#### Sicherheit
Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar.
2023-04-18 18:04:32 +00:00
### Geräte Detailseite (S5)
2023-04-17 08:29:20 +00:00
2023-04-21 16:24:31 +00:00
URL: device/str:device_identifier/
2023-04-20 19:14:38 +00:00
Name: view_device
2023-04-21 16:24:31 +00:00
Die Geräte Detailseite zeigt die Informationen `Art des Geräts` , `Hersteller & Modell/Typ` , `Fehlerbeschreibung` , `Foto vom Gerät` , `Foto vom Typenschild` und `Folgetermin` an.
2023-04-17 08:29:20 +00:00
2023-04-20 13:04:13 +00:00
Das Gerät ist über IDs in der URL der Seite festgelegt.
#### Sicherheit
Die Seite ist ohne Zugangsbeschränkung oder Anmeldung erreichbar.
2023-04-18 18:04:32 +00:00
### Gast Detailseite (S6)
2023-04-17 08:29:20 +00:00
Die Gast Detailseite hat die Felder `Name` , `eMail` , `Telefon` und `Wohnort` die mit den Angaben des Gastes ausgefüllt sind.
Weiter enthält die Seite einen Knopf `Aktualisieren` der das Formular absendet.
Die Ansicht enthält auch eine Liste mit Links zu allen Geräten die der Gast angemeldet hat.
2023-04-16 10:07:38 +00:00
2023-04-20 13:04:13 +00:00
Der Gast ist über IDs in der URL der Seite festgelegt.
#### Sicherheit
Die Seite enthält persönliche Daten und ist nur nach Anmeldung erreichbar.
2023-04-16 10:07:38 +00:00
## Abläufe
2023-04-16 09:18:44 +00:00
2023-04-16 10:07:38 +00:00
### Anmeldung eines defekten Gerätes
2023-04-24 19:03:56 +00:00
#### Variante: Neuer Gast (F1)
2023-04-17 08:29:20 +00:00
Als neuer Gast der ein defekten Geräte anmelden möchte,
2023-04-20 13:04:13 +00:00
- gehe ich auf die Seite (S1) der Repair-Café Termine. Dort klicke ich auf `Gerät anmelden` bei dem richtigen Repair-Café Termin. Dieser Klick bringt mich auf die nächste Seite.
2023-04-21 16:24:31 +00:00
- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse` , `Art des Geräts` , `Hersteller & Modell/Typ` , `Fehlerbeschreibung` , `Foto vom Gerät` , `Foto vom Typenschild` , ein Kontrollkästchen `Folgetermin` , ein Kontrollkästchen `Informationen zur Reparaturabwicklung` une ein Kontrollkästchen `Datenschutz` . Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden` . Dieser Klick bringt mich auf die nächste Seite.
2023-04-20 13:04:13 +00:00
- Die nächste Seite (S3) enthält ein Formular mit den Feldern `Name` , `Telefon` und `Wohnort` . Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden` . Dieser Klick bringt mich auf die nächste Seite.
2023-04-21 16:24:31 +00:00
- Die nächste Seite (S5) bestätigt mir die Anmeldung meines Gerätes.
- In meinem eMail Posteingang finde ich ebenfalls eine Bestätigung der Geräteanmeldung.
2023-04-17 08:29:20 +00:00
2023-04-24 19:03:56 +00:00
#### Variante: Bekannter Gast (existierende eMail Adresse) (F2)
2023-04-17 08:29:20 +00:00
2023-04-20 13:04:13 +00:00
Als bekannter Gast der ein defekten Geräte anmelden möchte,
2023-04-16 18:53:54 +00:00
2023-04-20 13:04:13 +00:00
- gehe ich auf die Seite (S1) der Repair-Café Termine. Dort klicke ich auf `Gerät anmelden` bei dem richtigen Repair-Café Termin. Dieser Klick bringt mich auf die nächste Seite.
2023-04-21 16:24:31 +00:00
- Die nächste Seite (S2) enthält ein Formular mit den Feldern `eMail-Adresse` , `Art des Geräts` , `Hersteller & Modell/Typ` , `Fehlerbeschreibung` , `Foto vom Gerät` , `Foto vom Typenschild` , ein Kontrollkästchen `Folgetermin` , ein Kontrollkästchen `Informationen zur Reparaturabwicklung` une ein Kontrollkästchen `Datenschutz` . Nachdem ich die Felder ausgefüllt habe klicke auf auf `Absenden` . Dieser Klick bringt mich auf die nächste Seite.
- Die nächste Seite (S5) bestätigt mir die Anmeldung meines Gerätes.
- In meinem eMail Posteingang finde ich ebenfalls eine Bestätigung der Geräteanmeldung.
2023-04-24 16:02:43 +00:00
## Konfigurationsparameter
- DJANGO_SECRET_KEY
- DJANGO_DEBUG
- DJANGO_EMAIL_HOST
- DJANGO_EMAIL_PORT
- DJANGO_EMAIL_HOST_USER
- DJANGO_EMAIL_HOST_PASSWORD
- DJANGO_EMAIL_USE_TLS
- OIDC_RP_CLIENT_SECRET
### Feste Konfiguration
- ALLOWED_HOSTS
- LANGUAGE_CODE
- TIME_ZONE
- CSRF_TRUSTED_ORIGINS
- AUTH_USER_MODEL
- AUTHENTICATION_BACKENDS
- LOGIN_REDIRECT_URL
- OIDC_RP_CLIENT_ID
- OIDC_RP_SIGN_ALGO
- OIDC_OP_JWKS_ENDPOINT
- OIDC_OP_AUTHORIZATION_ENDPOINT
- OIDC_OP_TOKEN_ENDPOINT
- OIDC_OP_USER_ENDPOINT
- LOGIN_REDIRECT_URL
- LOGOUT_REDIRECT_URL