Entwicklerdokumentation - gnuheidix/api.piratenpartei-bw.de GitHub Wiki

Auf dieser Seite ist die Applikation aus Entwicklersicht kurz beschrieben.

Hintergrund

Situation

Piraten haben eine sehr große Anzahl an lokalen Webauftritten, welche verschiedene Informationen für Besucher in ansprechenderer Form darstellen, als es das Piratenwiki in endlichem Aufwand vermag. Das Piratenwiki ist die Wissensbasis der Piraten in Deutschland. Es kann dort deutschlandweit nach Informationen verschiedenster Gliederungen gesucht werden.

Bisher wird die Synchronisation der Inhalte des Piratenwikis und der jeweiligen lokalen Website in der Regel durch fleißige Helfer manuell durchgeführt. Dies bindet unnötige Arbeitskraft und verringert potentiell den für die Bürger sichtbare Präsenz an Piraten bei Veranstaltungen. Die aktiven Piraten werden mit Housekeeping gebunden.

Vision

Es braucht eine Applikation, welche die Inhalte des Piratenwikis und anderer Datenquellen für Websites und externe Systeme komfortabel zugreifbar macht und selbst bei einem Ausfall der jeweiligen Datenquelle noch funktioniert.

Grundlage

Diese Applikation basiert auf dem Webapplikationsframework CakePHP. Die Wahl ist darin begründet, dass PHP zur Zeit im Prinzip von jedem Webserver unterstützt wird, was ein Deployment auf vielen verschiedenen Servern problemlos ermöglicht. Weiter helfen die Vorgaben des Frameworks bei der geordneten Entwicklung unter Verwendung des MVC-Architekturmusters.

Aufbau

Das folgende Diagramm illustriert die Abhängigkeiten bei Tabellen und Modellen. Weiter zeigt es auf, welche Funktion auf welchen View und Layout zurückgreift. Abhängigkeiten

Ablauf

Das folgende Diagramm illustriert den Ablauf eines Wikiseitenelements. Ablauf

Tests

Die Applikation wird mit der von CakePHP mitgelieferten Testumgebung, welche auf PHPUnit basiert, getestet.

Einrichtung

Einfach die folgenden Schritte durchführen, um die Testumgebung auf der Entwicklermaschine einzurichten. In einer Produktionsumgebung sollte dies nicht gemacht werden.

  • pear installieren sudo apt-get install php-pear
  • PHPUnit installieren
sudo pear upgrade PEAR
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
  • XDebug installieren sudo apt-get install php5-xdebug
  • Apache neustarten
  • sicherstellen, dass der Debugmode in app/Config/core.php auf 2 steht
  • sicherstellen, dass die Testdatenbank in app/Config/database.php korrekt konfiguriert ist und existiert
    • Die Testdatenbank kann beispielsweise mittels CREATE DATABASE test_api_piratenpartei_bw_de; angelegt werden.

Ausführen

  • Im Browser der Entwicklermaschine die Datei test.php im Wurzelverzeichnis der Applikation aufrufen. Beispiel: http://localhost/test.php.
  • Tests unter App laufen lassen.