Skip to content
to0onyPublic

About

GTFS timetable editor: stops, routes and trips on a map, GTFS import/export, departure boards and PDF timetables.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

195 Commits

Folders and files

Repository files navigation

Terminus – GTFS editor

Izrada, objava i prikaz voznih redova javnog prijevoza u formatu GTFS.

Build & Test .NET 10 PostgreSQL 13+ React 19 TypeScript 5.9 GTFS Schedule


Terminus je aplikacija u kojoj prijevoznik vodi stanice, linije, kalendare i vožnje, iz njih izvozi GTFS feed za Google Maps i druge aplikacije, a putnicima prikazuje polaske na zaslonima stanica, karti uživo i ispisanim voznim redovima.

Terminus je single-tenant: svaka tvrtka (npr. gradski prijevoznik) dobiva vlastitu instancu i bazu. Unutar instance može postojati više prijevoznika (GTFS agency), a svaka linija pripada jednom od njih.

Snimke zaslona

Dashboard

Karta uživo s trasom linije
Karta uživo – stanice, trase i vozila prema voznom redu
Grafikon voznog reda linije
Grafikon voznog reda – uređivanje vožnji linije
GTFS uvoz i izvoz
GTFS – provjera podataka, uvoz i izvoz feeda

Na stanici

Zaslon polazaka na stanici
Zaslon polazaka – sljedeći polasci za ekrane na stanicama i mobitele
Ispisani vozni red na stanici
PDF vozni red – za ispis na stanicama

Mogućnosti

Za prijevoznika

  • Stanice, linije i varijante uređuju se na karti; trase se crtaju po cestama i prugama iz OpenStreetMapa.
  • Sezone voznog reda s tipovima dana, praznicima i raspustima, a vožnje se uređuju u grafikonu voznog reda.
  • Uvoz postojećeg GTFS feeda i izvoz s provjerama, po izboru i kao javni feed.
  • PDF vozni red stanice (A4 ili A3, hrvatski ili engleski) s QR kodom na zaslon stanice.
  • Naziv, boje i logo prijevoznika na javnim stranicama i PDF-u.

Za putnike

  • Zaslon polazaka za ekrane na stanicama i mobitele.
  • Javna karta uživo s vozilima prema voznom redu.
  • Javni API polazaka i GTFS feeda.

Što je u planu, vidi u roadmapu.

Tehnologije

Dio Tehnologije
Backend ASP.NET Core Web API (.NET 10), Entity Framework Core 10, ASP.NET Core Identity
Baza PostgreSQL
PDF QuestPDF
Frontend React 19, TypeScript, Vite, Mantine, TanStack Query, MapLibre GL
Testovi xUnit (backend), Vitest (frontend)
CI GitHub Actions

Struktura repozitorija

terminus/
├── backend/    .NET rješenje: Web API, servisi, pristup podacima, testovi
├── frontend/   dashboard, javni zaslon stanice i karta (React)
└── docs/       dokumentacija

Brzi početak

Preduvjeti: .NET 10 SDK, PostgreSQL 13+, dotnet-ef i Node.js 22+.

cd backend
dotnet user-secrets set "ConnectionStrings:Default" "Host=localhost;Database=terminus;Username=postgres;Password=<lozinka>" --project Terminus.WebApi
dotnet user-secrets set "Admin:Email" "admin@example.com" --project Terminus.WebApi
dotnet user-secrets set "Admin:Password" "<barem 10 znakova>" --project Terminus.WebApi
dotnet ef database update --project Terminus.DAL --startup-project Terminus.WebApi
dotnet run --project Terminus.WebApi --launch-profile http   # http://localhost:5183
cd frontend
npm install
npm run dev    # http://localhost:5173

Nakon prijave čarobnjak nudi uvoz GTFS-a ili početak od nule. Konfiguracija, testovi i migracije opisani su u lokalnom razvoju.

Dokumentacija

Dokument Sadržaj
Roadmap stanje, faze razvoja i otvorena pitanja
Lokalni razvoj postavljanje, konfiguracija, testovi, migracije
Arhitektura backend slojevi, tok zahtjeva, obrada grešaka
Frontend stranice, struktura, rute i pozivi API-ja
API prijava, endpointi, javni API, greške
Model podataka i GTFS tablice, podržana GTFS polja, pravila
GTFS uvoz i izvoz izvještaj, provjere, sadržaj feeda
Polasci, zaslon i PDF izračun polazaka, zaslon na stanici, PDF vozni red
Shema baze SQL shema s komentarima

About

GTFS timetable editor: stops, routes and trips on a map, GTFS import/export, departure boards and PDF timetables.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages