This is a solution to the Exercise Tracker backend certification project from freeCodeCamp.
-
-
User Stories
- You can
POST
to/api/users
with form datausername
to create a new user. - The returned response from
POST /api/users
with form datausername
will be an object withusername
and_id
properties. - You can make a
GET
request to/api/users
to get a list of all users. - The
GET
request to/api/users
returns an array. - Each element in the array returned from
GET /api/users
is an object literal containing a user'susername
and_id
. - You can
POST
to/api/users/:_id/exercises
with form datadescription
,duration
, and optionallydate
. If no date is supplied, the current date will be used. - The response returned from
POST /api/users/:_id/exercises
will be the user object with the exercise fields added. - You can make a
GET
request to/api/users/:_id/logs
to retrieve a full exercise log of any user. - A request to a user's log
GET /api/users/:_id/logs
returns a user object with acount
property representing the number of exercises that belong to that user. - A
GET
request to/api/users/:_id/logs
will return the user object with alog
array of all the exercises added. - Each item in the
log
array that is returned fromGET /api/users/:_id/logs
is an object that should have adescription
,duration
, anddate
properties. - The
description
property of any object in thelog
array that is returned fromGET /api/users/:_id/logs
should be a string. - The
duration
property of any object in thelog
array that is returned fromGET /api/users/:_id/logs
should be a number. - The
date
property of any object in thelog
array that is returned fromGET /api/users/:_id/logs
should be a string. Use thedateString
format of theDate
API. - You can add
from
,to
andlimit
parameters to aGET /api/users/:_id/logs
request to retrieve part of the log of any user.from
andto
are dates inyyyy-mm-dd
format.limit
is an integer of how many logs to send back.
- You can
-
-
- freeCodeCamp's Solution: https://exercise-tracker.freecodecamp.rocks/
- Live Solution: https://fcc--exercise-tracker.herokuapp.com/
- Boilerplate Code: https://github.com/freeCodeCamp/boilerplate-project-exercisetracker/
-
- Working on this project helped me to learn more about function callbacks and promises.
- Learned about working with dates.
- Saving and accessing data from mongodb database.
- Understood the working of various mongoose functions such as save(), findById(), find(), findByIdandUpdate().
- How to manage default values when no input is provided for a field.
NODE_ENV
: Node environment configuration.PORT
: Connection port of the server.DB_URI
: Database connection string for db connection.