Oprogramownie musi być responsywne i dostępne do obsługi przez urządzenia mobilne,
Oprogramownie musi być dostępne na serwerze zdalnym tak, aby było dostępne z poza siedziby firmy,
Oprogramowanie powinno posiadać odpowiednie ekrany dla menedżera, dostawcy, kuchni oraz osoby pakującej zamówienia,
Oprogramownie powinno oferować przyjmowanie zamówień w sposób ręczny jak i automatyczny, poprzez pobieranie ich ze strony resturacji za pomocą REST API,
Oprogramowanie powinno dbać o wszelkie wymagania dotyczące obecności adresu w strefie dostaw, minimalnych kosztów dostawy, odległości, rabatów,
Oprogramowanie powinno oferować możliwość ręcznego grupowania zamówień, a także generowania raportów okresowych dotyczących obecności pracowników oraz sprzedaży produktów,
Oprogramowanie powinno posiadać bazę produktów wraz z ich standardowymi cenami oraz oferować możliwość ich edycji, także w trakcie dodawania nowego zamówienia,
Oprogramowanie powinno obsługiwać system do kontroli obecności presenceBox(),
Implementacja oraz wdrożenie
Aplikacja uruchomiona jest tylko do użytku w firmie, i nie jest dostępna dla jej Klientów. Wersja wizualna została oparta o stylistykę przyjętą przez firmę zlecającą. Uruchomiona została w technologii "Boostrap" wraz z wykorzystaniem kilku bibliotek jQuery do walidacji pól oraz obliczania kosztów dodatkowych. Zaimplementowana została także biblioteka "leaflet" do obsługi map.
Backend został stworzony w oparciu o język PHP w wersji 7.3 i ściśle współpracuje poprzez REST API z pozostałymi modułami aplikacji. Dane przechowywane są w bazie danych MySQL.
Aplikacja posiada następujące funkcjonalności:
Podgląd przyjętych zamówień na aktualny dzień lub dowolny inny dzień w przeszłości lub przyszłości. Podgląd zawiera wszystkie dane dotyczące zamówienia,
Edycję każdej z danych dotyczących zamówienia. Akcja dostępna jest po autoryzacji pracownika dokonującego zmiany w celu zapisania tego faktu w historii zdarzeń,
Usunięcie każdego zamówienia. Akcja dostępna tylko dla menedżera, po wcześniejszej autoryzacji,
Dodanie nowego zamówienia. Podczas tej operacji:
Wybierane jest źródło zamówienia (według tego wyboru stosowany jest różny cennik dla produktów),
Generowana jest dynamiczna lista produktów z podziałem na grupy i możliwością wyszukiwania według fragmentów nazw,
Dla każdej pozycji można nadać własne notatki (np. o wyłączeniu jednego składnika z jednej pozycji),
Generowana jest lista podpowiedzi dla adresów, na podstawie klientów z przeszłości,
Po kliknięciu przycisku "Wyszukaj adres", następuje określenie współrzędnych adresu poprzez Google Geocoding API. W kolejnym kroku aplikacja nakłada z pinezką na mapę, określa strefę dostawy, koszt dostawy oraz minimalną kwotę zamówienia. Biblioteka Leaflet Routing API określa także planowaną trasę przejazdu i nakłada ją na mapę, zwracając realną odległość "po drogach", a nie w linii prostej. Ostatnim etapem jest pobranie informacji z Google Matrix API, dane te wykorzystywane są do określenia danych rzeczywistych dotyczących czasu przejazdu dla momentu dodawania zamówienia,
W przypadku wewnętrznych promocji osoba przyjmująca zamówienie może naliczyć rabat procentowy lub wartościowy,
Wybierany jest także czas dostawy, w którym można wybrać zarówno jedną z gotowych propozycji, jak i wprowadzić własną godzinę,
W tym miejscu można również zgrupować zamówienie z już istniejącym.
Pobieranie zamówień ze strony restauracji za pomocą REST API oraz określania strefy dostaw na podstawie przekazanych danych
Obsługa zamówień na tablecie zainstalowanym w kuchni lokalu. Za jego pomocą kucharze mogą:
Przeglądać zamówienia przygotowywane i te w kolejce do przygotowania wraz z informacjami dot. odległości dostaw i uwag,
Rozpoczynać i kończyć przygotowania danych zamówień,
Wyświetlać zdjęcia podglądowe dla pozycji menu,
Obserwować powroty dostawców do lokalu.
Obsługa zamówień poprzez tablet na stanowisku osoby pakującej, na którym wyświetlane są instrukcje dot. wspólnych wyjazdów zamówień, a także zawartości poszczególnych paczek
Obsługa zamówień poprzez tablet wyjazdowy, na którym kierowcy rozpoczynają i kończą swoje przejazdy. Na podstawie danych tutaj zebranych obliczane są należności za kilometry przejazdów, należności z tytułu gotówki z zamówień oraz skuteczności dostaw, a także odpowiedzialności za poszczególne zamówienia,
Obsługa zamówień poprzez telefon dostawcy, na którym kierowca ma podgląd zamówienia, z którym aktualnie jedzie. Jednym kliknięciem może zadzwonić do Klienta, czy rozpocząć nawigację, a po dostarczeniu przekazać informację na kuchnię o jego powrocie do lokalu,
Podgląd wyjazdów na mapie, z podpowiedziami typu "tooltip", w celu lepszego planowania dostaw,
Podgląd historii zamówień na podstawie "mapy ciepła". Aplikacja może wygenerować zagęszczenie zamówień i na jej podstawie nałożyć dane na mapę w celu graficznego przedstawienia popularności w poszczególnych rejonach miasta,
Zarządzanie pracownikami, poprzez ustawienia trybu rozliczenia (za godzinę, za kilometr, dniówki, bonusy za przekroczenie celu dochodowego na dany dzień),
Generowanie zestawienia czasu pracy dla każdego pracownika, wraz z obliczeniem wynagrodzenia za dany okres,
Generowanie zestawień przychodów z danego okresu oraz należności za zamówienia wraz z podziałem na sposoby płatności,
Edycja produktów wraz z możliwością ustalania cen w zależności od wybranego źródła zamówienia.
Część serwerowa została uruchomiona na serwerze zdalnym. Zamawiający samodzielnie nabył urządzenia mobilne oraz uchwyty montażowe. Za sprawdzanie obecności odpowiedzialne jest urządzenie autorskie urządzenie presenceBox().