/Strategienavigator-backend

Der Strategienavigator bietet als Open-Source-Software eine Reihe von bekannten Planungs- und Analysemethoden, welche in einem modernen Design und einfacher Zugänglichkeit zur Verfügung gestellt werden.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

Strategienavigator-Backend

Das Projekt Strategienavigator basiert auf einer Idee aus der Software CRM-Navigator aus dem Jahre 2007. Der Strategienavigator sollen jedem einen einfachen Zugang zu strategischen Werkzeugen bieten. Insbesondere ist der Einsatz in der Hochschule geplant. Aber auch allen Interessierten stehen die Werkzeuge zur Verfügung.

Das Projekt wird an der Jade Hochschule in Wilhelmshaven am Fachbereich Management Information Technologie:link: entwickelt.

Werkzeuge

Folgende Strategietools sind geplant bzw. umgesetzt:

  • Paarweiser Vergleich (2022 CG)
  • Nutzwertanalyse (2022 CG)
  • Portfolioanalyse (2022 CG)
  • SWOT-Analyse (2021 CG)
  • Persona (2023 CG/RM)
  • ABC-Analyse (Geist5000)
  • Sensitivitätsanalyse (HJP/RM)
  • AHP-Analyse (MS/RM)

Weitere Informationen

Interne Projektinformationen:link:

Versionen

  • Composer: min Composer 2.0 (Download:link:)
  • PHP: >= 8.0.2
  • Laravel: 9.x
  • MySQL: min 5.7.X

Einrichtung

  1. Installiere XAMPP oder einen anderen PHP-Webserver mit MySQL: Download:link:
  2. Installiere Composer >= 2.0: Download:link:
  • Bei der Auswahl der PHP Version den Haken bei "Zur PATH variable hinzufügen" setzen
  1. Installiere Git: Download:link:

Zum Navigieren in der Kommandozeile können folgende Kommandos verwendet werden:

cd <Pfad> -- um in den nächsten Ordner zu navigieren: .. eingeben um einen Ordner nach oben zu navigieren
dir -- um den Inhalt des Ordners aufzulisten 

Dieses Projekt muss in das web-root Verzeichnis des Webservers geladen werden (bei XAMPP ist das web-root Verzeichnis htdocs):

git clone https://github.com/Strategienavigator/Strategienavigator-backend.git
cd Strategienavigator-backend

Die folgenden Kommandos müssen alle in dem von Git erstellten Ordner ausgeführt werden.

Um alle Abhängigkeiten zu installieren, muss folgendes Kommando eingegeben werden:

composer install

Falls Fehler bei diesem Kommando auftreten kann composer update eingegeben werden. Anschließend muss die .env Datei erstellt und ausgefüllt werden. In der .env Datei werden systemspezifische Konfigurationen festgelegt.
Zum Erstellen sollte folgendes Kommando eingeben werden:

Windows:

copy .env.example .env

Linux:

cp .env.example .env

Welche Einstellungen in der .env Datei getroffen werden müssen, ist hier dokumentiert.
Anschließend sollte Apache und MySQL von XAMPP aus gestartet werden.
Nun muss eine Datenbank mit dem Namen strategienavigator erstellt werden. Am leichtesten geht dies mit phpmyadmin:link:

Laravel benötigt einen privaten Schlüssel in der .env Datei. Dieser kann mit dem folgenden Kommando erstellt werden:

php artisan key:generate

Datenbanktabellen erstellen

Um die Tabellen zu erstellen, muss folgendes Kommando eingegeben werden:

php artisan migrate:fresh --seed

Passport

Um für Passport(OAuth2 Bibliothek) die Keys zu erstellen, muss folgendes Kommando eingegeben werden:

php artisan passport:install

Queue-Worker

(Dieser Schritt kann übersprungen werden, falls die Funktionen eines Queue-Workers nicht benötigt wird)

Für manche Funktionen des Backends (z.B. verschicken von Emails) wird ein Queue-Worker benötigt. Ein Queue-Worker ist ein Programm, welches unabhängig vom Request und Response Lifecycle des PHP-Servers läuft.

Dadurch kann dieser dafür verwendet werden um Aufgaben zu erledigen, welche keine Response des Servers verzögern.

Ein Queue-Worker muss mit folgendem Kommando gestartet werden:

php artisan queue:work

Dieser läuft solange bis er gestoppt wird. Bei Änderungen im Quellcode oder in der .env Datei muss der Queue-Worker neu gestartet werden.

Die Einrichtung ist nun abgeschlossen.
Zum Testen kann die Webseite:link: lokal aufgerufen werden.

Datenbank migrieren

Wenn bereits php artisan passport:install ausgeführt wurde und die Datenbank neu migriert werden muss, kann das Kommando

php artisan migrate:persistClients

ausgeführt werden. Das Composer Kommando löscht die komplette Datenbank und erstellt sie neue und erstellt einen password Grant Client.

Anonyme Konten Löschen

Um alte nicht mehr benötigte anoynyme User Konten aus der Datenbank zu entfernen muss das Kommand

php artisan users:purge

Standartmäßig werden alle anonymen Konten gelöscht, bei denen die letzte Aktivität älter als einen Monat ist. Dieser Zeitraum kann angepasst werden. Im AppServiceProvider kann folgende methode aufgerufen werden:

PurgeAnonymousUsersCommand::userPurgedBefore(Carbon::now()->subWeek());

Dokumentation

Zu diesem Projekt wurde barryvdh/laravel-ide-helper:link: hinzugefügt. Es wurden beim Erstellen der Model-Klassen die Dokumentation erstellt. Sollten die Model-Klassen bearbeitet werden, kann die Dokumentation, wie folgt, automatisch aktualisiert werden:

php artisan ide-helper:models -W

PHP-Doc:link: als Werkzeug zur Dokumentation.

Guidelines für Beteiligte

  • Alles was keine Dokumentation oder Kommentare sind, muss in der englischen Sprache angefertigt werden.
  • Alle Dokumentationen sollten in der deutschen Sprache angefertigt werden.
  • Variablen- und Methodenbezeichnungen werden in Camelcase geschrieben.
  • Wenn möglich sollen Dependency Injection für Services verwendet werden.

Bugs

Wenn ein Fehler gefunden wurde bitte als Issue im Github Repository erstellen.

Testen

Um einfach testen zu können, kann durch die env variable EMAIL_FILTER_DISABLED der E-Mail Filter ausgestellt werden.

Lizenz

GNU GPL 3.0:link:

Autoren

  • Gesit
  • Rico Meiner
    Weiterhin kann auf die Liste der Projektteilnehmer in Github verwiesen werden.