Note: ByCycle is intended to be used on smartphones as people usually tend to have their phones while they cycle, not their laptops!


A lot of people use bicycles almost everyday as their main means of commute. Using our bicycles so often made us realize that not only is the bicycle a very convenient means of transportation, but it is also environmentally friendly. Therefore, we created ByCycle to reduce greenhouse emissions from motor vehicles by promoting swapping from cars and motorcycles to cycles when possible. Furthermore, promoting cycling is also a healthier alternative to driving and can fight against rising obesity in the world.

What it does

The web application ByCycle is essentially a distance tracker which tracks the total distance cycled by a user. The user can start tracking at the start of their cycling and end tracking at the end. This allows ByCycle to render the distance travelled and put it up for comparison with the rest of the users on a global leaderboard. The purpose of a global leaderboard is to further promote cycling by adding a component of competition to incentivize users to cycle more.

How we built it

ByCycle was constructed using the Python Flask and Jinja web app framework. HTML and CSS were used to style the web pages. Javascript, Ajax, and the Javascript Geolocation API were used to create the distance tracking program. The database was created and updated using sqlite.

Challenges we ran into

ByCycle includes a login page linked to Google which was extremely strenuous to code as it required languages/modules such as Google Oath that we weren’t fully knowledgeable in. Another major challenge we ran into was getting the web app to work on smartphones (Javascript Ajax seems to work differently on smartphones) which also was extremely time consuming. However, after approximately an hour of bug-fixing, it was working on smartphones too.

Accomplishments that we're proud of

We're proud to have successfully created the web app we desired to create in its entirety. We're also proud that we were able to coordinate effectively, although there was some chaos at the start, and split roles well so that we could finish the project in time. Familiarizing ourselves with Flask was also something we will take away from this project.

What we learned

The biggest thing we learned through this coding project was the importance of communication in group projects. If we had better communication as a group from the start, we could have finished ByCycle faster and maybe have improved it aesthetic or added more features. Another thing we learned was to not think too complicatedly and find an idea which is simple instead of coming up with an idea which in theory is very impressive, but in reality very hard to code; to think realistically not ambitiously.

What's next for ByCycle

We considered creating "friend leagues" in addition to the global leaderboard, but given the timeframe we had, we didn't follow through with adding this component to our app. In the future though, we hope to add this feature and make ByCycle even more fun for users!

Share this project: