Meilenstein 1 – erreicht am 29.02.2016
Projektplan abgenommen / Projektwebseite erstellt
Die Erstellung und Abnahme des Projektplans waren von keinerlei Besonderheiten gezeichnet. Eine Projektwebseite existierte bereits, ich musste sie allerdings für die von der Netidee geforderten Berichte um eine Blog-Funktion erweitern. Die Url zum Blog lautet: www.foodcoopshop.com/aktuelles
Analyse Software-Komponenten / Entscheidung Open-Source-Lizenz
Bei der Analyse der Software-Komponenten sowie dem Finden einer geeigneten Open-Source-Lizenz arbeitete ich mit dem auf IT-Recht spezialisierten Rechtsanwalt Markus Dörfler zusammen. Ich habe ihm eine Liste von allen Modulen zukommen lassen, die vom FoodCoopShop verwendet werden. Auf Basis dieser Liste hat Herr Dörfler überprüft, ob sich die Module rechtlich mit der von ihm empfohlenen MIT-Lizenz eignen.
Markus Dörfler: „Ich empfehle, keinerlei Module für den FoodCoopShop zu nutzen, welche unter der GPL lizenziert sind, da die Gefahr besteht, dass der gesamte FoodCoopShop unter der GPL zu lizenzieren ist. Aufgrund des starken CopyLeft bestehen zahlreiche Unvereinbarkeiten mit anderen Lizenzen (…). Module, welche unter der GPL lizensiert werden, dürfen daher nicht mit anderen Modulen gemeinsam verwendet werden, wenn eine Unvereinbarkeit besteht.“
Ich persönlich finde die MIT-Lizenz auch die passendste Open-Source-Lizenz für das Projekt „FoodCoopShop“, Sie ist kurz, einfach und leicht zu verstehen und es stört mich nicht, wenn der Code auch für proprietäre Software benutzt wird. Das Projekt soll die größtmögliche Zahl von Nutzern ansprechen, damit das Gründen und Betreiben von Foodcoops weltweit vereinfacht und unterstützt wird.
Die Einbindung aller Software-Komponenten erfolgt standardisiert über Paketmanager. Somit ist auch die Verwendung von LGPL-lizenzierten Modulen rechtlich einwandfrei, da das Modul dynamisch eingebunden wird („dynamic linking“). Für serverseitige Komponenten verwende ich den PHP-Dependency-Manager „Composer“ (https://getcomposer.org/), für Javascript und CSS „Node’s Packet Manager“ (https://www.npmjs.com/).
Meilenstein 2 – erreicht am 29.06.2016
Frontend-Umstellung auf CakePHP
Das Ziel der Arbeitspakte AP03 und AP04 war das Entkoppeln des gesamten Frontends von Prestashop zu CakePHP. die einzelnen Module davon bestanden in Warenkorb- und Bestell-Funktion, Darstellung von Produkten und Herstellern, Blog-Artikel, CMS-Seiten, Menüstruktur und Registrierung.
Da die Software zum Zeitpunkt der Umstellung bei acht verschiedenen Foodcoops im Echtbetrieb (gesamt ca. 350 Mitglieder, die regelmäßig über die Software bestellen) lief, musste bei der Programmierung des neuen Frontends besonderes Augenmerk auf ein möglichst gleichbleibendes Look&Feel gelegt werden. Das heißt, das neue Frontend sieht im wesentlichen genau so aus, wie das alte, „lediglich“ die zugrundeliegende Architektur ausgetauscht.
Im Zuge dessen habe ich auch gleich eine responsive Version des Frontends umgesetzt (die Zeit dafür allerdings nicht in die Zeiterfassung für das Netidee-Projekt miteinbezogen). Details zur Smartphone-Optimierung finden Sie unter folgendem Link: http://bit.ly/2azXWuo
Die geplante Zeit des AP03 (Produkt-Ansicht und Bestell-Funktion) wurde um 64% (131 statt der geplanten 80 Stunden) überschritten, allerdings konnte diese Zeit in den anderen Arbeitspaketen (auch jene vom Meilenstein 1) schneller als geplant umgesetzt werden, sodass die Differenz zwischen Soll und Ist mit Erstellen dieses Zwischenberichts sehr gering ist.
Die Ursache der Abweichung liegt in der in der Planung zu wenig berücksichtigten Tatsache, dass die Warenkorb- und Bestellfunktion doch komplexer war als vermutet. Die Integration der Berechnung von Pfand, Umsatzsteuer, Verminderung des Lagerstands, Berücksichtigung der Produkt-Varianten (z.B. Eier in 6er und 10er Karton) und die dazugehörigen Unit-Tests waren umfangreicher als geplant. Weiters war auch die Notwendigkeit einer optisch ähnlichen Nutzerführung (Look&Feel) etwas zeitintensiver als geplant.
Das Betatesting lief von 08.06.2016 bis Ende Juni, es stellten sich einige Nutzer vom Fairteiler Scharnstein freiwillig zur Verfügung. Am 02. Juli 2016 wurde die erste Foodcoop (www.fairteiler-scharnstein.at) auf das neue Frontend umgestellt, es folgten am 25. Juli 2016 zwei weitere Foodcoops (www.atterguat.at, www.dienahfairsorger.at). Das neue System läuft – auch dank Unit-Tests – sehr stabil und bislang fehlerfrei.
Nächste Schritte
Für die restlichen fünf Foodcoops, die ich momentan warte und betreue, folgt die Umstellung noch im August 2016.
Die letzte Phase des Projekts „FoodCoopShop goes Open Source“ beinhaltet die Migration aller für Foodcoops benötigten Backend-Funktionen (u. a. Hersteller, Blog, Kategorien, Produkt-Varianten) hin zu CakePHP.
Weiters müssen Dokumentationen für Nutzer und Programmierer erstellt und diverse Änderungen am Source Code vorgenommen werden, um das Projekt dann letztendlich für jedermann frei verfügbar auf Github zu stellen.
Der Zeitpunkt für die Umstellung auf Open Source lautet weiterhin:
Oktober 2016