Overview
Bike geometry is changing as we get more advanced about building bikes. Like shoes, a size 9 with one company isn't the same as a size 9 in another. The Bike Fit Calculator uses the Rider Area Distance (RAD) measurement system to match riders with bikes that truly fit them, regardless of manufacturer or nominal size label.
The Problem
Challenge
Bike geometry is changing: Mediums don't fit like they used to. Like shoes, you have to wear them to know if they fit. If you live in Texas, where mountain biking is not a major recreation, demoing bikes is hard to come by.
Key Industry Standards
- Geometry Charts: All bike manufacturers list geometry charts on their website for all sizes and all bikes
- RAD Measurement: A mountain bike coach developed the Rider Area Distance (RAD) measurement on a bike and a person
- Matching Principle: A rider has a RAD measurement, a bike has a RAD measurement - those two measurements should equal:
RAD(Rider) = RAD(Bike)
Vision & Solution
Build a bike fit calculator with a database where people can type in their RAD number and retrieve all the bikes and their sizes and setups (handlebar widths, stem lengths, etc.) that would fit that rider. This could be used by bike shops and individuals alike to find the right bike for the rider.
Key Challenge
- Intellectual Property: RAD was intellectual property of the mountain bike coach, and I needed to get approval and work with him to achieve this vision
- Learning Curve: I was new to Python, but this was a great inspirational project to learn
Development Process
MVP: Python Script
Designed a Python script that contained all the formulas and had input values for bike geometry to calculate a RAD number.
Phase 2: Modular Functions
Script was broken down into several functions for better maintainability and reusability.
Phase 3: Serverless Architecture
Converted the script into a serverless Lambda function in AWS for scalability and cost-efficiency.
Additional Development
- Database Implementation: Built a database so users could also contribute to the collection of data
- Frontend Integration: Created a front-end that fed from a GitHub repo and sent API calls to Lambda code
- Automation Script: Built an automation script to pull several bike geo-charts and plug them into the front end to contribute to the database build
Python
AWS Lambda
AWS
JSON
API
GitHub
Serverless
Impact
A friend and I used this to purchase our next bikes with size-fit success. The calculator accurately matched us with bikes that fit perfectly, eliminating the guesswork and need for extensive test rides.
✓
Successful Bike Purchases
Serverless
AWS Architecture
Key Learnings
- Python Development: Learned Python from scratch through a practical, meaningful project
- Serverless Architecture: Gained experience with AWS Lambda and serverless computing patterns
- API Development: Built and integrated API calls between frontend and backend services
- Data Automation: Created scripts to automate data collection and database population
- IP Collaboration: Worked with intellectual property holders to bring a vision to life
- Bike Geometry Understanding: Deep dive into bike geometry standards and RAD measurement system