{"id":47666731,"url":"https://github.com/wersosn/srtk-web","last_synced_at":"2026-04-02T12:00:52.162Z","repository":{"id":346566439,"uuid":"1014281809","full_name":"wersosn/srtk-web","owner":"wersosn","description":"A comprehensive system for managing cycling track reservations, featuring user authentication, real-time availability, calendar-based bookings, and administrative controls (server \u0026 web app)","archived":false,"fork":false,"pushed_at":"2026-03-24T11:59:33.000Z","size":2098,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-25T15:13:45.746Z","etag":null,"topics":["csharp","dotnet-core-web-api","jwt-authentication","playwright","postgresql","react-vite-typescript","xunit"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wersosn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-05T12:04:52.000Z","updated_at":"2026-03-24T11:59:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/wersosn/srtk-web","commit_stats":null,"previous_names":["wersosn/srtk-web"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/wersosn/srtk-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wersosn%2Fsrtk-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wersosn%2Fsrtk-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wersosn%2Fsrtk-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wersosn%2Fsrtk-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wersosn","download_url":"https://codeload.github.com/wersosn/srtk-web/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wersosn%2Fsrtk-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet-core-web-api","jwt-authentication","playwright","postgresql","react-vite-typescript","xunit"],"created_at":"2026-04-02T12:00:20.924Z","updated_at":"2026-04-02T12:00:52.155Z","avatar_url":"https://github.com/wersosn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Mobile app: [Click here](https://github.com/wersosn/srtk-mobile)  \nVersion: [PL](#system-rezerwacji-toru-kolarskiego) | [ENG](#reservation-system-for-a-cycle-track) \n\n# System rezerwacji toru kolarskiego\nAplikacja jest systemem komputerowym służącym do dokonania rezerwacji toru kolarskiego. \nCelem tego systemu jest umożliwienie dokonania rezerwacji toru użytkownikom prywatnym. \nSkłada się on z następujących elementów: serwera w architekturze REST, aplikacji internetowej oraz aplikacji mobilnej. \nGłó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.\n\n## Spis treści\n- [Funkcjonalności](#funkcjonalności)\n- [Wykorzystane technologie](#wykorzystane-technologie)\n- [Instrukcja instalacji](#instrukcja-instalacji)\n- [Prezentacja aplikacji](#prezentacja-aplikacji)\n\n## Funkcjonalności\n- Autentykacja i autoryzacja użytkownika z pomocą tokenów JWT\n- 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\n- Aktualizacja dostępu torów w czasie rzeczywistym\n- Przeglądanie rezerwacji w formie kalendarza - na stronie głównej oraz w zakładce 'Moje rezerwacje' z rezerwacjami danego użytkownika\n- Historia rezerwacji w dedykowanej zakładce + opcje filtrowania\n- Wysyłanie powiadomień w aplikacji\n- Wysyłanie wiadomości mail, np. przy próbie resetu hasła\n- 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.\n- Logi administracyjne, do ewentualnego podglądu błędów\n- Dwie wersje językowe (polska oraz angielska) + dwa tryby (jasny i ciemny)\n\n## Wykorzystane technologie\n*Backend (serwer REST API)*:\n- C#\n- ASP.NET Core Web API\n- Entity Framework Core\n- PostgreSQL\n- Swagger\n- JWT (do autentykacji)\n- CORS (dostęp do API dla frontendu)\n- xUnit (testy jednostkowe)\n- Serilog (logi)\n\n*Frontend*:\n- React + Vite\n- TypeScript\n- HTML, CSS\n- Axios\n- React Bootstrap\n- FullCalendar\n- i18n\n- Playwright (testy e2e)\n\n## Instrukcja instalacji\n### Serwer REST API:  \n**1. Wymagania:**\n- Zainstalowane [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) (lub nowsze) z obsługą .NET Core\n- Zainstalowany [PostgreSQL](https://www.postgresql.org/download/)\n- Konto z odpowiednimi uprawnieniami do tworzenia bazy danych i tabel\n\n**2. Uruchomienie projektu:**\n- Otwórz Visual Studio\n- Wybierz 'Otwórz projekt/rozwiązanie' i wskaż plik .sln projektu backendowego\n- Skonfiguruj połączenie z bazą danych w pliku appsettings.json:\n```\n\"ConnectionStrings\": {\n    \"DefaultConnection\": \"Host=localhost;Database=srtk;Username=postgres;Password=password\"\n}\n```\n- W menu Build wybierz 'Build Solution', aby skompilować projekt\n- Uruchom projekt przyciskiem 'Start' lub skrótem F5\n- Po uruchomieniu serwera, API będzie dostępne pod adresem http://localhost:5048 wraz z dokumentacją Swagger pod http://localhost:5048/swagger\n\n### Aplikacja internetowa:\n**1. Wymagania:**\n- Zainstalowany [Node.js](https://nodejs.org/en/download)\n- Zainstalowany [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n\n**2. Instalacja i uruchomienie:**\n- Otwórz terminal w katalogu projektu frontendowego\n- Zainstaluj wszystkie zależności:\n```\nnpm install\n```\n- Uruchom aplikację w trybie developerskim:\n```\nnpm run dev\n```\n- Po uruchomieniu aplikacji, aplikacja będzie dostępna w przeglądarce pod adresem http://localhost:5173\n\n## Prezentacja aplikacji\nStrona główna:\n![Strona główna](https://github.com/wersosn/srtk-web/blob/master/images/web-1.png)\n\nPanel rejestracji:\n![Panel rejestracji](https://github.com/wersosn/srtk-web/blob/master/images/web-2.png)\n\nFormularz tworzenia nowej rezerwacji:\n![Formularz tworzenia nowej rezerwacji](https://github.com/wersosn/srtk-web/blob/master/images/web-6.png)\n\nZakładka 'Moje rezerwacje':\n![Zakładka moje rezerwacje](https://github.com/wersosn/srtk-web/blob/master/images/web-7.png)\n\nProfil użytkownika:\n![Profil użytkownika](https://github.com/wersosn/srtk-web/blob/master/images/web-9.png)\n\nPanel administratorski - zakładka do zarządzania rezerwacjami:\n![Panel administratorski](https://github.com/wersosn/srtk-web/blob/master/images/web-16.png)\n\n---\n# Reservation system for a cycle track\nThe application is a computer system designed for booking cycling tracks.\nThe purpose of this system is to allow private users to make track reservations.\nIt consists of the following components: a REST API server, a web application, and a mobile application.\nThe 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.\n\n## Table of contents\n- [Functionalities](#functionalities)\n- [Tech stack](#tech-stack)\n- [Installation guide](#installation-guide)\n- [Application preview](#application-preview)\n\n## Functionalities\n- User authentication and authorization using JWT tokens\n- 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\n- Real-time updates of track availability\n- Viewing reservations in calendar form - on the home page and in the 'My Reservations' tab with the user's reservations\n- Reservation history in a dedicated tab + filtering options\n- Sending in-app notifications\n- Sending email messages, e.g. during password reset attempts\n- Administrator panel with two roles (superadmin and facility-specific admin), allowing management of tracks, equipment, users, etc.\n- Administrative logs for potential error inspection\n- Two language versions (Polish and English) + two UI modes (light and dark)\n\n## Tech stack\n*Backend (REST API server)*:\n- C#\n- ASP.NET Core Web API\n- Entity Framework Core\n- PostgreSQL\n- Swagger\n- JWT (authentication)\n- CORS (API access for the frontend)\n- xUnit (unit tests)\n- Serilog (logs)\n\n*Frontend*:\n- React + Vite\n- TypeScript\n- HTML, CSS\n- Axios\n- React Bootstrap\n- FullCalendar\n- i18n\n- Playwright (e2e tests)\n\n## Installation guide\n### REST API server:  \n**1. Requirements:**\n- Installed [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) (or newer) with .NET Core support\n- Installed [PostgreSQL](https://www.postgresql.org/download/)\n- Account with appropriate permissions to create databases and tables\n\n**2. Running the project:**\n- Open Visual Studio\n- Select 'Open Project/Solution' and choose the backend .sln file\n- Configure the database connection in appsettings.json:\n```\n\"ConnectionStrings\": {\n    \"DefaultConnection\": \"Host=localhost;Database=srtk;Username=postgres;Password=password\"\n}\n```\n- In the Build menu, select 'Build Solution' to compile the project\n- Run the project using the 'Start' button or F5\n- After the server starts, the API will be available at http://localhost:5048 with Swagger documentation at http://localhost:5048/swagger\n\n### Web application:\n**1. Requirements:**\n- Installed [Node.js](https://nodejs.org/en/download)\n- Installed [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n\n**2. Instalacja i uruchomienie:**\n- Open a terminal in the frontend project directory\n- Install all dependencies:\n```\nnpm install\n```\n- Run the application in development mode:\n```\nnpm run dev\n```\n- After starting, the application will be accessible in the browser at http://localhost:5173\n\n## Application preview\nHomepage:\n![Homepage](https://github.com/wersosn/srtk-web/blob/master/images/web-1.png)\n\nRegistration panel:\n![Registration panel](https://github.com/wersosn/srtk-web/blob/master/images/web-2.png)\n\nNew reservation form:\n![New reservation form](https://github.com/wersosn/srtk-web/blob/master/images/web-6.png)\n\n'My Reservations' tab:\n![My reservations tab](https://github.com/wersosn/srtk-web/blob/master/images/web-7.png)\n\nUser profile:\n![User profile](https://github.com/wersosn/srtk-web/blob/master/images/web-9.png)\n\nAdmin panel — reservation management tab:\n![Admin panel](https://github.com/wersosn/srtk-web/blob/master/images/web-16.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwersosn%2Fsrtk-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwersosn%2Fsrtk-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwersosn%2Fsrtk-web/lists"}