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

Seit dem 2. Juli läuft FoodCoopShop v1.0 beim Fairteiler sehr stabil. Am 22. Juli habe ich nun www.atterguat.at und am 25. Juli www.dienahfairsorger.at auf die neue Version umgestellt.

Ich denke, dass alle anderen Foodcoops noch im August umgestellt werden können.

Einen schönen Tag,
Mario

Ein Nachteil des Konzepts „Bestell-Foodcoop“ ist meines Erachtens der zusätzliche Planungsaufwand im Vergleich zum Einkauf in einem Geschäft, wo (fast) immer (fast) alles verfügbar ist.

Man muss bereits am Dienstag Abend wissen, was man am Freitag benötigt und muss diese Bestellung dann auch noch in den Computer eintippen. Ein einfacher zu bedienender Bestellvorgang ist daher ein wesentliches Kriterium für das Funktionieren einer softwareunterstützten Foodcoop.

Genau dieser Stelle lohnt es sich daher zu optimieren: diese Hürde muss so klein wie möglich sein, im Idealfall soll sie sogar Spaß machen! Oft habe ich in meinem Freundeskreis folgende Sätze gehört: „Ich muss heute Abend noch beim Fairteiler bestellen!“ – Und dann wurde doch wieder vergessen, da man ja extra den Rechner einschalten musste und das Bestellen am Handy zwar möglich war, jedoch mühsam.

Diese Situation sollte sich jetzt ändern: FoodCoopShop verfügt jetzt über eine von Grund auf neu programmierte mobile Darstellung.

Hier ein Screenshot von der Produkt-Listen-Ansicht. Ich wünsche Frohes Bestellen!

mobile-product-list-screenshot-with-galaxy-s4-frame

PS: Momentan ist der Fairteiler die erste Foodcoop, auf der das Feature aktiviert ist. Die von mir gehosteten Foodcoops werden im Laufe des Sommers umgestellt. Ich bitte also noch um ein wenig Geduld.

Ich habe gestern eine Anfrage einer Selbstversorgergruppe (SVG) aus Deutschland bekommen. Sie hat mich darauf aufmerksam gemacht, dass die Software ohne Weiteres auch als Software für Selbstversorgergruppen verwendet werden kann. Der gesamte Funktionsumfang wird dafür zwar nicht notwendig sein, jedoch können wesentliche Teile der Software (z.B. Warenkorb, Verwaltung von Mitgliedern und Produkten, Guthaben-System…) gut verwendet werden.

In diesem Sinne freue ich mich, dass FoodCoopShop neben der Verwendung für Foodcoops auch noch weitere Einsatzmöglichkeiten hat. Wer weiß, was da noch kommt?

Auch für als Software für Solawi-Projekte (Solidarische Landwirtschaft) könnte FoodCoopShop sinnvoll sein.

Und nicht vergessen: FoodCoopShop ist ab Herbst 2016 Open Source!