Exercise tracker

Test this API:

Create a new user (/api/exercise/new-user)
Get all users
Add an exercise session (/api/exercise/add)
Not the username but the _id that is returned by the API when you create a new user.
Get a user's exercise log
/api/exercise/log?userId=
&from=
&to=
&limit=
userId is the _id returned by the API and is required.
from and to are dates in YYYY-MM-DD format.
limit is the maximum number of exercise sessions to be returned.

View the source on GitHub or Glitch.

I created this app as a requirement for my freeCodeCamp APIs and Microservices Certification, using Node.js, Express, Mongoose, shortId, and a free MongoDB Atlas database. The above front end API test also uses Bootstrap, jQuery, jQuery UI, and highlight.js. The API fulfills the following 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 add an exercise to any user by posting form data userId (_id), description, duration, and optionally date to /api/exercise/add. If no date supplied it will use current date. Returned will the the user object with also with the exercise fields added.
  4. I can retrieve a full exercise log of any user by getting /api/exercise/log with a parameter of userId (_id). Return will be the user object with added array log and count (total exercise count).
  5. 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)