Inspiration

How often do your favorite websites derail your fitness plans?

Social Media Netflix
For us, it was too often! But on our respective journeys to health, we found social media and online video binging to be a better reward for a hard workout than cookies (or cakes or carbs). However, unlike delicious starches, social media and online video binging was easily accessible for us at all times- which didn't make it much of a reward.

What it does

Demo Gif
1. Syncs up with your Fitbit account to keep track of your Step Goal.

2. Runs locally on your computer and blocks popular websites such as Reddit.com, Facebook.com, and Netflix.com until you have achieved your Fitbit Step Goal.

3. Shows you your progress when you try to access a forbidden website to keep you motivated.

4. Unblocks the websites as soon as you've achieved your step goal!

How we built it

  • The project is built in Python, HTML, CSS, and Javascript but is mostly Python. I always use large frameworks like MEAN or LAMP or Meteor or Django so I wanted to switch it up and write my own bare metal server this time. The result is an ultralight “server” that’s closer to a raw socket than Django.

  • Running concurrently on a separate thread is a daemon that interfaces with the FitBit API, OAuth2, and the local filesystem to pull FitBit data and apply the appropriate site blocking through the hosts file. This allows us to redirect users from blocked sites to our friendly reminder page.

  • Upon the recommendation of a Firebase developer who told me to “Use Firebase RIGHT NOW”, we also used Firebase instead of the local filesystem for storage of ephemeral data.

Challenges we ran into

  • Authentication and setting up OAUTH for the first time
  • Setting up and maintaining a bare-bones server

Accomplishments that we're proud of

  • Having a working, end-to-end product that is ready for sale and distribution
  • Successful integration with the Fitbit API to ensure blocked sites rendering to inform us how many steps taken
  • Kate not being able to use Facebook or Reddit in the last 24 hours (well it is a hackathon, how many steps do you think I walked?)

What we learned

  • How to deal with HOSTS file
  • How to integrate with OAUTH
  • How to use the Fitbit API

What's next for Reward Fit

  • Polishing our product
  • Getting it ready for sale on the Mac App store
  • Creating a Windows version
  • Cohort analysis
  • New features such as creating milestones within your chosen goal, and custom blocked websites
  • Minimal funding to maintain domains, etc.
  • Follow our progress at www.rewardingfitness.com and download it here today if Github isn't your thing!
Share this project:

Updates