codeformunich / muenchen-transparent

Ein alternatives Ratsinformationssystem mit E-Mail-Benachrichtigungen, Volltextsuche und vielem mehr.
https://www.muenchen-transparent.de
GNU Affero General Public License v3.0
50 stars 8 forks source link
oparl ratsinformationssystem

München Transparent

München Transparent ist ein alternatives Ratsinformationssystem (RIS) für München mit einer modernen Oberfläche, E-Mail-Benachrichtigungen, Volltextsuche, Geodaten, Erklärtexten und vielem mehr.

Setup

Vorausgesetzt werden nginx mit PHP >= 8.0 und MySQL/MariaDB sowie npm und composer.

Berechtigungen setzen und Abhängigkeiten installieren: (www-data muss durch den passenden Nutzer ersetzt werden, bei MacOSX ist das z.B. _www )

chown -R www-data:www-data protected/runtime
cp protected/config/main-production.template.php protected/config/main-production.php

Abhängigkeiten installieren und minimiertes javascript und css erzeugen:

npm install
composer install
npx gulp

nginx

MariaDB/MySQL

PHP

Solr

OParl

Zum Zugriff auf die Daten gibt es eine OParl-Schnittstelle. Damit die API funktioniert, muss OPARL_10_ROOT in main-production.php auf den gewünschten Wert gesetzt werden. Genauere Hinweise zur Implementierung finden sich in oparl.md.

Tests

Als Testframework wird codeception verwendet.

Zum lokalen Ausführen der Test muss ein 2. Server-Block in der nginx-Konfiguration angelegt werden. Dieser unterschiedet sich vom normalen Server-Block in drei Punkten:

Des weiteren muss eine Datenbank mit dem Namen mt-test angelegt werden, auf ein ebenfalls anzulegender Nutzer mit dem Benutzernamen travis und keinem Passwort zugriff hat.Das importieren der Testdaten erfolgt mit

cat docs/schema.sql tests/_data/data.sql docs/triggers.sql | mysql -utravis mt-test

Die Tests können dann mit

vendor/bin/codeception run

ausgeführt werden.

Sollten die Testdaten verändert worden sein, müssen die Änderungen mit

docs/export-testing-db.sh

gespeichert werden.

Es ist zu beachten, dass die Tests durch PhpBrowser und nicht durch selenium ausgeführt werden. Deshalb können keine auf javascript basierenden Funktionen getestet werden.

Code-Organisation

Weitere Dokumentation

pdf.js Updaten:

Eingesetzte Shell-Programme

Eingesetzte PHP-Bibliotheken

Eingesetzte JS/CSS-Bibliotheken