Fitness tracking apps have become comprehensive, allowing you to track your physical activity, caloric intake, water consumption, and even your sleeping patterns. Although some applications have become more adept at automatically recognizing physical activity, not all types of exercise correspond to a physical movement that can be tracked by the movement of your phone. This means you'll have to manually enter the workout into your app. Most workout machines these days show you the stats of your workout on their console. What if instead of opening a form and filling out a bunch of text fields, you could just snap a photo of your workout console instead?
What it does
Fitty is a lightweight, mobile-first web application that makes tracking your workouts easier. Just snap a photo of your workout machine's console after you finish exercising. After you've signed up and logged in, Fitty will use Google Cloud Vision's image content analysis API to parse out the contents of your photo and send the data off to your preferred fitness tracking app.
How we built it
Our backend is built using express.js and MongoDB. Our client is driven with HandleBars.js templating and MaterializeCSS. We use passport.js for user authentication. We use Google Cloud Vision's API to analyze the images and post our data using Fitbit's Web API.
Challenges we ran into
Hooking up OAuth2 with Fitbit to be able to post the data we mined was a challenge. This was also our first time working with Google Cloud Vision, so understanding and parsing that output was another item we spent some time on.
Accomplishments that we're proud of
Having an app that works on an end-to-end workflow. A user can sign up, log in, link their FitBit account, and be ready to snap photos and transfer them to FitBit. The app also internally keeps track of any workouts you've logged.
What we learned
It's good to have a solid software stack that you're comfortable with, and build up components slowly. We incrementally implemented and tested our application which means we always had a good idea of where and when things went wrong when we ran into bugs.
What's next for Fitty
Adding support for more fitness applications! Right now we only work with Fitbit, but we want to add support for integrating with Google Fit and Apple Health.