Skip to content

Latest commit

 

History

136 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobile app: Click here
Version: PL | ENG

System rezerwacji toru kolarskiego

Aplikacja jest systemem komputerowym służącym do dokonania rezerwacji toru kolarskiego. Celem tego systemu jest umożliwienie dokonania rezerwacji toru użytkownikom prywatnym. Składa się on z następujących elementów: serwera w architekturze REST, aplikacji internetowej oraz aplikacji mobilnej. Główne funkcjonalności to: logowanie i rejestracja użytkownika, kalendarz dostępności toru, zarządzanie systemem (dla administratora) i rezerwacjami (dla użytkownika), a także składanie rezerwacji na określoną porę i czas.

Spis treści

Funkcjonalności

  • Autentykacja i autoryzacja użytkownika z pomocą tokenów JWT
  • Rezerwacja torów na określoną porę i czas, możliwość modyfikacji, anulowania oraz usunięcia rezerwacji + eksport szczegółów rezerwacji w formatach .xslx i .pdf
  • Aktualizacja dostępu torów w czasie rzeczywistym
  • Przeglądanie rezerwacji w formie kalendarza - na stronie głównej oraz w zakładce 'Moje rezerwacje' z rezerwacjami danego użytkownika
  • Historia rezerwacji w dedykowanej zakładce + opcje filtrowania
  • Wysyłanie powiadomień w aplikacji
  • Wysyłanie wiadomości mail, np. przy próbie resetu hasła
  • Panel administratora, z podziałem na dwie role (superadmin oraz admin danego obiektu), w którym można zarządzać torami, sprzętem, użytkownikami itp.
  • Logi administracyjne, do ewentualnego podglądu błędów
  • Dwie wersje językowe (polska oraz angielska) + dwa tryby (jasny i ciemny)

Wykorzystane technologie

Backend (serwer REST API):

  • C#
  • ASP.NET Core Web API
  • Entity Framework Core
  • PostgreSQL
  • Swagger
  • JWT (do autentykacji)
  • CORS (dostęp do API dla frontendu)
  • xUnit (testy jednostkowe)
  • Serilog (logi)

Frontend:

  • React + Vite
  • TypeScript
  • HTML, CSS
  • Axios
  • React Bootstrap
  • FullCalendar
  • i18n
  • Playwright (testy e2e)

Instrukcja instalacji

Serwer REST API:

1. Wymagania:

  • Zainstalowane Visual Studio 2022 (lub nowsze) z obsługą .NET Core
  • Zainstalowany PostgreSQL
  • Konto z odpowiednimi uprawnieniami do tworzenia bazy danych i tabel

2. Uruchomienie projektu:

  • Otwórz Visual Studio
  • Wybierz 'Otwórz projekt/rozwiązanie' i wskaż plik .sln projektu backendowego
  • Skonfiguruj połączenie z bazą danych w pliku appsettings.json:
"ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=srtk;Username=postgres;Password=password"
}
  • W menu Build wybierz 'Build Solution', aby skompilować projekt
  • Uruchom projekt przyciskiem 'Start' lub skrótem F5
  • Po uruchomieniu serwera, API będzie dostępne pod adresem http://localhost:5048 wraz z dokumentacją Swagger pod http://localhost:5048/swagger

Aplikacja internetowa:

1. Wymagania:

2. Instalacja i uruchomienie:

  • Otwórz terminal w katalogu projektu frontendowego
  • Zainstaluj wszystkie zależności:
npm install
  • Uruchom aplikację w trybie developerskim:
npm run dev
  • Po uruchomieniu aplikacji, aplikacja będzie dostępna w przeglądarce pod adresem http://localhost:5173

Prezentacja aplikacji

Strona główna: Strona główna

Panel rejestracji: Panel rejestracji

Formularz tworzenia nowej rezerwacji: Formularz tworzenia nowej rezerwacji

Zakładka 'Moje rezerwacje': Zakładka moje rezerwacje

Profil użytkownika: Profil użytkownika

Panel administratorski - zakładka do zarządzania rezerwacjami: Panel administratorski


Reservation system for a cycle track

The application is a computer system designed for booking cycling tracks. The purpose of this system is to allow private users to make track reservations. It consists of the following components: a REST API server, a web application, and a mobile application. The main functionalities include user login and registration, track availability calendar, system management (for administrators), reservation management (for users), and making reservations for a specific date and time.

Table of contents

Functionalities

  • User authentication and authorization using JWT tokens
  • Track reservations for a specific time and duration, with the ability to modify, cancel, and delete reservations + export reservation details in .xslx and .pdf formats
  • Real-time updates of track availability
  • Viewing reservations in calendar form - on the home page and in the 'My Reservations' tab with the user's reservations
  • Reservation history in a dedicated tab + filtering options
  • Sending in-app notifications
  • Sending email messages, e.g. during password reset attempts
  • Administrator panel with two roles (superadmin and facility-specific admin), allowing management of tracks, equipment, users, etc.
  • Administrative logs for potential error inspection
  • Two language versions (Polish and English) + two UI modes (light and dark)

Tech stack

Backend (REST API server):

  • C#
  • ASP.NET Core Web API
  • Entity Framework Core
  • PostgreSQL
  • Swagger
  • JWT (authentication)
  • CORS (API access for the frontend)
  • xUnit (unit tests)
  • Serilog (logs)

Frontend:

  • React + Vite
  • TypeScript
  • HTML, CSS
  • Axios
  • React Bootstrap
  • FullCalendar
  • i18n
  • Playwright (e2e tests)

Installation guide

REST API server:

1. Requirements:

  • Installed Visual Studio 2022 (or newer) with .NET Core support
  • Installed PostgreSQL
  • Account with appropriate permissions to create databases and tables

2. Running the project:

  • Open Visual Studio
  • Select 'Open Project/Solution' and choose the backend .sln file
  • Configure the database connection in appsettings.json:
"ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=srtk;Username=postgres;Password=password"
}
  • In the Build menu, select 'Build Solution' to compile the project
  • Run the project using the 'Start' button or F5
  • After the server starts, the API will be available at http://localhost:5048 with Swagger documentation at http://localhost:5048/swagger

Web application:

1. Requirements:

2. Instalacja i uruchomienie:

  • Open a terminal in the frontend project directory
  • Install all dependencies:
npm install
  • Run the application in development mode:
npm run dev

Application preview

Homepage: Homepage

Registration panel: Registration panel

New reservation form: New reservation form

'My Reservations' tab: My reservations tab

User profile: User profile

Admin panel — reservation management tab: Admin panel

About

A comprehensive system for managing cycling track reservations, featuring user authentication, real-time availability, calendar-based bookings, and administrative controls (server & web app)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages