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:

  1. ToDo

Erfasst alle neuen Issues, welche in Zukunft bearbeitet werden müssen.

  1. ToDo [High Priority]

Erfasst alle Issues, welche in sehr naher Zukunft bearbeitet werden müssen.

  1. ToDo [after Review]

Erfasst alle Issues, welche nach einem Review erneut bearbeitet werden müssen.

  1. WIP

Erfasst alle Issues, welche zurzeit bearbeitet werden.

  1. Ready for Review

Erfasst alle Issues, welche bereits bearbeitet wurden allerdings noch von einem anderen Entwickler geprüft werden müssen.

  1. 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:

  1. Pull-Requests

Jeder Pull-Request läuft automatisch durch die CICD-Pipeline. Dabei wird das Frontend auf einen preview-side-channel deployed.

  1. 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)