Stos technologiczny:
- Backend: .NET 9 (Web API), Entity Framework Core
- Baza danych: PostgreSQL (w kontenerach Docker na start)
- Cloud storage: Azure Blob (np. do przechowania zdjęć pokoi)
- Frontend: React
Organizacja pracy:
Cel: Skonfigurowanie środowiska, bazy danych oraz uwierzytelniania.
- Przygotowanie docker compose'a dla bazy PostgreSQL.
- Inicjalizacja projektów frontend i backend oraz konfiguracja połączenia z bazą danych.
- Wdrożenie ustandaryzowanych odpowiedzi błędów API (np.
timestamp,status,error,fieldErrors). - Implementacja modelu użytkownika (klasa
Useroraz kompozycja rólTenantRole,LandlordRole). - Realizacja rejestracji i bezpiecznego logowania (generowanie i walidacja tokenów JWT).
- Dwuetapowy mechanizm resetu hasła (żądanie i potwierdzenie).
Cel: Budowa profili użytkowników i umożliwienie właścicielom tworzenia ogłoszeń.
- Zapis i aktualizacja preferencji Lokatora powiązanych z rolą
TenantRole(np. zwierzęta, palenie, budżet). - Implementacja bazowego modelu domenowego dla ogłoszeń (
Listingpowiązany zApartmentiRoom). - Stworzenie endpointu do wystawiania ogłoszeń ze statusem początkowym
DRAFTlubUNDER_REVIEW. - Integracja zewnętrznego magazynu plików (Azure blob) dla zdjęć (zapisywanie samych URL-i w bazie).
Cel: Domknięcie cyklu życia ogłoszenia i rozpoczęcie wyszukiwarki/dopasowań.
- Pełna obsługa cyklu życia ogłoszenia: przejścia między stanami
ACTIVE,HIDDEN,ARCHIVED. - Wdrożenie encji
Unavailabilitydo zarządzania okresami niedostępności pokoju (np. na czas remontu). - Podstawowy endpoint pobierający dopasowane da lokatora mieszkania z użyciem stronicowania (
page,size). - Implementacja algorytmu wyliczającego
matchScorena podstawie preferencji.
Cel: Rozwinięcie wyszukiwania i rozpoczęcie interakcji wynajmu.
- Stworzenie obiektu
Bookingi endpointu inicjującego rezerwację (statusPENDING_APPROVAL). - Zarządzanie rezerwacją przez właściciela: endpointy do akceptacji (
/accept) i odrzucania (/reject). - Anulowanie rezerwacji przez lokatora (
/cancel) i obsługa konfliktów terminów (błąd409 Conflict). - Stworzenie obiektu
Paymenti integracja z zewnętrznym systemem płatności (stanyInitiated,Redirected,Succeeded/Failed). - Automatyczna zmiana statusu rezerwacji na
CONFIRMEDpo pomyślnej płatności. - Wdrożenie bramki płatności przy akceptacji rezerwacji przez właściciela
- Automatyczne anulowanie opłaconych rezerwacji i inicjacja zwrotów w przypadku blokady konta właściciela przez admina.
Cel: Domknięcie obsługi rezerwacji oraz budowa modułu moderacji dla administratorów.
- Budowa obiektu
ViolationReportdla zgłoszeń naruszeń (stany:Open,UnderReview,ActionTaken). - Realizacja blokady konta przez administratora (zmiana statusu na
BLOCKEDi ukrycie ogłoszeń). - Próba integracji z backendem przygotowanym przez naszych kolegów
Cel: Integracja bramek płatniczych, powiadomień oraz ostateczne szlify.
- Wdrożenie serwisu powiadomień (interfejs
INotificationPort) do wysyłania maili/pushy po ważnych zdarzeniach biznesowych. - Testy końcowe i opcjonalne wdrożenie aplikacji.