A Python project for analyzing bike-sharing operations.
- Object-Oriented Programming - Bikes, Stations, Users, and Trips classes
- Data Processing - Loads and cleans CSV files
- Analytics - Answers 14 business questions about bike usage
- Algorithms - Sorting (merge sort, quick sort) and searching (binary search)
- NumPy - Statistical analysis and calculations
- Visualizations - 10+ Matplotlib charts
| # | Milestone | Status |
|---|---|---|
| 1 | Project Structure & Setup | ✅ Complete |
| 2 | Domain Models (OOP) | ✅ Complete |
| 3 | Data Loading & Cleaning | ✅ Complete |
| 4 | Custom Algorithms | ✅ Complete |
| 5 | NumPy Numerical Analysis | ✅ Complete |
| 6 | 14 Business Analytics Queries | ✅ Complete |
| 7 | Matplotlib Visualizations | ✅ Complete |
| 8 | Testing & Documentation | ✅ Complete |
| 9 | Presentation Ready | ✅ Complete |
pip install -r requirements.txtpython -m citybike.mainThis will:
- Load data from
citybike/data/ - Clean and validate the data
- Generate 14 analytics reports
- Create visualizations in
output/figures/ - Export summaries to
output/
citybike/
├── main.py # Run the pipeline
├── models.py # Classes for Bike, Station, User, Trip
├── factories.py # Factory Pattern
├── analyzer.py # Analytics engine
├── algorithms.py # Sorting and searching
├── numerical.py # NumPy calculations
├── pricing.py # Pricing strategies
├── visualization.py # Charts and graphs
└── utils.py # Helper functions
citybike/data/trips.csv- Trip recordscitybike/data/stations.csv- Station informationcitybike/data/maintenance.csv- Maintenance records
output/figures/- Charts (PNG files)output/summary_report.txt- Text reportoutput/top_users.csv- Most active usersoutput/top_routes.csv- Most popular routes
- Python 3.8+
- pandas
- numpy
- matplotlib
- python-dateutil
Bernard Turikumana
GitHub | Project Repository
See Project_Requirements.pdf for complete business and technical specifications.
MIT