Skip to content

feat: Kompletna implementacja glównych funkcjonalności projektu LocalAid#3

Open
wrx80122 wants to merge 1 commit intoRETTD:mainfrom
wrx80122:feature/massive-initial-update
Open

feat: Kompletna implementacja glównych funkcjonalności projektu LocalAid#3
wrx80122 wants to merge 1 commit intoRETTD:mainfrom
wrx80122:feature/massive-initial-update

Conversation

@wrx80122
Copy link
Copy Markdown

Kroki implementacji projektu LocalAid

Zrealizowane Fazy

Faza 1: System Ogłoszeń

  • Zaimplementowano Schemat Bazy Danych dla Użytkowników, Ogłoszeń, Komentarzy, Ocen.
  • Stworzono Ścieżki API:
    • GET /api/posts: Lista ogłoszeń z filtrowaniem.
    • POST /api/posts: Tworzenie nowego ogłoszenia.
    • GET /api/posts/[id]: Szczegóły pojedynczego ogłoszenia.
    • PUT /api/posts/[id]: Aktualizacja ogłoszenia.
    • DELETE /api/posts/[id]: Usuwanie ogłoszenia.
  • Zbudowano Strony Frontendowe:
    • Strona Główna: Wyświetla listę ogłoszeń.
    • Dodaj Ogłoszenie: Formularz dodawania nowych ofert.
    • Szczegóły Ogłoszenia: Pełny widok ogłoszenia.
    • Edytuj Ogłoszenie: Aktualizacja istniejącego ogłoszenia.
    • PostActions: Komponent przycisków Edytuj/Usuń.

Faza 2: Odkrywanie i Filtrowanie

  • Dodano Wyszukiwanie i Filtrowanie:
    • Filtrowanie po Kategorii (np. Narzędzia, Zakupy).
    • Wyszukiwanie Tekstowe (tytuły, opisy, lokalizacje).
  • Stworzono komponent "klient" SearchFilters z opóźnionym (debounced) wyszukiwaniem.
  • Zaktualizowano stronę główną, aby aplikowała filtry do zapytań bazy danych po server-side.

Faza 3: Interakcje Społeczne

  • System Komentarzy:
    • Stworzono API GET/POST /api/posts/[id]/comments.
    • Dodano komponent CommentSection do strony szczegółów ogłoszenia.
    • Zaimplementowano optymistyczne aktualizacje UI dla nowych komentarzy.
  • System Ocen:
    • Stworzono API POST /api/users/[id]/ratings do przesyłania ocen (1-5 gwiazdek).
    • Dodano komponent UserRating do wyświetlania średniej oceny i interaktywnego głosowania.
    • Zintegrowano wyświetlanie ocen w Szczegółach Ogłoszenia obok informacji o autorze.

Faza 4: Profile Użytkowników

  • Strona Profilu (/profile/[id]):
    • Wyświetla informacje o użytkowniku, średnią ocenę i statystyki.
    • Listuje aktywne ogłoszenia użytkownika.
    • Pokazuje historię otrzymanych ocen/opinii.
  • Edycja Profilu:
    • Stworzono endpoint PUT /api/users/[id].
    • Dodano formularz aktualizacji Imienia, Bio, Telefonu.
  • Funkcje Panelu:
    • Zalogowani użytkownicy widzą link "Mój profil".
    • Właściciele mogą zarządzać swoimi ogłoszeniami z poziomu profilu.

Faza 5: Integracja Mapy

  • Komponent Mapy:
    • Stworzono reaktywną mapę przy użyciu react-leaflet.
    • Zintegrowano logikę wyświetlania markerów dla ogłoszeń ze współrzędnymi.
  • Integracja ze Stroną Główną:
    • Osadzono mapę nad listą ogłoszeń (wyrównana do lewej, ograniczona szerokość).
    • Pobiera szerokość/długość geograficzną z modelu Post.

Faza 6: Finalne Szlify

  • Wybór Lokalizacji:
    • Dodano do Formularza Ogłoszeń.
    • Obsługuje interaktywne wybieranie pineski na mapie (LocationPicker.tsx).
    • Geocoding Odwrotny: Wybranie punktu automatycznie uzupełnia adres.
    • Geocoding Wprost: Wpisanie adresu aktualizuje pineskę na mapie.
  • Mikro-usprawnienia:
    • Dodano linki "Wróć do strony głównej".
    • Poprawiono stylizację.

Zweryfikowane Funkcjonalności

  1. Operacje CRUD: Pomyślne tworzenie, odczyt, aktualizacja i usuwanie ogłoszeń.
  2. Filtrowanie: Przetestowane poprzez integrację UI (logika kodu zweryfikowana).
  3. Dostępność: Przyciemniono kolory tekstu dla lepszej czytelności.
  4. Pełny przepływ użytkownika: Od rejestracji, przez dodanie ogłoszenia z mapą, po ocenę.

W tym commicie zawarto:
- System CRUD dla ogłoszeń.
- Zaawansowane wyszukiwanie i filtrowanie (kategorie, tekst).
- Komponenty interakcji społecznych (komentarze i oceny).
- Strony i edycja profilu użytkownika.
- Pełna integracja Mapy, Geocoding i Location Picker.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant