Skip to content

Latest commit

 

History

80 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web 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
  • Historia rezerwacji w dedykowanej zakładce + opcje filtrowania
  • Wysyłanie powiadomień w aplikacji oraz systemowych powiadomień przypominających (godzinę przed rozpoczęciem rezerwacji)
  • 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)

Aplikacja mobilna:

  • .NET MAUI
  • HttpClient
  • CommunityToolkit.Maui
  • Shell Navigation
  • WebView
  • Plugin.LocalNotification
  • xUnit (testy jednostkowe)

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 mobilna:

1. Wymagania:

  • Zainstalowane Visual Studio 2022 (lub nowsze) z obsługą projektów .NET MAUI
  • Android Emulator lub fizyczne urządzenie

2. Uruchomienie projektu:

  • Otwórz Visual Studio
  • Wybierz 'Otwórz projekt/rozwiązanie' i wskaż plik .sln projektu aplikacji mobilnej
  • Skonfiguruj adres serwera API serwera w pliku MauiProgram.cs:
builder.Services.AddSingleton(new HttpClient
            {
                BaseAddress = new Uri("http://192.168.8.X:5048/") // Podmień 192.168.8.X na adres IP urządzenia, na którym uruchomiony jest serwer REST API
            });
  • W menu Build wybierz 'Build Solution', aby skompilować projekt
  • Uruchom projekt przyciskiem 'Start' lub skrótem F5
  • Po uruchomieniu aplikacja otworzy się w emulatorze/podłączonym urządzeniu mobilnym

Prezentacja aplikacji

Strona główna: Strona główna

Panel logowania: Panel logowania

Formularz tworzenia nowej rezerwacji: Formularz tworzenia nowej rezerwacji

Zakładka 'Rezerwacje': Zakładka rezerwacje

Panel administratorski: 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
  • Reservation history in a dedicated tab + filtering options
  • Sending in-app notifications and system reminders (one hour before the reservation starts)
  • 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)

Mobile app:

  • .NET MAUI
  • HttpClient
  • CommunityToolkit.Maui
  • Shell Navigation
  • WebView
  • Plugin.LocalNotification
  • xUnit (unit 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

Mobile application:

1. Requirements:

  • Installed Visual Studio 2022 (or newer) with .NET MAUI workload installed
  • Android Emulator or physical device connected for testing

2. Running the project:

  • Open Visual Studio
  • Select Open Project/Solution and choose the .sln file for the mobile application
  • Configure the backend API address in MauiProgram.cs:
builder.Services.AddSingleton(new HttpClient
            {
                BaseAddress = new Uri("http://192.168.8.X:5048/") // Replace 192.168.8.X with the IP address of the machine running the REST API server
            });
  • In the Build menu, select Build Solution to compile the project
  • Run the project using the Start button or F5
  • The application will launch in the selected emulator or connected mobile device

Application preview

Homepage: Homepage

Login panel: Login panel

New reservation form: New reservation form

'Reservations' tab: Reservations tab

Admin panel: Admin panel

About

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

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages