Przejdź do treści
Realizacje
Aplikacja mobilna2026

KaucjApp: marketplace dla opakowań kaucyjnych

Aplikacja mobilna, panel administracyjny i backend w mikroserwisach, które łączą osoby z opakowaniami kaucyjnymi z kurierami, którzy je zwrócą.

Uwaga: Projekt zespołowy trzech osób. Odpowiadałem za frontend: aplikację mobilną i panel administracyjny. Backend i infrastrukturę zbudowali Konrad Mateja i Maksymilian Gędłek.

Klient
Projekt zespołowy (produkt własny)
Rola
Frontend: cała aplikacja mobilna i panel administracyjny, integracja z API
Zakres
Aplikacja mobilna iOS i Android, Panel administracyjny, Backend w mikroserwisach, Infrastruktura w chmurze
Technologie
  • React Native
  • Expo
  • TypeScript
  • TanStack Query

Wyniki

Co zmieniło się po starcie projektu

[[DO UZUPEŁNIENIA: wyniki projektu KaucjApp: liczby lub efekty potwierdzone przez klienta]]

Wyzwanie

Zwrot opakowań kaucyjnych wymaga czasu: trzeba je zebrać, zawieźć do automatu i odstać swoje. Część osób woli oddać ten kłopot komuś innemu, a są ludzie chętni, żeby to zrobić.

Brakowało miejsca, które łączy obie strony, pokazuje oferty na mapie i prowadzi przez cały proces: od wystawienia oferty po potwierdzenie zwrotu.

Rozwiązanie

Zbudowaliśmy marketplace: aplikację mobilną dla użytkowników i kurierów, panel administracyjny do zarządzania danymi systemu oraz backend złożony z pięciu mikroserwisów za API Gateway.

W aplikacji oferty i kaucjomaty są widoczne na mapie, a dane pobierane są tylko dla widocznego fragmentu mapy. Wystawienie oferty to trzy proste kroki z walidacją, a statusy ofert i rezerwacji odświeżają się w tle.

Kluczowe funkcje

Co potrafi

  • Funkcja 01

    Mapa ofert i kaucjomatów

    Oferty w formacie GeoJSON z serwisu ofert; po przesunięciu mapy aplikacja pobiera tylko dane z widocznego regionu.

  • Funkcja 02

    Oferta w trzech krokach

    Formularz zarządzany przez React Hook Form z walidacją Zod, od typu opakowań po potwierdzenie.

  • Funkcja 03

    Statusy na żywo

    Podział na aktywne i zakończone oferty oraz rezerwacje, podgląd kuriera i zmiana statusu, z odświeżaniem w tle (TanStack Query).

  • Funkcja 04

    Bezpieczne logowanie

    JWT przechowywane w expo-secure-store i kolejka żądań, która wstrzymuje zapytania na czas odświeżenia tokenu.

Ekrany

Zakres systemu: aplikacja mobilna, panel administracyjny i backend

Technologia

Technologia i architektura

  • React Native
  • Expo
  • TypeScript
  • TanStack Query
  • Zustand
  • react-native-maps
  • Next.js
  • Java
  • Spring Boot
  • PostgreSQL
  • Azure Event Hubs (Kafka)
  • Azure Container Apps
  • GraalVM Native Image
  • Mikroserwisy

    Pięć serwisów (auth, users, offers, deposit, notification) za lekkim API Gateway w Spring Web; każdy serwis ma własną bazę PostgreSQL.

  • Komunikacja asynchroniczna

    Zdarzenia domenowe płyną przez Azure Event Hubs (kompatybilne z Kafką), m.in. do serwisu powiadomień e-mail.

  • Infrastruktura jako kod

    Azure Bicep i Container Apps; serwisy kompilowane do GraalVM Native Image dla szybkiego startu i mniejszego zużycia pamięci.

  • Aplikacja mobilna

    Expo Router z grupami tras dla logowania i onboardingu, TanStack Query z dostrojonym cache, Zustand do stanu aplikacji.

Rola i zespół

Kto zbudował projekt

  • Kamil Maślanka, Frontend developer

    Kamil Maślanka

    Frontend developer

    Cały interfejs aplikacji mobilnej i panelu administracyjnego oraz połączenie frontendu z backendem.

    GitHub
  • Konrad Mateja, Backend developer

    Konrad Mateja

    Backend developer

    Struktura mikroserwisów (Spring Boot, Azure) i komunikacja asynchroniczna przez Spring Kafka i Azure Event Hubs.

    GitHub
  • Maksymilian Gędłek, Backend developer

    Maksymilian Gędłek

    Backend developer

    Integracja backendu z PostgreSQL i kluczowe endpointy w poszczególnych mikroserwisach.

    GitHub