{"id":33091730,"url":"https://github.com/fitrpg/fitrpg-ionic","last_synced_at":"2025-11-19T12:01:14.600Z","repository":{"id":17275220,"uuid":"20045110","full_name":"fitrpg/fitrpg-ionic","owner":"fitrpg","description":null,"archived":false,"fork":false,"pushed_at":"2014-07-18T18:32:30.000Z","size":8194,"stargazers_count":95,"open_issues_count":5,"forks_count":14,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-06-20T14:05:41.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fitrpg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-22T02:33:09.000Z","updated_at":"2023-03-10T13:52:31.000Z","dependencies_parsed_at":"2022-09-23T11:52:32.214Z","dependency_job_id":null,"html_url":"https://github.com/fitrpg/fitrpg-ionic","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/fitrpg/fitrpg-ionic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fitrpg%2Ffitrpg-ionic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fitrpg%2Ffitrpg-ionic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fitrpg%2Ffitrpg-ionic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fitrpg%2Ffitrpg-ionic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fitrpg","download_url":"https://codeload.github.com/fitrpg/fitrpg-ionic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fitrpg%2Ffitrpg-ionic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285240542,"owners_count":27137943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-19T02:00:05.673Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-14T18:00:30.356Z","updated_at":"2025-11-19T12:01:14.589Z","avatar_url":"https://github.com/fitrpg.png","language":"JavaScript","funding_links":[],"categories":["And A Bunch More! (I am in the process of sorting these)"],"sub_categories":[],"readme":"\u003cimg src=\"/readme/github_promo.png\"/\u003e\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.fatchickenstudios.fitrpg\"\u003e\n  \u003cimg alt=\"Get it on Google Play\"\n       src=\"readme/google_play.png\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://itunes.apple.com/us/app/fitrpg-gamifying-fitbit/id887067605?mt=8\u0026uo=4\"\u003e\n  \u003cimg alt=\"Get it on the App Store\"\n       src=\"readme/app_store.png\" /\u003e\n\u003c/a\u003e\n\nFitRPG is a mobile app created by [Amira Anuar](https://github.com/aellawind), [Matt Gutierrez](https://github.com/fatchicken007), and [Conor Fennell](https://github.com/conorfennell) at [Hack Reactor](http://www.hackreactor.com/). 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.\n\n\u003ch2\u003eFeatured On\u003c/h2\u003e\n  * [Lifehacker](http://lifehacker.com/fitrpg-turns-your-fitbit-into-a-game-you-play-with-frie-1602140820)\n\n\u003ch2\u003eTech Stack\u003c/h2\u003e\n  * [Ionic Framework](http://ionicframework.com/)\n  * [AngularJS](https://angularjs.org/)\n  * [Node.js](http://nodejs.org/)\n  * [Express.js](http://expressjs.com/)\n  * [MongoDB](http://www.mongodb.org/)\n\n\u003ch2\u003eCode Base\u003c/h2\u003e\n  * [Client side](https://github.com/fitrpg/fitrpg-ionic)\n  * [Server side](https://github.com/fitrpg/fitrpg-server)\n\n\u003cb\u003eChallenges\u003c/b\u003e:\n  * User flow during fitbit OAuth\n    *  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](http://amiraanuar.com/mobile-authentication-in-ionic-with-oauth-through-external-apis-fitbit-pt-2-client/) on how we implemented the client-side portion of authentication via Ionic.\n  * Game logic design\n    * Balancing how sleep, steps and other activities relate to the characters attributes and making sure one is not more effective than other attributes.\n  * User interface design\n    * A game can have a lot of different options and views, reducing and compressing these views and making them innutaive is a challenge.\n  * Security\n    * Implementing json web tokens\n    * OAuth\n\n\u003ch2\u003eUpcoming Features\u003c/h2\u003e\n  * Push Notfications\n  * Versus Missions\n  * Jawbone Support\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffitrpg%2Ffitrpg-ionic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffitrpg%2Ffitrpg-ionic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffitrpg%2Ffitrpg-ionic/lists"}