Estimated Presentation Time: 15-20 minutes
Title: CityBike Analytics Platform - Bike-Sharing Data Analysis
Subtitle: A Python Project Demonstrating OOP, Design Patterns & Data Science
Your Name:
Date: February 10, 2026
Repository: github.com/mutabazi105/citybike-capstone
What is CityBike?
- Analytics system for a bike-sharing service
- Analyzes 100+ trips across 10 stations
- Generates insights about usage patterns
Key Achievement:
✅ 9 Python modules (3,500+ lines of code)
✅ 14 business analytics questions
✅ 10+ professional visualizations
✅ Custom algorithms with performance analysis
Talking Points:
- "This project shows how real data analysis works"
- "We process raw data through a complete pipeline"
- "From loading to visualizations in one system"
The Challenge: A bike-sharing company needs to:
- Understand which stations are most popular
- Identify peak usage times
- Track maintenance costs
- Improve service based on data
Why This Matters:
- Optimize bike placement
- Plan maintenance schedules
- Predict demand
- Make data-driven decisions
Talking Points:
- "Many companies face similar data challenges"
- "This project demonstrates real-world problem solving"
- "From data to actionable insights"
System Design:
┌─────────────────────────────┐
│ Data Entry Point │
│ (CitibikeMain.py) │
└──────────────┬──────────────┘
│
┌────────┼────────┐
▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────────┐
│Models│ │Parser│ │Factories │
└──────┘ └──────┘ └──────────┘
│ │ │
└────────┼────────┘
▼
┌──────────┐
│Analyzer │ ← 14 Queries
└──────────┘
│ │ │ │
┌────┴──┴──┴──┴────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
Calc Algo Numer Price Vizu
Talking Points:
- "System is organized in layers"
- "Each module has clear responsibility"
- "Easy to maintain and extend"
- "Shows professional software design"
Programming Tools:
| Technology | Purpose |
|---|---|
| Python 3.8+ | Core language |
| Pandas | Data loading & cleaning |
| NumPy | Statistical computing |
| Matplotlib | Data visualization |
| Git | Version control |
Why These?
- Industry-standard for data science
- Powerful libraries for analysis
- Easy to learn and use
- Wide community support
Talking Points:
- "These are the tools used by data scientists worldwide"
- "Shows I understand modern tech stack"
- "Perfect for data analysis projects"
Purpose: Define business entities
Key Classes:
Entity (Abstract)
├── Bike
│ ├── ClassicBike
│ └── ElectricBike
│
├── User
│ ├── CasualUser
│ └── MemberUser
│
├── Station
├── Trip
└── MaintenanceRecord
Features:
- ✅ Inheritance (DRY principle)
- ✅ Encapsulation (properties)
- ✅ Validation (error checking)
- ✅ Type hints
Code Example:
bike.is_available = False # ✓ Works
bike.bike_id = -1 # ✗ Raises error (validation!)Talking Points:
- "Uses OOP to model real-world concepts"
- "Each class represents something from bike-sharing world"
- "Validation ensures data quality"
- "Inheritance reduces code duplication"
Purpose: Create objects flexibly
Factory Pattern:
# Without factory (bad)
if type == "classic":
bike = ClassicBike(...)
elif type == "electric":
bike = ElectricBike(...)
# With factory (good)
bike = create_bike("classic", ...)Benefits:
- ✅ Centralized creation logic
- ✅ Easy to modify
- ✅ No code duplication
- ✅ Professional design pattern
Talking Points:
- "Design patterns are reusable solutions"
- "Factory pattern is used in major frameworks"
- "Shows I understand software design"
Purpose: Answer 14 business questions
The 14 Questions:
1. Total trips, distance, avg duration
2. Most popular start stations
3. Peak hours during day
4. Busiest day of week
5. Average distance by user type
6. Bike utilization rate
7. Monthly ridership trend
8. Top 15 active users
9. Maintenance cost by bike type
10. Popular routes (origin-destination)
11. Trip completion rate
12. Average trips per user
13. High-maintenance bikes
14. Outlier trips (unusual patterns)
Example Q2 Results:
Top Stations:
1. Harbor View - 14 trips
2. West End - 14 trips
3. University Campus - 12 trips
Talking Points:
- "Real business questions need answers"
- "Data science is about insights"
- "Each question drives business decisions"
- "System automates complex analysis"
Purpose: Sorting and searching with Big-O analysis
Implementations:
Sorting:
• Merge Sort - O(n log n) stable
• Quick Sort - O(n log n) average
Searching:
• Binary Search - O(log n) fast
• Linear Search - O(n) flexible
Benchmark Results:
Sorting 1000 numbers:
Python builtin → 0.2 ms ✓ Fastest
Quick Sort → 4.3 ms
Merge Sort → 4.8 ms
Bubble Sort → 128 ms ✗ Slowest
Talking Points:
- "Algorithm analysis is crucial in CS"
- "Big-O notation shows scalability"
- "Different algorithms for different needs"
- "Benchmarking proves performance"
Purpose: Statistical computing with NumPy
Statistics Calculated:
For Trip Duration:
• Mean: 58.25 minutes
• Median: 53.00 minutes
• Std Dev: 34.48 minutes
• Min: 5 minutes, Max: 119 minutes
• Q1: 31.75, Q3: 88.50
For Trip Distance:
• Mean: 5.71 km
• Median: 5.96 km
• Range: 0.50 - 9.98 km
Advanced Features:
- Outlier detection (Z-score, IQR)
- Distance calculations
- Vectorized operations (fast!)
Talking Points:
- "NumPy makes analysis 1000x faster"
- "Vectorization vs. loops"
- "Professional data science approach"
Purpose: Different pricing models using Strategy Pattern
Pricing Options:
Casual User: €0.30/minute (pay-per-ride)
Member User: €0.18/minute + 45 min free
Peak Hour: +50% surcharge (8-9am, 5-7pm)
Distance-based: €0.80/kilometer
Example Calculation:
Trip: 50 minutes, Member user
Base fare: €0.18 × 50 = €9.00
Free allowance: 45 minutes
Billable: 5 minutes
Final: €0.90
Strategy Pattern Benefits:
- ✅ Add new pricing without changing code
- ✅ Easy to switch between strategies
- ✅ Professional design pattern
Talking Points:
- "Real businesses have complex pricing"
- "Strategy pattern makes it flexible"
- "Easy to test different business models"
10+ Professional Charts:
1. Top Stations (Bar)
2. Monthly Trend (Line)
3. Duration Distribution (Histogram)
4. Distance Distribution (Histogram)
5. User Type Comparison (Box Plot)
6. Bike Type Comparison (Box Plot)
7. Trip Status (Pie)
8. Maintenance Cost (Bar)
9. Maintenance Types (Bar)
10. Hourly Usage Pattern (Line)
Chart Characteristics:
- ✅ Professional styling
- ✅ Proper labels & legends
- ✅ High-resolution PNG
- ✅ Ready for presentations
Talking Points:
- "Data visualization tells the story"
- "Charts show patterns that numbers hide"
- "All charts are publication-ready"
- [Demo: Show 2-3 charts from output/figures/]
Complete Workflow:
Step 1: Load Data
↓
Step 2: Clean & Validate
↓
Step 3: Export Cleaned Data
↓
Step 4: Numerical Analysis
↓
Step 5: Algorithm Benchmarks
↓
Step 6: Business Analytics
↓
Step 7: Visualizations
↓
Step 8: Generate Reports
What Each Step Does:
- Load: Read 3 CSV files
- Clean: Remove errors, duplicates
- Analyze: Answer questions
- Visualize: Create charts
- Report: Export results
Talking Points:
- "Pipeline ensures consistency"
- "Automated process"
- "Can run repeatedly"
- "Real production workflow"
Live Demo (or show console output):
$ python -m citybike.main
======================================================================
CITYBIKE BIKE-SHARING ANALYTICS PLATFORM
======================================================================
Started: 2026-02-10 10:08:54
► Step 1: Initializing System
✓ BikeShareSystem initialized
► Step 2: Loading Raw Data
✓ Data loaded successfully
Trips: 100 records
Stations: 10 records
Maintenance: 30 records
[... continues ...]
► Step 8: Generating Visualizations
✓ Generated 10 charts successfully
======================================================================
ANALYTICS PIPELINE COMPLETE ✓
======================================================================
Generated Files:
• output/figures/ (10 PNG charts)
• output/summary_report.txt
• output/top_users.csv
• output/top_routes.csvShow the Output:
- 📊 Point to charts folder
- 📝 Show summary report
- 📋 Show CSV exports
Talking Points:
- "Project runs in seconds"
- "All outputs are generated automatically"
- "Everything is saved for later use"
What Makes This Project Great:
✅ Object-Oriented Programming
- Classes with inheritance
- Polymorphism, encapsulation
✅ Design Patterns
- Factory Pattern
- Strategy Pattern
- Well-organized architecture
✅ Data Science
- Pandas for data manipulation
- NumPy for statistical analysis
- 14 business insights
✅ Professional Code
- Comprehensive documentation
- Type hints throughout
- Clean, readable code
- Git version control
What I Learned Building This Project:
-
OOP Principles
- Inheritance, polymorphism, encapsulation
- Abstract base classes
- Property decorators
-
Design Patterns
- Factory Pattern for flexibility
- Strategy Pattern for algorithms
- When and why to use each
-
Data Science Workflow
- Loading and cleaning data
- Statistical analysis
- Data visualization
-
Custom Algorithms
- Implementation from scratch
- Big-O complexity analysis
- Performance optimization
-
Professional Practices
- Code organization
- Documentation
- Version control
- Testing
Challenge 1: Data Quality
- Problem: Missing values, duplicates, invalid formats
- Solution: Comprehensive DataCleaner class
Challenge 2: Complex Analysis
- Problem: 14 different queries on same data
- Solution: BikeShareSystem orchestrator
Challenge 3: Performance
- Problem: Slow calculations on large datasets
- Solution: NumPy vectorization
Challenge 4: Code Organization
- Problem: Too many responsibilities in one file
- Solution: Separate modules by concern
Talking Points:
- "Real projects have real challenges"
- "Professional solutions to problems"
- "Iterative improvement mindset"
By The Numbers:
Code:
• 3,500+ lines of production code
• 9 modules
• 25+ classes
• 100+ methods
• Type hints on all functions
Documentation:
• Comprehensive docstrings
• Inline comments
• README with examples
• 50-page design guide
Data:
• 100 trip records
• 10 stations
• 30 maintenance records
• 14 analytics queries
• 10+ visualizations
Version Control:
• 20 git commits
• Meaningful commit messages
• Complete commit history
Project on GitHub:
Repository: https://github.com/mutabazi105/citybike-capstone
What's Included:
- ✅ All source code
- ✅ Complete documentation
- ✅ Sample data files
- ✅ Example outputs
- ✅ Instructions to run
How to Access:
- Visit the repository
- Click "Code" → "Download ZIP"
- Or:
git clone https://github.com/mutabazi105/citybike-capstone.git - Follow README instructions
Talking Points:
- "Professional portfolio project"
- "Ready for employers to review"
- "Shows real-world development skills"
Possible Improvements:
📊 More Analytics:
• Predictive modeling
• Demand forecasting
• Anomaly detection
🔧 Features:
• Web dashboard
• Real-time updates
• User interface
📈 Scale:
• Handle millions of trips
• Multiple cities
• Real database backend
🤖 Advanced:
• Machine learning models
• Recommendation engine
• Mobile app
Talking Points:
- "Project is extensible"
- "Foundation for larger systems"
- "Shows architecture scalability"
Summary:
CityBike Analytics Platform demonstrates:
✅ Strong understanding of Object-Oriented Programming
✅ Knowledge of Software Design Patterns
✅ Practical Data Science skills
✅ Algorithm implementation and analysis
✅ Professional Software Engineering practices
Key Takeaway: "This project shows how to build a real data analysis system from scratch, using industry-standard practices and libraries."
Be Ready to Discuss:
Technical Questions:
-
"Why did you use Factory Pattern?"
- Answer: Simplifies object creation, professional design
-
"How does Strategy Pattern work?"
- Answer: Encapsulates different algorithms with same interface
-
"Why NumPy instead of lists?"
- Answer: Vectorization is 1000x faster
-
"How would you add new analytics?"
- Answer: Add new method to BikeShareSystem class
Project Questions:
-
"What was the hardest part?"
- Answer: Data cleaning and validation rules
-
"How long did this take?"
- Answer: Several weeks of development
-
"Would you change anything?"
- Answer: [Your honest answer]
Before presenting, make sure you:
Preparation:
- Practice presentation 2-3 times
- Know all the code and can explain it
- Prepare live demo or have console output ready
- Practice transitioning between slides
- Know the answers to likely questions
Presentation:
- Have laptop ready with project open
- Test projector/screen sharing
- Have backup (USB, cloud) of presentation
- Bring notes (bullet points, not full sentences)
- Wear professional clothing
During:
- Make eye contact with audience
- Speak clearly and at steady pace
- Don't read slides directly
- Use pointer for important items
- Pause for questions
Slides to Show:
- Show architecture diagram
- Show 2-3 charts from output
- Demo the running project
- Show GitHub repository
- Show code snippets (briefly)
- Slide 1-2: Project intro (2 min)
- Slide 3-4: Problem & architecture (2 min)
- Slide 5-12: Modules overview (6 min)
- Slide 13: Pipeline (1 min)
- Slide 14: Live demo (2 min)
- Slide 15-18: Summary of features (3 min)
- Slide 19-20: GitHub & future (2 min)
- Slide 21-22: Conclusion & Q&A (2 min)
Total: ~20 minutes
-
Start Strong: "This project demonstrates how real data scientists work"
-
For Each Module:
- What problem does it solve?
- What technology does it use?
- Why is it designed this way?
-
Emphasize:
- OOP and Design Patterns (professional skills)
- Data cleaning (real-world challenge)
- Automated pipeline (production-ready)
- 14 business insights (real value)
-
Be Honest:
- What you found challenging
- What you learned
- What you'd do differently
- Future improvements
-
Connect to Learning:
- How this project improved your skills
- What OOP/design patterns mean
- Why data science matters
- Professional development
✅ DO:
- Speak with confidence
- Make eye contact
- Use pauses effectively
- Point to specific parts
- Invite questions
- Explain why, not just what
- Show enthusiasm
✗ DON'T:
- Read slides directly
- Stand in front of screen
- Rush through content
- Use too many words
- Make excuses
- Apologize for code
- Speak too fast or too slow
Opening: "Hello everyone. Today I'm presenting my capstone project: CityBike Analytics Platform. This is a complete data analysis system that processes bike-sharing information and generates actionable insights. I'll walk you through the architecture, show you some results, and explain the software engineering principles I used."
Middle: "This module uses the Factory Pattern, which is a professional design pattern. Instead of creating objects directly in scattered places, we centralize the logic here. If we need to change how objects are created, we only modify this one file. This is much better than duplicating the logic everywhere."
Live Demo: "Now I'm going to run the project live. Watch as it loads data from three CSV files, cleans everything, runs 14 different analytics queries, creates visualizations, and exports reports—all in about 10 seconds."
Closing: "This project taught me that good software design isn't just about making things work—it's about making things that are readable, maintainable, and scalable. The design patterns and OOP principles I used here aren't just academic; they're used in real production systems every day."
Good Luck with Your Presentation! 🎤
You've got this! Your project is impressive and you should be proud of it.