Mealbox
Plattform für Essensbestellungen im Unternehmen für Android und iOS, entwickelt bei Prima IT Consulting.
Flutter-App für Mitarbeitende einer betrieblichen Essensbestellplattform, gestützt auf ein GraphQL-Gateway, das ich ebenfalls auf NestJS und MongoDB gebaut habe.
Mealbox ist eine Plattform für betriebliche Essensbestellungen unter Android und iOS, entstanden während meiner Zeit bei Prima IT Consulting. Mitarbeitende melden sich über ihr Unternehmen an, durchsuchen das Tagesmenü nach Gängen, legen Gerichte in den Warenkorb und verwalten ihr Profil.
Ich habe beide Seiten des GraphQL-Gateways bearbeitet: Schema und Resolver auf einem NestJS-Dienst mit MongoDB über Mongoose, sowie den Flutter-Client. Token-Anmeldung, Firmensuche per Name oder Gerätestandort und Menüabfragen über Hive nach einer Cache-und-Netzwerk-Strategie.
Hauptfunktionen
Anmeldung über das Unternehmen
Token-Authentifizierung, begrenzt auf das Unternehmen der Mitarbeitenden: Jede Person sieht ausschließlich Menüs und Preise der eigenen Organisation.
Menü nach Gängen
Das Tagesmenü ist nach Gängen gegliedert, sodass sich eine vollständige Bestellung zusammenstellen lässt, statt einzelne Gerichte aus einer flachen Liste zu wählen.
Firmensuche
Mitarbeitende finden ihre Organisation per Name oder Gerätestandort, wodurch firmenspezifische Codes entfallen.
Warenkorb und Profil
Zusammenstellung der Bestellung und Profilverwaltung im Client; der Bestellzustand bleibt bis zum Absenden lokal.
Tech-Stack
Architektur
Der Client spricht ein einzelnes GraphQL-Gateway an statt einer Reihe von REST-Endpunkten: Die App fordert genau die Felder an, die ein Screen benötigt, statt eine feste Nutzlast zu empfangen. Das Gateway ist ein NestJS-Dienst, die Persistenz läuft über MongoDB mit Mongoose.
Menüabfragen folgen einer Cache-und-Netzwerk-Strategie auf Basis von Hive: Das zwischengespeicherte Menü erscheint sofort, während die Netzwerkanfrage im Hintergrund aufgelöst wird.
Herausforderungen & Lösungen
Die schwierigen Probleme, und wie ich sie gelöst habe.
Mit einem Menü statt einem Ladebalken öffnen
Jede Abfrage auf das richtige Unternehmen begrenzen
Weitere Projekte
Interesse an einer Zusammenarbeit?
Ich bin immer offen für Gespräche über neue Projekte und Möglichkeiten.