Mobile app: Click here
Version: PL | ENG
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.
- 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)
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)
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
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
Formularz tworzenia nowej rezerwacji:

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

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.
- 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)
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)
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
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
- After starting, the application will be accessible in the browser at http://localhost:5173



