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.
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)
Interne Projektinformationen:link:
- Composer: min Composer 2.0 (Download:link:)
- PHP: >= 8.0.2
- Laravel: 9.x
- MySQL: min 5.7.X
- Installiere XAMPP oder einen anderen PHP-Webserver mit MySQL: Download:link:
- Installiere Composer >= 2.0: Download:link:
- Bei der Auswahl der PHP Version den Haken bei "Zur PATH variable hinzufügen" setzen
- 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
Um die Tabellen zu erstellen, muss folgendes Kommando eingegeben werden:
php artisan migrate:fresh --seed
Um für Passport(OAuth2 Bibliothek) die Keys zu erstellen, muss folgendes Kommando eingegeben werden:
php artisan passport:install
(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.
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.
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());
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.
- 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.
Wenn ein Fehler gefunden wurde bitte als Issue im Github Repository erstellen.
Um einfach testen zu können, kann durch die env variable EMAIL_FILTER_DISABLED
der E-Mail Filter ausgestellt werden.
- Gesit
- Rico Meiner
Weiterhin kann auf die Liste der Projektteilnehmer in Github verwiesen werden.