/fitrpg-ionic

Primary LanguageJavaScript

Get it on Google Play Get it on the App Store

FitRPG is a mobile app created by Amira Anuar, Matt Gutierrez, and Conor Fennell at Hack Reactor. FitRPG transforms a Fitbit user's data into a character that can fight friends, battle bosses, and go on quests using the steps, distance, and sleep tracked by the Fitbit. The game logic seeks to motivate users to stay fit and challenge themselves to go that extra mile in order to win a battle or complete a quest.

Featured On

* [Lifehacker](http://lifehacker.com/fitrpg-turns-your-fitbit-into-a-game-you-play-with-frie-1602140820)

Tech Stack

* [Ionic Framework](http://ionicframework.com/) * [AngularJS](https://angularjs.org/) * [Node.js](http://nodejs.org/) * [Express.js](http://expressjs.com/) * [MongoDB](http://www.mongodb.org/)

Code Base

* [Client side](https://github.com/fitrpg/fitrpg-ionic) * [Server side](https://github.com/fitrpg/fitrpg-server)

Challenges:

  • User flow during fitbit OAuth
    • Originally we wanted to do the OAuth login client side on the app. But due to fitbit using OAuth 1.0 and not allowing CORS or JSONP, it had to be done server side. This was a challenge since the server redirects your app during the OAuth process and takes you out of the app context. We had to find a way to keep this redirect within the app and inform the app if the authentication was successful. Read our blog post here on how we implemented the client-side portion of authentication via Ionic.
  • Game logic design
    • Balancing how sleep, steps and other activities relate to the characters attributes and making sure one is not more effective than other attributes.
  • User interface design
    • A game can have a lot of different options and views, reducing and compressing these views and making them innutaive is a challenge.
  • Security
    • Implementing json web tokens
    • OAuth

Upcoming Features

* Push Notfications * Versus Missions * Jawbone Support