Wróć do wszystkich projektów

Gamelog

[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