DDPlan - A modern menubar application built with Electron, Angular and dvbjs that provides real-time timetables for trams, buses and trains in Dresden, Germany.
| Light Theme | Dark Theme |
|---|---|
![]() | ![]() |
- π Real-time departure information for Dresden public transport
- β Favorite stops management
- π Light and dark theme support
- π Smart stop search with autocomplete
- π± Clean, modern interface
Ready to use DDPlan? Download the latest version for your platform:
Available for:
- π macOS -
.dmginstaller - π§ Linux -
.AppImage,.deb,.rpmpackages - πͺ Windows -
.exeinstaller
Note: The app is not code-signed, so you may need to allow it in your system's security settings when running for the first time.
- Node.js (version 18 or higher recommended)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/4gray/ddplan.git cd ddplan -
Install dependencies
npm install
npm start # or npm run start:ngThis starts the Angular development server at http://localhost:4200
npm run start:devThis runs both Angular dev server and Electron in development mode with hot reload.
npm run start:electronThis builds the Angular app and starts Electron.
npm run build # or for Electron npm run build:ngnpm run package:electronThis creates distributable packages for your current platform.
For specific platforms:
# macOS npm run package:electron -- --mac # Linux npm run package:electron -- --linux # Windows npm run package:electron -- --winnpm run watchThis project uses GitHub Actions for automated building and packaging:
- Pull Requests: Automatically builds and tests the app for all platforms
- Tagged Releases: Creates release artifacts for macOS, Linux, and Windows
- Manual Builds: Can be triggered via workflow dispatch
The CI/CD pipeline:
- Builds the Angular app
- Runs linting checks
- Packages Electron apps for all platforms
- Uploads build artifacts
- Creates GitHub releases for tagged versions
src/ βββ app/ β βββ components/ # Angular components β β βββ favorites/ # Favorites management β β βββ header/ # App header β β βββ plan-list/ # Departure times display β β βββ search-field/ # Stop search functionality β β βββ settings/ # App settings β β βββ sidebar/ # Navigation sidebar β β βββ welcome-screen/ # Initial welcome screen β βββ interfaces/ # TypeScript interfaces β βββ services/ # Angular services β βββ app.config.ts # App configuration β βββ app.ts # Main app component β βββ store.ts # Signal-based state management βββ assets/ # Static assets βββ styles.scss # Global styles - Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source. Please check the LICENSE file for details.
Note: This application is not officially affiliated with Dresden's public transport operator (DVB). It's a community project that uses publicly available transport data.

