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 -
.dmg
installer - 🐧 Linux -
.AppImage
,.deb
,.rpm
packages - 🪟 Windows -
.exe
installer
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:ng
This starts the Angular development server at http://localhost:4200
npm run start:dev
This runs both Angular dev server and Electron in development mode with hot reload.
npm run start:electron
This builds the Angular app and starts Electron.
npm run build
# or for Electron
npm run build:ng
npm run package:electron
This 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 -- --win
npm run watch
This 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.