Strona Główna / M-Projekty / Mlekomat (Vending Manager)

Mlekomat (Vending Manager)

Produkt Mayeryn

Opis projektu

Komunikacja pomiędzy maszynami, serwerem i klientami odbywa się przy pomocy GraphQl-a, czyli open sourcowego języka do zapytań i manipulacji danym. Sercem naszego Mlekomatu jest platforma komputerowa Raspberry Pi w wersji 3 rozszerzona o zaprojektowaną przez nas płytę główną MR_ADAPT_400 oraz adapter I2C. Komunikacja pomiędzy podzespołami odbywa się przy użyciu wielu protokołów, między innymi zaprojektowanego przez naszą firmę protokołu MRAP (Mayeryn Asynchronous Protocol), dzięki któremu możemy odbierać i wysyłać dane do czujnika dystansu, służącego do wyliczania ilości mleka które obecnie jest dostępne w Mlekomacie. System Embedded został zaprogramowany przy użyciu Java oraz C++. Interfejs użytkownika wykorzystuje bibliotekę JavaFx. System pozwala użytkownikowi na zakup mleka w maszynie oraz odbiór wcześniej zarezerwowanego zamówienia. Dodatkowo została zaimplementowana logika, która w sytuacji gdy maszyna nie posiada odpowiedniej ilości pieniędzy do wydawania reszty, wyświetla sugerowane propozycje. Dla właściciela maszyny oraz serwisanta istnieje możliwość zalogowania się do systemu bezpośrednio na maszynie. Daje to dostęp do dodatkowych funkcji takich jak np. czyszczenie maszyny, przełączenie maszyny na pracę ręczną lub aktualizacja dostawy mleka. Aplikacja i wszystkie jej komponenty będzie hostowała w całości centralny punkt dla całego systemu przy użyciu Apache Tomcat Server. Dla każdego użytkownika i typu jego profilu (Właściciel, Serwisant lub Klient) będą obsługiwane odpowiednie funkcje. W celu ułatwienia procesu rezerwacji i sprzedaży mleka została stworzona intuicyjna aplikacja mobilna dedykowana na telefony z systemem Android. Dzięki niej również klient będzie mógł dokonywać drobnych modyfikacji zamówień.
Continuous Integration - praca developerska została wsparta zaimplementowanym systemem CI, dzięki któremu każda dodatkowa funkcjonalność jest uruchomiana wraz ze wszystkimi testami zanim zostanie dodana do głównego repozytorium. CI zostało wykonane za pomocą funkcjonalności jakie daje GitLab Server. Dzięki takiemu rozwiązaniu mamy ciągłą kontrole nad dodawanymi kawałkami kodu. Dodatkowo nasze CI automatycznie zwiększa numer wersji systemu przy dodawaniu nowych funkcji.

Specyfikacje

Komunikacja pomiędzy maszynami, serwerem i klientami odbywa się przy pomocy GraphQl-a, czyli open sourcowego języka do zapytań i manipulacji danym Sercem naszego mlekomatu jest platforma komputerowa Raspberry Pi w wersji 3 rozszerzona o zaprojektowaną przez nas płytę główną MR_ADAPT_400 oraz adapter I2C. Komunikacja pomiędzy podzespołami odbywa się przy użyciu wielu protokołów między innymi zaprojektowanego przez naszą firmę MRAP (Mayeryn Asynchronous Protocol) dzięki któremu możemy odbierać i wysyłać dane do czujnika dystansu służącego do wyliczania ilości mleka które obecnie jest dostępne.

System Embedded został zaprogramowany przy użyciu Java 8 oraz C++. Interfejs użytkownika wykorzystuje bibliotekę JavaFx. System pozwala użytkownikowi na zakup mleka w maszynie oraz odbiór wcześniej zarezerwowanego zamówienia. Dodatkowo została zaimplementowana logika, która w sytuacji gdy maszyna nie posiada odpowiedniej ilości pieniędzy do wydawania reszty, wyświetla sugerowane propozycje Dla właściciela maszyny oraz serwisanta istnieje możliwość zalogowania się do systemu bezpośrednio na maszynie. Daje to dostęp do dodatkowych funkcji takich jak np. czyszczenie maszyny, przełączenie maszyny na pracę ręczną lub aktualizacja dostawy mleka.

Aplikacja i wszystkie jej komponenty będzie hostowała w całości centralny punkt dla całego systemu przy użyciu Apache Tomcat Server. Dla każdego użytkownika i typu jego profilu (Właściciel, Serwisant lub Klient) będą obsługiwane odpowiednie funkcje. W celu ułatwienia procesu rezerwacji i sprzedaży mleka została stworzona intuicyjna aplikacja mobilna dedykowana na telefony z systemem Android. Dzięki niej również klient będzie mógł dokonywać drobnych modyfikacji zamówień.

Continuous Integration - praca developerska została wsparta zaimplementowanym systemem CI, dzięki któremu każda dodatkowa funkcjonalność jest uruchomiana wraz ze wszystkimi testami zanim zostanie dodana do głównego repozytorium. CI zostało wykonane za pomocą funkcjonalności jakie daje GitLab Server. Dzięki takiemu rozwiązaniu mamy ciągłą kontrole nad dodawanymi kawałkami kodu. Dodatkowo nasze CI automatycznie zwiększa numer wersji systemu przy dodawaniu nowych funkcji.

Co zrobiliśmy?
Produkt Vending Manager łączy w sobie ideę wspólnego systemu dla trzech rodzajów urządzeń odbiorczych - składa się z części aplikacji webowej, komórkowej oraz oprogramowania systemu embedded. Poza oprogramowaniem został stworzony również hardware samych maszyn i części mechaniczne.

Technologie

  • > Java
  • > C++
  • > JavaFX
  • > GraphQL

Dokumentacja

Udostępniamy tylko dokumentację, która może być publiczna, tak by nie naruszać umów NDA, ani nie narażać klientów na cyberataki.

Masz pytanie?

Skontaktuj się z nami!

Jesteś teraz offline