Issues: Build Status: Code Coverage (Master):
Pathlete is a fun data visualization tool that will show trends in your movement and motivate you to achieve large goals through small steps. It will show you how far you've traveled across different distances to give you new perspectives of your progress.
- Product Owner: Karim Kyler
- Scrum Master: Samin Sepasi
- Development Team Members: Matt Polland, Jake Obron
- Clone Repo
- Install Dependencies
- Rename
example.env
to.env
- Sign up for a fitbit dev account to obtain consumer key & consumer secret
- Update .env with consumer key and secret from your created fitbit dev account
- The repo currently uses our own Firebase link as the db. To create your own db, simply change the link in utils/db.js as you see fit to point to your own Firebase or other db.
- To run locally: From root directory, run
node bin/www
- To run tests, run
npm test
from root directory
- Node 0.10.x
- ExpressJS 4.0
- AngularJS
- Firebase
- Mocha
- Chai
- Passport-Fitbit
- Passport-Fitbit is a library that abstracts the oAuth process for the Fitbit API.
- Fitbit-Node
- Fitbit-Node is an npm module that abstracts the data fetching process for the Fitbit Resource Access API.
From within the root directory:
sudo npm install -g bower
npm install
bower install
- Fitbit Data Access
- utils/fitbit.js contains the logic for the oAuth process via the Fitbit API. It utilizes the Passport-Fitbit library to log in with the user's Fitbit account, and the
getStats
function fetches the user's activity data from the Fitbit Resource Access API using the Fitbit-Node module. ThedbHelper.addUserStats
function utilizes the utils/dbHelpers.js file to add the user's basic profile info to our db.
- Progress & Achievement Pages
- The logic for the Achievements & Progress pages resides in the various
public/controllers
JS files. These controllers fetch a user's activity info using the factory inpublic/scripts/services.js
. The factory makes various GET requests depending on the info required, and the GET request routes are handled by the routes/index.js file. - For example, a user's info is fetched starting from the factory's GET request, which routes to
routes/index.js
, androutes/index.js
uses thegetUserStats
function fromutils/dbHelpers.js
to fetch the user's info from the db.
View the project roadmap here
See CONTRIBUTING.md for contribution guidelines.