Hallo zusammen,
zuerst einmal, ich bin neu hier im Forum nutze und entwickle unter Ubuntu privat wie auch beruflich schon seit etlichen Jahren. Vor knapp 2 Monaten hatte ich eine Idee für ein größeres Entwicklungsprojekt für welches ich auch schon zahlreiche Entwürfe erstellt und auch schon einen Prototypen einer der Komponenten entwickelt habe (Kommt hier alles noch).
Ich möchte dieses Projekt hier veröffentlichen, um zum einen dem Trend entgegenzuwirken, dass das Projekt in meinen Händen einschläft, und zum anderen, da es ein größeres Projekt ist, welches zahlreiche Aspekte beinhaltet, einen Aufruf an andere Entwickler zu machen, die sich in Teilbereichen dieses Projekts besser auskennen als ich.
Nun aber zu dem eigentlich Projekt:
Kurz zusammengefasst soll es ein auf offenen Standards und Schnittstellen basiertes Bestell-, Verwaltungs- und Analysesystem für den Gastronomiebereich werden. Ideen für digitale Speisekarten gab es ja schon mehrfach und wurden auch von einer Fastfoodkette meines Wissens umgesetzt, aber ich stelle mir das nur als ein Frontend in einer komplett integrierten Anwendungsumgebung für einen Gastronomiebetrieb vor.
Als kleine Impression: Stellen wir uns eine Reihe Restaurants vor, die das zu verwendende System nutzen. Dort sind die Speisekarten durch WebPads mit digitaler Speisekarte ersetzt. Gäste können über dieses direkt ihre Bestellung aufgeben und bekommen in der Wartezeit die Möglichkeit über die WebPads im Internet zu surfen oder aber sich an dem Restaurantsystem anonym (Also nur mit einem Loginnamen und Passwort. Keine Namen, Adressen, etc.) anzumelden. Hinter dieser Anmeldung verstecken sich nun zwei große Bereiche: Zum einen Zugang zum Community Bereich des Restaurants wo verschiedene Angebote und Aktivitäten warten (folgt noch). Zum anderen kann der Benutzer sich bei weiteren Besuchen in Restaurants mit diesem System direkt anmelden und das System kann alle Bestellungen seiner Benutzer-ID zuordnen. In regelmäßigen Batchläufen werden daraufhin alle angemeldeten Gäste anhand ihres Bestellverhaltens (nach diversen Indikatoren wie Preisklasse, Kategorien, Bewertungen der Speisen und Restaurants, etc.) miteinander verglichen und Korrelation zwischen den Kunden errechnet. Mit Hilfe dieser kann das System nun für alle im System gespeicherten Speisen Wahrscheinlichkeiten errechnen, mit denen ein angemeldeter Kunde dieses Gericht mögen wird (Sofern er schon ausreichend oft bestellt hat, um valide Daten vorliegen zu haben). Dies zeigt gerade dann deinen Charm wenn mehrere unterschiedliche Restaurants das System einsetzen würden. So könnte jemand der im System angemeldet ist durch das System Empfehlungen für andere Restaurants erhalten und dort dann, ob wohl er noch nie da war, persönliche Empfehlungen für die Speisen in dem Restaurant erhalten, alles basierend auf Korrelationen und Messdaten von der Summe aller anderen Kunden.
Mehr oder minder unabhängig zu entwickeln wäre also: ein Client für die digitale Speisekarte, von wo aus eine dynamisches Frontend die Speisekarte von einem Server ausliest und Bestellungen, Benutzeranmeldungen/-registrierungen, Bewertungen, etc. an diesen zurücksendet. Eine Verwaltungssoftware mit denen die Besitzer die Speisekarte anpassen können, Bilder hochladen, Statistiken auslesen, etc. Ein Auswertungsprogramm, welches im Batchbetrieb in festen Intervallen die neu gesammelten Daten einliest und die Korrelationen zwischen Gerichten, Kunden und deren Kaufverhalten, Kategorien, etc. errechnet und in den lokalen Datenbanken ablegt. Eine Client-Server-Architektur, welche die Kommunikation zwischen mobilen Clients (Den Speisekarten), lokalen Servern (Verwaltungsrechnern), lokalen Datenbanken (welche vermutlich direkt auf den lokalen Servern laufen) und dem zentralen Server und der zentralen Datenbank (Dort wo alle Daten akkumuliert, berechnet und wieder verteilt werden) sicherstellt. Ein Webplattform welche in die Architektur des Gesamtsystems integriert ist (Also auch an die Datenbank mit der Speisekarte und den Nutzerdaten angebunden ist) und neben Informationen zu dem Restaurant, diverse Social-Network-Funktionen bietet. Da dies in verschiedenen Gastronomiebetrieben eingesetzt werden soll, ist hier die Entwicklung eines Webtemplates sinnvoll.
Das Auswertungsprogramm bzw. den dafür notwendige mathematische Algorithmus habe ich bereits entwickelt und einen funktionsfähigen Prototypen, mit denen ich bereits einige Testläufe auf einer prototypischen Datenbank mit einigen Testdaten gemacht habe. An der Verwaltungssoftware arbeite ich bereits, geschätzt bin ich da bei 30 – 40%. Die Client-Server-Architektur existiert auf dem Papier, die konkrete Entwicklung der Schnittstellen ist jedoch noch offen. Für den Client existiert bisher nur ein grobes Konzept, da ich hierfür momentan noch einige Umfragen mache, was Gäste und Betreiber wirklich sinnvoll finden, bzw. sich wünschen. Die Entwicklung der Webplattform beschränkt sich bisher auch nur auf eine Auflistung der Use-Cases.
Zu den Entwicklungsparametern: Das Auswertungsprogramm sowie die Verwaltungssoftware ist in Java geschrieben. Entsprechend könnte ich mir für die Umsetzung der Webplattform eine Entwicklung mit JSP vorstellen. Für die lokalen Server ist ein entsprechender Applikations- Server auszuwählen (Gibt es ja genug, ich favorisiere momentan den Glassfish). Die Hardware für den Client habe ich noch nicht genauer eingeschränkt. Bei momentan verfügbaren Geräten ist irgendwas auf Android-Basis aus meiner Sicht am naheliegensten. Jedoch lasse ich mir da auch gerne anderes erzählen, da ich mich was Entwicklung mit mobilen Endgeräten angeht nicht so gut auskenne. Da der Client eigentlich nur übertragene Inhalte schön grafisch darstellen soll, präferiere ich momentan eine Umsetzung in Flash + Action Script.
Generell würde ich die Entwicklungsumgebung / -sprache auch wechseln, wenn etwas anderes wirklich sinnvoller wäre. Auch würde ich mich über jeden Hinweis freuen, der mir schon existente Applikationen, Tools, etc. zeigt, die Teile von dem, was ich hier plane bereits können, bzw. die man dafür in modifizierter Form verwenden könnte. Das ist auch der Grund warum ich das hier im Forum poste, da das ganze wie Anfang gesagt mit offenen Standards entwickelt werden soll, damit alle es nutzen und weiterentwickeln können (Ich weiß, da hab ich mich mit meinem Vorschlag Flash als Frontend zu nutzen schon selbst widersprochen) und natürlich auch die Möglichkeiten offener Software nutzen möchte, um das Rad nicht nochmal neu erfinden zu müssen.
Ich würde mich über Feedback freuen und stelle sofern Interesse besteht auch gerne noch detailliertere Informationen, Entwürfe, Prototypen und Programmcode bereit.