IPH od Grupy Eurocash

Uniwersalna aplikacja white-label dostosowana do różnych marek, o niskim koszcie wdrożenia.
image

Szczegóły

  • Zakres zarządzanie projektami, tworzenie aplikacji mobilnych, backend, wdrażanie infrastruktury chmurowej
  • Ramy czasowe Luty 2019 – do teraz
  • Technologie Mobile: Flutter, Bloc, Firebase, Codemagic używane do dystrybucji aplikacji do sklepów

    Backend: ASP.NET Core, MSSQL, Docker, Redis, Kubernetes, OAuth

    DevOps: Kubernetes, Helm, Azure Devops, Prometheus
  • Sektor biznesowy eCommerce
  • Zespół 1 UX designer
    1 UI designer
    2 Flutter developers
    2 Backend developers
    1 DevOps engineer
    2 Quality Assurance engineers
    1 Frontend developer
    1 Project Manager

Stworzyliśmy maksymalnie uproszczoną aplikację, która posiada te same funkcjonalności niezależnie od marki. W ten sposób sklep będący częścią Eurocash może mieć własną aplikację przy niższych kosztach i bez konieczności wprowadzania zmian operacyjnych.

Oś czasu

  • 2019
    Luty

    początek współpracy

  • 2020/22
    Styczeń 2020 – do teraz

    proces rozwoju

  • Najważniejsze informacje o projekcie

    Powielanie tego samego kodu w wybranych aplikacjach obniża koszty wdrożenia, będąc uniwersalną białą etykietą dla różnych sieci Eurocash.

    image
    image

    Potrzeby i cele biznesowe

    Będąc częścią Eurocash, jednej z największych hurtowni spożywczych w Europie, IPH dostarcza zestaw przydatnych narzędzi dla różnych sklepów w ramach grupy.

    Oferta dedykowana jest firmom, które chcą wesprzeć swój proces sprzedaży, zwiększyć konkurencyjność marki i lepiej poznać swoją grupę odbiorców, aby odpowiednio zaspokajać jej potrzeby.

    Naszym zadaniem było stworzenie uniwersalnej, innowacyjnej aplikacji, dostosowanej do ustalonego standardu, gotowej do obsługi nowych sieci sklepów, z możliwością efektywnego kosztowo wdrożenia. Jest ona dedykowana klientom sklepu, informując ich o aktualnych rabatach i ofertach specjalnych.

    Funkcje

    Funkcjonalności obejmowały szeroki zakres wymagań biznesowych związanych z ofertami i promocjami obsługiwanymi przez wiele sieci.

    • Backend aplikacji pobiera dane z różnych źródeł, przetwarza je i optymalizuje, aby zapewnić użytkownikowi natychmiastową odpowiedź.

    • Jego wygląd i zawartość różnią się w zależności od informacji dostarczanych przez interesującą nas markę. Funkcje pozostają takie same.

    • Wyświetla informacje o lokalizacji sklepów, godzinach ich otwarcia, rabatach i aktualnych ofertach, umożliwia kontakt z obsługą sklepu za pośrednictwem czatu, tworzenie listy zakupów i korzystanie z karty lojalnościowej.

    • Pozwala to na przyłączanie nowych sklepów sieciowych przy najniższych możliwych kosztach.

    • Pojedyncze logowanie do całego pakietu produktów do zarządzania korporacją.

    • Technologie klasy korporacyjnej, płynna skalowalność.

    • Bezpieczna i stabilna infrastruktura.

    • Zaawansowane zabezpieczenia i rejestrowanie dowodów.

    Projektowanie UX/UI

    Projekt obejmował stworzenie makiet UX jako podstawy widoków.

    Przygotowaliśmy zestaw dedykowanych ikon i zbudowaliśmy system projektowy, który pozwolił na dostosowanie aplikacji do różnych marek. W każdym przypadku mogliśmy zmieniać kolorystykę, logo, zdjęcia, ikony i treści zgodnie z brandbookiem sklepu. W ten sposób realizacja projektu została maksymalnie przyspieszona.

    image

    Wdrożenie infrastruktury chmury

    Chociaż dostarczono nam projekt platformy, zaproponowaliśmy inne rozwiązanie, które gwarantowało większą niezawodność i redukcję kosztów.

    Platforma oparta jest na elementach chmury Microsoft Azure.

    Elementy wspólne:

    • Serwer bazy danych MariaDB

    • Skarbiec kluczy

    • FrontDoor

    • Przednie drzwi WAF

    • Rejestr kontenerów

    • Key Vault dla Terraform

    Dedykowane elementy:

    • Maszyna wirtualna Ubuntu na scenę

    • Maszyna wirtualna Ubuntu dla prod

    • Plan obsługi aplikacji dla etapu

    • Plan obsługi aplikacji dla prod

    • Usługa aplikacji dla sceny

    • App Service dla prod

    Infrastruktura wykorzystuje Microsoft DevOps do wdrożenia aplikacji klienta. Po przejściu procesu akceptacji w środowisku testowym klienta, aplikacja jest wdrażana na środowisko stage i/lub prod z wykorzystaniem mechanizmu CI/CD pipeline.

    Cała infrastruktura zbudowana jest w oparciu o Infrastructure as a Code (Terraform). Dzięki takiemu podejściu infrastruktura przechowywana jest w repozytorium w postaci kodu i podlega wersjonowaniu. Bardzo łatwo jest cofnąć wprowadzone zmiany. Dodatkowo posiadamy pełną dokumentację infrastruktury.

    Zapewnienie jakości

    Największym wyzwaniem było usprawnienie procesu testowego przy jednoczesnym wdrożeniu systemu o dużej skali i wysokiej dynamice prac projektowych.

    W celu zminimalizowania występowania awarii wdrożono i uruchomiono automatyczne testy zgodności danych biznesowych, które zgłaszały przypadki niespójności lub braku danych z bazy klientów.

    Wdrożenie nowych funkcjonalności często powodowało zmiany w różnych modułach systemu, dlatego już od etapu analizy user story postawiliśmy na ścisłą współpracę zespołu testowego i developerskiego.

    Wspólna analiza kryteriów akceptacji przed wdrożeniem funkcjonalności zaowocowała przygotowaniem zestawów scenariuszy testowych. Efektem było wysokie pokrycie testami nowych funkcjonalności, co przełożyło się na znaczące zmniejszenie liczby awarii występujących podczas testów po kolejnych przyrostach. Rozszerzając powyższe podejście, zmniejszyliśmy ryzyko wystąpienia defektów wynikających z regresji. Testy istniejących funkcjonalności zautomatyzowaliśmy przy użyciu PlayWright i nUnit, uzupełniając je o skrypty w POSTMAN wykorzystywane w testach wysyłania powiadomień push.

    Skupiliśmy się na testowaniu integracji zbudowanego systemu z zewnętrznymi systemami służącymi do wymiany informacji o zebranych przez użytkownika punktach lojalnościowych, komunikacji z klientem detalicznym, czy zarządzania danymi jednostek sprzedażowych.

    Testy wymagały znajomości narzędzi, zrozumienia logiki działania zewnętrznych aplikacji oraz umiejętności identyfikacji źródła ewentualnych awarii.

    Przygotowaliśmy macierz śledzenia: „Funkcjonalność – Przypadek testowy – Identyfikator artefaktu roboczego” w Azure DevOps w celu monitorowania postępów w automatyzacji testów.

    Oprócz tworzenia artefaktów przypadków testowych w Azure DevOps i późniejszego korzystania z wtyczki Test Plans, rozwiązanie to zapewniało możliwość zarządzania przypadkami testowymi i łączenia ich w plany testów. Dzięki temu cała wykonana praca miała być łatwo weryfikowalna, a raporty z wynikami testów dostępne z poziomu Azure DevOps dla wszystkich interesariuszy.

    Dzięki dodatkowemu tworzeniu artefaktów przypadków testowych w AzureDevOpsi późniejszemu wykorzystaniu wtyczki Test Plans, rozwiązanie to umożliwiło zarządzanie przypadkami testowymi i łączenie ich w plany testów.

    W ten sposób cała wykonana praca była łatwa do zweryfikowania, a raporty z wynikami testów były dostępne z poziomu Azure DevOps dla wszystkich interesariuszy.

    Kolejnym zadaniem było skrócenie czasu trwania testów przed wydaniem produkcyjnym aplikacji mobilnej poprzez wybór scenariuszy testowych dla podstawowych funkcjonalności.

    Stanowiły one rdzeń testów Release Candidate. Oszacowano, że wynikowy zestaw scenariuszy testowych zwiększy przewidywalność w planowaniu wydań i zapewni bezpieczeństwo czasowe osobom odpowiedzialnym za decyzje biznesowe.

    Opisane powyżej rozwiązania przyniosły następujące rezultaty:

    • Zminimalizowanie ryzyka awarii po wdrożeniu nowych funkcjonalności – co przełożyło się na skrócenie czasu napraw i testów potwierdzających oraz ponownych testów regresji.

    • Optymalizacja czasu wykonywania testów regresji w zależności od postępu pokrycia testami automatycznymi kolejnych funkcjonalności aplikacji.

    • Optymalizacja czasu testów Release Candidate dzięki automatycznym skryptom testowym.

    • Zapewnienie jakości walidacji produktu poprzez statyczne testowanie dokumentacji projektowej.

    • Zwiększ przewidywalność i planowanie wydań poprzez oszacowanie rezerwuaru czasu testów.

    • Budowanie zaufania do poziomu jakości elementu testowego.

    image

    Wyzwania i rozwiązania

    Największym wyzwaniem była integracja wielu istniejących aplikacji z infrastruktury klienta z nowymi interfejsami API.

    Do rozwiązania tego problemu wykorzystaliśmy wiele najnowocześniejszych technologii buforowania i przesyłania wiadomości.

    Kolejnym wyzwaniem było skonfigurowanie infrastruktury tak, aby nie było przestojów podczas wdrożenia.

    Rozwiązaliśmy to, stosując metodologię wdrażania Blue Green z najnowszymi technologiami Microsoft.

    Innowacja

    Nasze rozwiązanie posiadało innowacyjny mechanizm wyszukiwania katalogu produktów, który działał w czasie rzeczywistym, umożliwiając klientom przeszukiwanie dużej bazy danych produktów (ponad 400 tys.) z jednocyfrowym milisekundowym czasem odpowiedzi bez dodatkowych kosztów infrastruktury.

    Wynik

    • Najnowocześniejsze interfejsy API działające w czasie rzeczywistym i przez 100% czasu, obsługujące dziesiątki tysięcy klientów.

    • Rozwiązanie zostało wdrożone w takich sklepach jak Groszek, Eurosklep i Gama.

    • Nadal wspieramy IPH w zakresie rozwiązań technologicznych, których firma może potrzebować. Mają oni stałą pomoc naszego zespołu IT.