A machine learning-based system for predicting bus arrival times in London, UK. This project uses a Bidirectional LSTM neural network to provide accurate predictions for various bus routes.
- Clone the repository:
git clone https://github.com/EthanPisani/WDS_LTC_BUS.git
cd WDS_LTC_BUS/frontend- Install dependencies:
pip install -r requirements.txt- Launch the frontend:
streamlit run frontend.pyAccess the app at http://localhost:8501 in your browser.
To run both backend and frontend services:
- From the root of the repository:
docker-compose up --build- Services:
- Backend at
http://localhost:5240 - Frontend at
http://localhost:5241
This project consists of two main components:
-
Backend API
- Built with Flask
- Handles model predictions
- Provides route and stop information
- Runs on
http://localhost:5240
-
Frontend Application
- Built with Streamlit
- Interactive UI for bus time predictions
- Runs on
http://localhost:5241
WDS_LTC_BUS/
├── backend/ # Flask app and model files
│ ├── app.py
│ ├── Model.py
│ ├── best_model.pth
│ ├── requirements.txt
│ └── ...
├── frontend/ # Streamlit app
│ ├── frontend.py
│ ├── requirements.txt
│ └── ...
├── docker-compose.yml # Multi-container setup
└── README.md
- Real-time bus arrival predictions
- Interactive route/stop selector
- Model performance visualizations
- Mobile-responsive Streamlit frontend
- Machine Learning: PyTorch, Scikit-learn, Pandas, NumPy
- Web Frameworks: Flask (API), Streamlit (Frontend)
- Visualization: Matplotlib, Plotly
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Ethan Pisani
- Henrique Leite
- Hadi Youssef
- Marc Alex Crasto
- Mohannad Salem
- Mollo Hou
- Riley Wong
- Saad Naeem