-
Notifications
You must be signed in to change notification settings - Fork 2
SkiSlope Stacja narciarska (PL)
REST API studenckiego projektu odpowiedzialnego za obsługę stacji narciarskiej.
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.
- 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 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 utworzonej w MySQL.
Endpointy aplikacji przedstawione na podstawie zrzutu ekranu z aplikacji Postman.
Przykładowa dokumentacja API płatności: link
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.
Uwierzytelnianie użytkowników Google odbywa się poprzez Spring Security. Poniżej przedstawiony został przepływ procesu logowania użytkownika poprzez Google.
Płatności za bilety oraz karnety są wykonywane całkowicie za pomocą payPal.
Istnieją dwa rodzaje raportów. Raporty dla klientów oraz administratorów generowane są za pomocą JasperReport. Przykład raportu wygenerowanego dla klienta:
- Java,
- Spring Boot,
- Spring Security,
- Spring Data,
- Hibernate,
- Lombok,
- MySQL,
- PayPal API,
- JasperReport.
- Postman,
- Github,
- Swagger,
- Trello.