198 lines
7.6 KiB
Markdown
198 lines
7.6 KiB
Markdown
# WEB Praktikum
|
|
## Termin 4
|
|
- Datum: 19.1.2017
|
|
- Gruppe A
|
|
- Kai Wansart: 921862
|
|
- Felix Hoster:
|
|
|
|
## Einleitung
|
|
### Allgemeine Beschreibung der Lösung
|
|
Die Lösung beschreibt einen Bug-Tracker, welcher in der Lage ist, Fehler zu verwalten.
|
|
Es gibt die Möglichkeit einen Bug zu "melden"/hinzuzufügen, welcher dann von den Rollen "QS-Mitarbeiter" und "SW-Entwickler" verwaltet und verarbeitet werden kann. Hier gibt es die Möglichkeit, den Fehler, sowie den "Bug-Fix", zu Kategorisieren.
|
|
Um die "Bugs" vernünftig einzusortieren, gibt es eine Einteilung in Komponenten, welche eingeteilt sind in Projekte. Sowohl die Komponenten, als auch die Projekte können verwaltet werden.
|
|
Es gibt eine Auswertung für die Fehler, sowohl für die Projekte, als auch die Fehlerkategorien.
|
|
|
|
## Implementierung des Servers
|
|
### REST-Interface
|
|
- /projekt/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /projektkomponenten/
|
|
- GET
|
|
- alle Komponenten eines Projekts anfordern (":id")
|
|
- /komponente/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /qsmitarbeiter/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /swentwickler/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /katfehler/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /katursache/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /fehler/
|
|
- GET
|
|
- alle anfordern
|
|
- einzelnen Eintrag anfordern (":id")
|
|
- alle erkannten Fehler anfordern ("?type=erkannt")
|
|
- alle behobenen Fehler anfordern ("?type=behoben")
|
|
- PUT
|
|
- neuen Eintrag speichern (Daten übergeben)
|
|
- POST
|
|
- Eintrag ändern (":id")
|
|
- DELETE
|
|
- Eintrag löschen (":id")
|
|
- /prolist/
|
|
- GET
|
|
- Auswertung Fehler nach Projekt/Komponente/Status als Liste anfordern
|
|
- /katlist/
|
|
- GET
|
|
- Auswertung Fehler nach Kategorie/Status als Liste anfordern
|
|
- /templates/
|
|
- GET
|
|
- Templates im JSON-Format
|
|
|
|
### Module
|
|
- Server - Verwaltung der Anfragen/von CherryPy
|
|
- Application - Weiterleitung der Anfragen zu Modulen/Fehlerrückgabe
|
|
- Database - Verwaltung der Datensätze
|
|
- Database - Verwaltung der jeweils instanzierten Datenbank
|
|
- ProjektDatabase - Funktionen für die Projekt-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- KomponenteDatabase - Funktionen für die Komponenten-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- QsMitarbeiterDatabase - Funktionen für die QS-Mitarbeiter-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- SwEntwicklerDatabase - Funktionen für die SW-Entwickler-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- KatFehlerDatabase - Funktionen für die Fehlerkategorien-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- KatUrsacheDatabase - Funktionen für die Fehlerursachen-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- FehlerDatabase - Funktionen für die Fehler-Datenbank
|
|
- getDefault_px - Rückgabe der Default-Werte
|
|
- Error - Verwaltung der Fehler + deren Kategorien und Ursachen
|
|
- KatFehler - Fehlerkategorien
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- KatUrsache - Fehlerursachen
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- Fehler
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- Eval - Auswertung der Daten
|
|
- ProList - Auswertung nach Projekten
|
|
- GET - Rückgabe von Daten
|
|
- KatList - Auswertung nach Kategorien
|
|
- GET - Rückgabe von Daten
|
|
- Navigation - Inhalt der Navigationsleiste
|
|
- Navigation
|
|
- GET - Rückgabe von Daten
|
|
- Projekt - Verwaltung der Projekte + deren Kategorien
|
|
- Projekt
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- ProjektKomponenten - Komponenten eines Projektes
|
|
- GET - Rückgabe von Daten
|
|
- Komponente
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- Staff - Verwaltung der Benutzer
|
|
- QsMitarbeiter - QS-Mitarbeiter
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- SWEntwickler - SW-Entwickler
|
|
- GET - Rückgabe von Daten
|
|
- PUT - Verändern von Daten
|
|
- POST - Hinzufügen von Daten
|
|
- DELETE - Löschen von Daten
|
|
- Templates - Verwaltung der Templates
|
|
- Templates
|
|
- GET - Rückgabe von Daten
|
|
### Datenhaltung
|
|
- Datensatz - für die jeweiligen Instanzen
|
|
- projekt
|
|
- komponenten
|
|
- qsmitarbeiter
|
|
- swentwickler
|
|
- katfehler
|
|
- katursache
|
|
- fehler
|
|
|
|
## Implementierung des Clients
|
|
### Klassen
|
|
- Application - Instanzieren aller Klassen, Verwalten der Anfragen (durch Eventservice)
|
|
- DetailView - Verwalten der Detail-Ansicht
|
|
- ListView - Verwalten der List-Ansicht
|
|
- Nav - Verwalten des Navigationsbereiches
|
|
|
|
- EventService
|
|
- Generator
|
|
- TemplateManager
|
|
|
|
### Eventservice
|
|
Der Eventservice implementiert das "Publish-Subscriber-Muster". Das bedeutet, dass es einen, oder mehrere "Subscriber" und einen "Publisher" gibt. Melden die "Subscriber" sich bei dem System an, erhalten sie jegliche "Notifications", die der "Publisher" sendet.
|
|
Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.
|
|
|
|
### Templateverarbeitung
|
|
Die Templates liegen in Form von modifizierten "HTML-Dateien" vor. Diese wurde um Code der Sprache "Javascript" erweitert und mit einer speziellen Syntax gekennzeichnet. Die Template-Engine kann hiermit dynamisch Inhalt erzeugen. |