About this Repo - HeroPhil/DHBW-KinoCinema GitHub Wiki
Github
Dieses Github hostet das Git Repository für das Kinoticket-Buchungssystem der Gruppe Karotten-Kameraden des DHBW Mannheim Kurses WWI19SEB - Fallstudie. Es dient neben der Versionskontrolle auch der Dokumentation der Software (dieses Wiki), sowie dem Projektmanagement (Kanban-board). Außerdem sorgt eine CICD Pipeline für automatisierte Tests und Deployments.
Wiki
Dieses Wiki dient der Dokumentation des Gesamtkonzeptes als auch der Dokumentation einzelner Codeabschnitte im Front-/Backend, sowie der Datenstruktur.
Kanban-Board
Das Kanban-Board dient der Übersicht über alle Aufgaben im Zusammenhang mit diesem Projekt. Es ist in 6 Spalten unterteilt:
- ToDo
Erfasst alle neuen Issues, welche in Zukunft bearbeitet werden müssen.
- ToDo [High Priority]
Erfasst alle Issues, welche in sehr naher Zukunft bearbeitet werden müssen.
- ToDo [after Review]
Erfasst alle Issues, welche nach einem Review erneut bearbeitet werden müssen.
- WIP
Erfasst alle Issues, welche zurzeit bearbeitet werden.
- Ready for Review
Erfasst alle Issues, welche bereits bearbeitet wurden allerdings noch von einem anderen Entwickler geprüft werden müssen.
- Done
Erfasst alle Issues, welche bearbeitet wurden und nach einem Review als erledigt befunden wurden.
Issues
Issues können von jedem Teammitglied erstellt und bearbeitet werden. Jedes Issue soll dabei mindestens einer Person zugewiesen, mit entsprechende Tags versehen und einem Milestone zugewiesen sein. Außerdem sollte jedes Issue beim Erstellen eine Beschreibung der Aufgabe oder des Problems erhalten. Reviews sollten ebenfalls Kommentiert werden. Die Milestones dienen dabei zum setzten von Deadlines und werden nach Absprache mit allen Teammitgliedern von der Projektleitung definiert und erstellt.
CICD-Pipline
Die CICD-Pipeline wird mit Github-Action durchgeführt. Durch vordefiniert Konfigurationsdateien in .github/workflows werden Dockercontainer generiert welche auf folgende 2 Trigger reagieren:
- Pull-Requests
Jeder Pull-Request läuft automatisch durch die CICD-Pipeline. Dabei wird das Frontend auf einen preview-side-channel deployed.
- Merge into branch/main
Wird ein Merge-Commit in den main-branch durchgeführt wird die CICD ebenfalls ausgelöst. Dabei wird das Frontend auf den main-channel deployed.
Jobs und Steps
Die Pipeline besteht aus 4 Jobs, je 2 pro Front-/Backend. Jeder Job beginnt mit einem Checkout, sowie einem npm clean install.
Frontend
- test_frontend
- ESLint (Prüfung aller .js Dateien auf Form)
- deploy_frontend
- firebase deploy hosting (preview- / main-channel je nach trigger; verwendung von Firebase API token, gespeichert als secret in Github)
Backend
- test_backend
- ESLint (Prüfung aller .ts Dateien auf Form)
- mocha (Ausführung aller Unit-Tests)
- build_and_deploy_backend
- TSC (kompilieren aller .ts Dateien in .js Dateien)
- firebase deploy functions (deployen aller functions)