Skip to content

SpeeDD - Smarter Commutes: Real‑time Bus ETA & Queue Prediction

License

Notifications You must be signed in to change notification settings

jim-books/speeDD

Repository files navigation

SpeeDD

SpeeDD Logo

Smarter Commutes: Real‑time Bus ETA & Queue Prediction


📌 Table of Contents


🎯 About

Most transport apps only tell you when a bus will arrive — but not whether you’ll be able to board it. At peak times, queues mean you might wait for the second (or third) bus, making those ETAs unreliable.

SpeeDD fixes this by combining:

  • Real‑time bus ETAs
  • Live queue length data
  • Predictions of which bus you’ll actually board

This delivers a more accurate total journey time, including queueing.

Currently configured for:
🚌 HKUST South Gate → Choi Hung MTR (minibus route 11)

App Screenshot 1

App Screenshot 2


✨ Features

  • Smarter ETAs – See upcoming buses and which one you can realistically board.
  • Queue Awareness – Live number of people at the stop.
  • Time Breakdown – Clear view of Queue Time, Travel Time, and Total Journey.
  • Queue Tracking – Track position on an interactive MapKit view, with manual updates available.
  • Automatic Adjustments – Queue shifts update when buses depart.
  • SwiftUI Interface – Clean, modern design built natively with SwiftUI.

🛠 Tech Stack

  • UI: SwiftUI
  • Language: Swift 5
  • Architecture: MVVM (Model‑View‑ViewModel)
  • Async Data: Combine
  • Networking: URLSession
  • State Management: SwiftUI (@State, @ObservedObject, @Binding)
  • Maps: MapKit integration

🎮 Live Demo

You can try SpeeDD instantly in your browser via Appetize.io:

Run SpeeDD


Embedded Preview

You can also launch the app directly here using the embedded iPhone 14 Pro simulator:

<iframe src="https://appetize.io/embed/b_6kednwnjvk5w5clzd5lisuok5e?device=iphone14pro&osVersion=18.2&scale=75&orientation=portrait&iosVersion=18.2" width="420" height="880" frameborder="0" scrolling="no"></iframe>

🚀 Getting Started

Requirements

  • macOS 12.0+
  • Xcode 14.0+
  • Swift 5.7+

Installation

  1. Clone the repo
    git clone https://github.com/your_username/SpeeDD.git
    cd SpeeDD
  2. Open in Xcode
    open SpeeDD.xcodeproj
  3. Run the app
    • Choose an iOS Simulator (e.g. iPhone 15 Pro) or a connected device.
    • Press Cmd + R to build and run.

⚠️ Note: Functionality depends on external API:
http://yeet.esy.es/real_time.json

If the API is unavailable or changes format, predictions may not work.


📂 Project Structure

SpeeDD/
├── SpeeDDApp.swift          # App entry point, splash logic
│
├── Views/                   # SwiftUI interfaces
│   ├── SearchResultsView.swift 
│   ├── QueueTrackingView.swift
│   ├── UpdatePositionView.swift
│   └── HomeView.swift (archived concept)
│
├── ViewModels/
│   └── PredictionViewModel.swift  # Data fetching + business logic
│
├── Models/
│   └── Prediction.swift     # Codable API response model
│
└── Assets.xcassets/         # Images, icons, colors

🤝 Contributing

We’d love your help! Contributions make the project stronger.

To contribute:

  1. Fork the repo
  2. Create a feature branch
    git checkout -b feature/MyAmazingFeature
  3. Commit your changes
    git commit -m "Add amazing feature"
  4. Push to your branch
    git push origin feature/MyAmazingFeature
  5. Open a Pull Request 🎉

📄 License

Distributed under the MIT License. See LICENSE.txt for details.


Crafted with ❤️ for the SpeeDD Project

About

SpeeDD - Smarter Commutes: Real‑time Bus ETA & Queue Prediction

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages