A REST API that processes execise activity
Clone or download
Pull request Compare This branch is 110 commits ahead, 1 commit behind freeCodeCamp:gomix.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
public
views
.bashrc
.gitconfig
.gitignore
.travis.yml
README.md
package-lock.json
package.json
server.js

README.md

Exercise Journal API

A REST API that processes exercise activity


Development

* Frontend is built using HTML/CSS and is used to demo API functions
* API is built using Node/Express and handles data creation, updates, and retrieval
* Backend is a MongoDB document database that stores user and exercise data

User Stories:

1. I can create a user by posting form data username to /api/exercise/new-user and returned will be an object with username and _id.
2. I can get an array of all users by getting api/exercise/users with the same info as when creating a user.
3. I can retrieve a full exercise log of any user by getting /api/exercise/log with a parameter of userId(_id). App will return the user object with added array log and count (total exercise count).
4. I can retrieve part of the log of any user by also passing along optional parameters of from & to or limit. (Date format yyyy-mm-dd, limit = int)

Usage:

Create a New User

Endpoint:
/api/exercise/new-user

Method:
POST

Body:

{
    username: 'USERNAME'
}

Add Exercise

Endpoint:
/api/exercise/add

Method:
POST

Body:

{
    description: 'DESCRIPTION',
    duration: 'DURATION',
    date: 'YYYY-MM-DD',++
}

++Optional field. The default value is the current date.


List Users

Endpoint:
/api/exercise/users

Method:
GET


View Exercise Journal

Endpoint:
/api/exercise/log

Method:
GET

Parameters:
userId=USERID
startDate=YYYY-MM-DD**
endDate=YYYY-MM-DD**
limit=INTEGER**

** Optional. Default parameters will display all records.

Example:
/api/exercise/log?userId=sammy&startDate=2018-05-01&endDate=2018-05-31&limit=5


Go to API demo app:

https://wme-exercisetracker.glitch.me/