Obsługa gastronomii

Szczegóły projektu

Założenia projektu

Dotyczące oprogramowania:

  • 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:
    1. Wybierane jest źródło zamówienia (według tego wyboru stosowany jest różny cennik dla produktów),
    2. Generowana jest dynamiczna lista produktów z podziałem na grupy i możliwością wyszukiwania według fragmentów nazw,
    3. Dla każdej pozycji można nadać własne notatki (np. o wyłączeniu jednego składnika z jednej pozycji),
    4. Generowana jest lista podpowiedzi dla adresów, na podstawie klientów z przeszłości,
    5. 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,
    6. W przypadku wewnętrznych promocji osoba przyjmująca zamówienie może naliczyć rabat procentowy lub wartościowy,
    7. Wybierany jest także czas dostawy, w którym można wybrać zarówno jedną z gotowych propozycji, jak i wprowadzić własną godzinę,
    8. 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ą:
    1. Przeglądać zamówienia przygotowywane i te w kolejce do przygotowania wraz z informacjami dot. odległości dostaw i uwag,
    2. Rozpoczynać i kończyć przygotowania danych zamówień,
    3. Wyświetlać zdjęcia podglądowe dla pozycji menu,
    4. 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().