Skip to content

SkiSlope Stacja narciarska (PL)

danifoj315 edited this page Jul 15, 2022 · 1 revision

REST API studenckiego projektu odpowiedzialnego za obsługę stacji narciarskiej.

Opis projektu

Projekt umożliwia obsługę stacji narciarskiej poprzez dostarczenie niezbędnych funkcjonalności. Funkcjonalności dostarczone są przez trzy aplikacje:

  • strone WWW (ReactJS),
  • aplikację mobilną (Flutter),
  • skaner kodów QR - bramka narciarska (Unity). Wszystkie komponenty połączone są ze sobą poprzez REST API zawarte w powyższym repozytorium.

Najważniejsze funkcjonalności projektu

  • Logowanie oraz rejestracja użytkownika,
  • Uwierzytelnianie za pomocą konta Google,
  • Możliwość zakupu biletu/karnetu korzystając z systemu płatności,
  • Skanowanie biletu/karnetu,
  • Generowanie raportów.

Diagram przypadków użycia

Diagram przedstawiający przypadki użycia niezbędne do działania projektu. Backend implementuje również funkcjonalności, które nie zostały przedstawione na poniższym diagramie.

Schemat bazy danych (MySQL)

Schemat bazy danych utworzonej w MySQL.

Endpoints

Endpointy aplikacji przedstawione na podstawie zrzutu ekranu z aplikacji Postman.

Przykładowa dokumentacja API płatności: link

Opis implementacji najważniejszych funkcjonalności - Backend

Autoryzacja oraz uwierzytelnianie użytkowników lokalnych

Autoryzacja użytkownika odbywa się poprzez JWT które użytkownik uzyskuje podczas procesu uwierzytelniania. Podczas uwierzytelniania użytkownik uzyskuje również refresh token pozwalający na przedłużenie żywotności access token.

Google Authentication

Uwierzytelnianie użytkowników Google odbywa się poprzez Spring Security. Poniżej przedstawiony został przepływ procesu logowania użytkownika poprzez Google.

Połącznie z systemem płatności

Płatności za bilety oraz karnety są wykonywane całkowicie za pomocą payPal.

Generowanie raportów

Istnieją dwa rodzaje raportów. Raporty dla klientów oraz administratorów generowane są za pomocą JasperReport. Przykład raportu wygenerowanego dla klienta:

Technologie używane do stworzenia Backend'u

  • Java,
  • Spring Boot,
  • Spring Security,
  • Spring Data,
  • Hibernate,
  • Lombok,
  • MySQL,
  • PayPal API,
  • JasperReport.

Przydatne aplikacje przy tworzeniu Backendu:

  • Postman,
  • Github,
  • Swagger,
  • Trello.