CASE STUDY

Natywne w chmurze MVP dla portugalskiego startupu

Udostępnij

Klient

Repete.pt

Branża

Recykling

Państwo

Polska

Technologie

O kliencie

Repete to nowo powstały portugalski startup, którego celem jest eliminacja opakowań jednorazowych w gastronomii.
Firma zaprojektowała unikalny i trwały system pojemników, które można śledzić i wielokrotnie używać do przechowywania różnych produktów, ograniczając w ten sposób zanieczyszczenie środowiska oraz produkcję plastiku.

Wyzwanie

Pojemniki musiały być zarządzane zarówno przez klientów, jak i sklepy.
Dodatkowo aplikacja musiała skalować się w zależności od ruchu online, który osiągał szczyt w godzinach popołudniowych, a nocą był prawie zerowy. Dzięki temu rozwiązaniu system był gotowy na przyszły wzrost liczby użytkowników, bez konieczności kosztownej przebudowy.
Zdecydowano się na architekturę serverless, aby zminimalizować koszty infrastruktury.

Ponieważ nie było jeszcze wiadomo, jakie urządzenia będą dominować wśród użytkowników, wymagano spójnego interfejsu, który zapewni jednolite doświadczenie na wszystkich urządzeniach.

Dodatkowo użytkownicy musieli logować się przy użyciu nowego hasła przy każdej sesji, co zwiększało bezpieczeństwo ich kont.

Cel

Dostarczenie:

  • Całkowicie serverlessowej aplikacji, która automatycznie skaluje się wraz z ruchem
  • Interfejsu dopasowanego do różnych urządzeń, choć bez pełnej responsywności
  • Autoryzacji opartej na jednorazowym kodzie

Stos technologiczny

Vue.js, Node.js, AWS (DynamoDB, S3, Lambda, SES, API Gateway, Cognito, CloudFormation)

Proces

Rozpoczęliśmy od analizy wymagań funkcjonalnych, aby określić API, które stanowiło główny sposób programistycznej interakcji z aplikacją.
Po zakończeniu tego etapu przystąpiliśmy do implementacji UI, czyli warstwy zapewniającej wizualną interakcję użytkownika z systemem.

Każdy niezależny proces użytkownika został umieszczony w osobnym widoku, a powiązane procesy zostały pogrupowane.
Dzięki umieszczeniu aplikacji w oknie przypominającym widok mobilny zapewniliśmy spójny układ interfejsu na wszystkich urządzeniach oraz możliwość łatwego testowania nowych wariantów interfejsu na żądanie klienta, bez dodatkowych kosztów.
Ostatecznie główną grupą docelową aplikacji byli użytkownicy mobilni.

Po ukończeniu UI przeszliśmy do prac nad backendem.

Dzięki AWS Lambda wdrożyliśmy podstawową jednostkę obliczeniową architektury serverless—funkcję Lambda.
API Gateway umożliwiło grupowanie funkcji według głównych encji, zarządzanie wieloma wersjami API oraz utrzymywanie różnych środowisk wdrożeniowych.

Cognito odpowiadało za zarządzanie bazą użytkowników i autoryzację. Drobna modyfikacja webhooków pozwoliła na wdrożenie autoryzacji opartej na jednorazowym kodzie, bez konieczności dodawania dodatkowych usług, co zapewniło wysoki poziom bezpieczeństwa.
SES służyło do wysyłania powiadomień e-mail o ważnych zdarzeniach.

Największym wyzwaniem było zaprojektowanie modelu danych w DynamoDB.
Zastosowaliśmy DynamoDB, aby zminimalizować koszty utrzymania i wykorzystać skalowalność bazy dokumentowej.

W tradycyjnych relacyjnych bazach danych dane są przechowywane w postaci powiązanych tabel, gdzie jedna kolumna odwołuje się do innej, co pozwala na szybkie pobieranie powiązanych danych, lecz często kosztem długiego czasu zapytań.
W bazach dokumentowych podejście jest zupełnie inne.

Pobieranie danych jest niemal natychmiastowe (dzięki kluczom partycji, które jednoznacznie identyfikują dokumenty), jednak odpowiednie zaprojektowanie struktury wymaga podziału danych na kilka struktur oraz denormalizacji, aby umożliwić efektywne wyszukiwanie przy użyciu różnych parametrów.

Dzięki projektowaniu tabel pod kątem przechowywanych zachowań, a nie encji, udało nam się zminimalizować liczbę denormalizowanych tabel, zapewniając jednocześnie wysoką wydajność i łatwość utrzymania.

CloudFormation zautomatyzowało deployment kodu i konfigurację infrastruktury, gwarantując spójność systemu.

Rezultat

Mobilna aplikacja webowa z atrakcyjnym interfejsem, kosztami utrzymania poniżej 5 USD miesięcznie i możliwością obsługi ponad 10 000 jednoczesnych użytkowników.

Daniel świetnie rozumie podstawowe procesy biznesowe i posiada doskonałą znajomość inżynierii oprogramowania. Dzięki temu komunikacja przebiega sprawnie, a wyniki przewyższają standardy, nawet w przypadku pracy nad zupełnie nowymi rozwiązaniami.

Pomógł nam stworzyć app.repete.pt, oprogramowanie mające na celu eliminację barier dla firm korzystających z opakowań wielokrotnego użytku.

Luís Domingos
Współzałożyciel Repete.pt

Stwórzmy razem coś innowacyjnego!

Umów się na bezpłatną konsultację już teraz i sprawdź, jak możemy Ci pomóc.