Skip to content

Repository files navigation

Tramintel

Real-time Zurich tram departure board for Raspberry Pi display. Almost 100% vibe-coded.

Screenshot

Features

  • Real-time delays from official GTFS-RT API
  • Two stops: Roswiesen (Line 7) and Heerenwiesen (Line 9)
  • Live countdown showing minutes until actual departure
  • Auto-refresh every 30 seconds
  • Clean interface optimized for always-on display

Setup

  1. Install dependencies:

    pnpm install
  2. Create .env file with your GTFS-RT API key:

    cp .env.example .env

    Get your API key from opentransportdata.swiss

  3. Start the server:

    node server.js
  4. Open http://localhost:3000

Raspberry Pi Deployment

See RASPBERRY_PI.md for complete instructions on deploying to Raspberry Pi with auto-start and kiosk mode.

Configuration

Edit server.js to change stops and lines:

const STOPS = {
  roswiesen: {
    name: 'Roswiesen',
    stopId: '8591325:0:10000',
    line: '7'
  },
  heerenwiesen: {
    name: 'Heerenwiesen',
    stopId: '8591181:0:10001',
    line: '9'
  }
};

Data Sources

  • Schedules: transport.opendata.ch
  • Real-time delays: opentransportdata.swiss GTFS-RT API

License

MIT

About

Real-time Zurich tram departure board for Raspberry Pi display

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages