Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.
Swizzle Delivery
Mobilna platforma, która pomaga użytkownikom przeglądać i kupować ekskluzywny wybór starannie wyselekcjonowanych win, piw i napojów spirytusowych. Pozwala odkrywać spersonalizowane rekomendacje od wbudowanego chatbota, łatwo sortować według rodzaju, kraju, odmiany winogron czy ceny, a także dostosować opcje dostawy podczas dokonywania zakupów.
- Business Analysis
- DevOps services
- Mobile Development
- QA
- UI/UX design
Opis projektu
W ramach tego projektu nasz zespół pomógł w projektowaniu, opracowywaniu, uruchamianiu i wspieraniu niestandardowego interfejsu użytkownika mobilnego, który zastąpił starą aplikację bez kodu. Nasz zespół był odpowiedzialny za nowe branding, projektowanie UI/UX dla makiety mobilnej aplikacji, rozwijanie aplikacji na platformy iOS i Android przy użyciu React Native, łączenie z punktami końcowymi API oraz logiką biznesową po stronie front-endu, integrację z bramą płatności Stripe, obsługę błędów, testowanie, materiały promocyjne dla sklepów App Store i Google Play, oraz pomoc w przesyłaniu kompilacji do recenzji i dystrybucji. Nasz kierownik projektu, projektant UI/UX, deweloper mobilny i inżynier QA w ścisłej współpracy z CEO Swizzle, Capucine Codron, przekazywali wymagania biznesowe i wytyczne projektu, natomiast CTO Guillaume Jacomin, który tworzył API i integracje back-endowe przy użyciu frameworka Python Django.
Branża: | Ecommerce, Food Retail |
Platformy: | Mobile |
Role: | Software developer, IT consultant |
Tech Stack: | Node.js, Nest.js, PostgreSQL, Postmarkapp, Shopify integration, Accredible integration, Pearson Vue integration, Edu Next integration |
Wprowadzenie do problemu
CEO Swizzle, Capucine Codron, skontaktowała się z naszą firmą z prośbą o zbudowanie niestandardowej aplikacji React Native, która ma zastąpić istniejącą. CTO Swizzle, Guillaume Jacomin, pracował nad back-end API przy użyciu Pythona, a niektóre punkty końcowe API zostały już udokumentowane. Dodatkowo mieliśmy starą aplikację jako odniesienie oraz krótkie informacje dotyczące biznesu i wymaganej funkcjonalności. Pierwotnie, mobilna aplikacja bez kodu, którą mieli, wystarczała na początkowym etapie działalności. Jednak w miarę rozwoju ich biznesu potrzebowali bardziej zaawansowanego back-endu i interfejsu użytkownika, co było niemożliwe do osiągnięcia tylko przy użyciu frameworku bez kodu. W związku z tym poprosili o kilka opcji oszacowań dotyczących tylko stron internetowych, aplikacji mobilnych lub obu. Na podstawie naszego bogatego doświadczenia w dziedzinie technologii spożywczej i rozwoju oprogramowania do handlu detalicznego szybko zebraliśmy wymagane szczegóły, zaproponowaliśmy kilka wersji przybliżonych szacunków dla różnych opcji, podzieliliśmy się naszymi sugestiami i zgodziliśmy się na projektowanie i rozwijanie uniwersalnej aplikacji mobilnej w oparciu o czas i koszty przedstawione w ostatnich szacunkach.
Główne cele
- Kompatybilność na Wszystkich Platformach:
- Zabezpieczenie, aby aplikacja React Native była kompatybilna zarówno z platformą iOS, jak i Android, zapewniając bezproblemowe doświadczenie dla użytkowników na obu systemach operacyjnych.
- Integracja z Back-Endem w Pythonie:
- Zintegrowanie front-endu React Native z istniejącym back-endem API w Pythonie opracowanym przez CTO Swizzle, Guillaume Jacomin. Zapewnienie płynnej komunikacji między systemami front-endu a back-endu.
- Implementacja Punktów Końcowych API:
- Wdrożenie udokumentowanych punktów końcowych API dostarczonych przez CTO Swizzle. Zweryfikowanie dokładności punktów końcowych i ustanowienie właściwych mechanizmów wymiany danych między front-endem a back-endem.
- Projektowanie Interfejsu Użytkownika i Doświadczenia Użytkownika (UI/UX):
- Zaprojektowanie intuicyjnego i przyjaznego użytkownikowi interfejsu, który spełnia wymagania biznesowe i zapewnia pozytywne doświadczenia użytkownika. Ścisła współpraca z CEO Swizzle i zainteresowanymi stronami w celu uzyskania opinii i zatwierdzenia.
- Skalowalność i Wydajność:
- Rozwinięcie aplikacji z myślą o skalowalności, aby dostosować się do potencjalnego przyszłego wzrostu liczby użytkowników i danych. Optymalizacja wydajności, aby zapewnić szybkie i responsywne interakcje, nawet przy dużym obciążeniu.
- Środki Bezpieczeństwa:
- Wdrożenie solidnych środków bezpieczeństwa w celu ochrony danych użytkownika, wrażliwych informacji i ogólnej integralności aplikacji. Wykorzystanie najlepszych praktyk w zakresie szyfrowania danych, bezpiecznej autentykacji i autoryzacji.
Wyzwania techniczne
W ogólności nie występowały przytłaczające wyzwania. Zarówno członkowie zespołu projektowego, jak i ich liderzy z SPACE IT mają głębokie doświadczenie w obszarach e-commerce, food-tech, handlu detalicznego i dostaw, są zaznajomieni z różnymi integracjami bram płatności oraz wdrożeniami programów lojalnościowych. Zarówno tradycyjne, jak i platformowe, oraz cykliczne transakcje i jakiekolwiek złożone logiki monetarne nie stanowiły żadnego problemu. W większości przypadków mieliśmy jedynie drobne rutynowe problemy organizacyjne i komunikacyjne, które były monitorowane i rozwiązywane w ciągu dnia pod czujnym nadzorem naszego technicznego kierownika projektu. Na przykład, nasz deweloper mobilny pracował oddzielnie od Guillaume'a, który rozwijał back-end, i w różnych oknach czasowych, więc ważne było zsynchronizowanie codziennych celów zespołu, jasne raportowanie postępów i problemów, oraz rozwiązywanie lub unikanie wszelkich nieporozumień, które mogłyby generować dodatkowe wysiłki dla obu deweloperów. Jeśli chodzi o funkcjonalność, zarówno ekran przeglądania win, jak i Chatbot miały dość złożone implementacje. Ekran przeglądania win zawiera wiele filtrów do wyboru, pasek wyszukiwania i suwak do wybierania zakresu cen. Zestaw wszystkich filtrów ekranu jest zsynchronizowany z filtrami w oknie wyszukiwania. Filtry są podzielone na dwa typy: chipy i suwaki. Każdy typ ma inną logikę budowania linku wyszukiwania. Ponadto elastyczność zawartości ekranu dodaje również złożoności. Ponieważ zawartość aplikacji jest zarządzana przez administratora, możemy mieć różne zestawy bloków dla ekranów kampanii i głównego ekranu przeglądania. Jeśli chodzi o Chatbota, rzeczywiście nie jest to zwykły bot. Cała treść jest początkowo pobierana z back-endu, a my symulujemy komunikację z użytkownikiem. Posiada on duże ilości logiki do symulowania zestawu wiadomości i obsługi odpowiedzi użytkownika. Każda odpowiedź użytkownika jest przekształcana w zapytanie wyszukiwania, z którego kompilujemy link z listą produktów, indywidualnie zalecanych użytkownikowi.
Podstawowa funkcjonalność:
- Autoryzacja poprzez e-mail
- Onboarding, informacje profilowe, metody dostawy i płatności, oraz preferencje
- Chatbot z poradami
- Katalog produktów z wyszukiwarką, filtrami według typu i okazji, najpopularniejszymi i promowanymi napojami, podstronami z podfiltrami takimi jak cena, wino, szczep, rodzaj alkoholu, kraj pochodzenia, zaawansowane cechy stylu wina, produkty bezalkoholowe, prezenty, rodzaje parowania i uroczystości itp.
- Szczegółowe strony produktów z obrazami, opisem, krajem pochodzenia, głównymi cechami, smakami, charakterystykami smakowymi i informacjami o producencie
- Koszyk, strony z finalizacją zamówienia i dostawą, oraz ekrany płatności
- Twoje zamówienia, ponowne zakupy i ulubione
Rozwiązanie
To była prawdziwa przyjemność budować i wypuścić ten produkt na rynek. W ścisłej współpracy z Capucine i Guillaume oraz dzięki ich energii i pasji nasz zespół zdołał rozwiązać wszystkie techniczne problemy, poradzić sobie z wyzwaniami związanymi z produktem i dostarczyć godne uwagi i unikalne rozwiązania z radością i entuzjazmem. To była ekscytująca podróż, i cieszymy się, że to nie jest koniec, ponieważ obecnie pomagamy w obszarze wsparcia technicznego oraz aktualizacji związanych zarówno z zadaniami back-end, jak i front-end.