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.
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
- Der gewählte
server_name
muss in protected/config/main-production.php alsSITE_BASE_URL
eingetragen werden. root
muss auf denhtml/
-Ordner zeigen.$yii_bootstrap
muss aufindex.php
gesetzt werden.- Die Einstellungen aus nginx-minimal.conf müssen übernommen werden, entweder durch ein
include
oder mit copy&paste. - Zwei erweiterte Beispiele einer vollständigen Konfiguration finden sich in nginx-full.conf und nginx-travis.conf.
- Eine Datenbank und einen zugehörigen Nutzer anlegen.
- Die Datenbank-Konfiguration muss dann in protected/config/main-production.php eingetragen werden. Im Beispiel werden die Datenbank "muenchen_transparent", der Benutzer "ris" und das Passwort "sec" verwendet:
'db' => [
'connectionString' => 'mysql:host=127.0.0.1;dbname=muenchen_transparent',
'emulatePrepare' => true,
'username' => 'ris',
'password' => 'sec',
'charset' => 'utf8mb4',
'queryCacheID' => 'apcCache',
'schemaCachingDuration' => 3600,
],
- Schema, Beispieldaten in die Datenbank und (optional) Statistiken importieren:
cat docs/schema.sql docs/beispieldaten.sql docs/triggers.sql | mysql -u ris -psec muenchen_transparent
protected/yiic importstatistik
- Die Option "short_open_tag" muss auf "On" gestellt sein.
- Das Modul für curl muss installiert sein (
php8-curl
)
- Solr 5.5.1 herunterladen und in einen Ordner mit dem Namen
solr
entpacken. - docs/solr-core nach
solr/server/solr/muenchen-transparent/
kopieren. - solr kann dann mit
solr/bin/solr start
gestartet werden.
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.
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:
server_name
musslocalhost
sein.listen
muss auf8080
gesetzt werden.$yii_bootstrap
muss aufindex_codeception.php
gesetzt werden.
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.
- docs/: Das Datenbankschema, die Konfiguration für nginx, solr, Fontello, travis, etc.
- html/: Statische Daten - vor allem die JS-Bibliotheken und (S)CSS-Dateien
- protected/yiic.php: Aufruf der Kommandozeilentools (entweder von der Shell wie z.B. "reindex_ba" oder als Cron-Job wie z.B. "update_ris_daily")
- protected/commands/: Definitionen der Kommantozeilentools
- protected/components/: Diverse (meist statische) Hilf-Funktionen
- protected/config/: Die Konfiguration. Insbesondere das Mapping der URLs auf die Controller-Funktionen und die Pfade der Kommandozeilenanwendungen.
- protected/RISParser/: Die Parser für das Scraping.
- protected/models/: Model
- protected/controllers/: Controller
- protected/views/: View
- Icon-Font bearbeiten
- Eine Sammlung zu Dokumenten rund um München Transparent gibt es im repository muenchen-transparent-doc
- Neuste Pre-built Version von pdf.js herunterladen und in
html/pdfjs
entpacken docs/pdfjs.patch
oderdocs/pdfjs.diff
darauf anwenden
- Tesseract für das automatische OCR. Wegen der besseren Erkennungsqualität kommt noch etwa 1-2mal montatlich eine zweite, manuelle OCR-Phase hinzu, basierend auf Nuance Omnipage.
- Imagemagick zur Vorbereitung des OCRs.
- Solr für die Volltextsuche.
- PDFbox zur Text-Extraktion aus den PDFs.
- Yii Framework
- Zend Framework 2
- Solarium
- CSS2InlineStyles für die HTML-formatierten E-Mails.
- Composer
- Codeception