Gamelog
Języki: Java, React
[UWAGA] Backend tego projektu jest hostowany w usłudze darmowego poziomu. Uruchomienie po pierwszym żądaniu może chwilę potrwać.
Gamelog to kompleksowa pełnofunkcjonalna aplikacja zaprojektowana, aby pomóc graczom w zarządzaniu rosnącym zalogiem. Zapewnia scentralizowane centrum do śledzenia postępu gry, oceny tytułów i udostępniania bibliotek przyjaciołom.
Zbudowana nowoczesnym stosem technologicznym ze Spring Boot 3 na backendzie i React 19 na frontendem, zapewnia responsywne i solidne doświadczenie użytkownika. System jest zaprojektowany jako aplikacja rozproszona, wykorzystująca Docker do orkiestracji.
Architektura techniczna
Projekt przyjmuje warstwową architekturę w celu rozdzielenia problemów i zapewnienia łatwości utrzymania.
- Backend (Spring Boot 3): Wykorzystuje Java 21 i Spring Security dla solidnej ochrony API. Wykorzystuje Redis do buforowania danych tymczasowych, takich jak kody weryfikacyjne e-mail i linki resetowania hasła, optymalizując wydajność i bezpieczeństwo dla krótkotrwałych tokenów.
- Frontend (React 19): Aplikacja jednostronicowa (SPA) stylizowana za pomocą Tailwind CSS. Wykorzystuje React Context API do globalnego zarządzania stanem i React DnD dla interaktywnej tablicy Kanban.
- Baza danych i infrastruktura: Dane są przechowywane w PostgreSQL, podczas gdy cały stos jest skonteneryzowany za pomocą Docker i Docker Compose dla spójnych środowisk wdrażania.
Kluczowe funkcje
- Tablica Kanban: Intuicyjny interfejs przeciągnij i upuść do zarządzania statusami gry (np. „Granie", „Ukończono", „Porzucone").
- System społeczny: Użytkownicy mogą wysyłać zaproszenia do przyjaciół, przeglądać biblioteki przyjaciół i porównywać statystyki gier, wspierając doświadczenie wspólnoty.
- Bezpieczne uwierzytelnianie: Bezstanowe uwierzytelnianie oparte na JWT z przepływem weryfikacji e-mail wspieranym przez buforowanie Redis.
- Zaawansowane odkrywanie: Bogata baza gier z filtrowaniem według platformy, gatunku, dewelopera i nie tylko, umożliwiająca użytkownikom łatwe rozszerzenie swojego zaloga.
Wdrażanie i infrastruktura
Aplikacja jest wdrożona w infrastrukturze chmury o wysokiej dostępności:
- Frontend: Wdrożony na Vercel dla zoptymalizowanej wydajności React i globalnego rozmieszczenia CDN.
- Backend: Aplikacja Spring Boot jest skonteneryzowana i hostowana na AWS EC2.
- Baza danych: Dane PostgreSQL są zarządzane przez AWS RDS, zapewniające automatyczne kopie zapasowe i skalowalność.
- SSL i sieć: Bezpieczna komunikacja jest obsługiwana przez Caddy, który automatycznie zarządza certyfikatami SSL przy użyciu nip.io dla dynamicznego mapowania DNS na adres IP serwera.
Użyte technologie
JavaSpring BootReactPostgreSQLRedisDocker