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.



Wyniki
Co zmieniło się po starcie projektu
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
Jak to wygląda

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
Cały interfejs aplikacji mobilnej i panelu administracyjnego oraz połączenie frontendu z backendem.
GitHub
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
Integracja backendu z PostgreSQL i kluczowe endpointy w poszczególnych mikroserwisach.
GitHub






