This repository contains a simple demo API built with NodeJS. The API is used to manage users in a MongoDB database.
This application was developed using ExpressJS. MongoDB was used for persisting data with Mongoose as ORM.
- Start up your terminal (or Command Prompt on Windows OS).
- Ensure that you've
node
installed on your PC. - Clone the repository by entering the command
git clone https://github.com/BolajiOlajide/UserManager
in the terminal. - Navigate to the project folder using
cd UserManager
on your terminal (or command prompt) - After cloning, install the application's dependencies with the command
npm install
. - Create a
.env
file in your root directory as described in.env.sample
file. Variables such as DB_URL (which must be a mongoDB URL) and PORT are defined in the .env file and it is essential you create this file before running the application.
PORT=3000
DB_URL='mongodb://username:password@db_host:27017/databaseName'
- After this, you can then start the server with the command:
npm start
.
To ensure that your installation is successful you'll need to run tests.
The command: npm test
makes this possible. It isn't functional right now, but once it's done you'll be notified via the README.
The API only has one endpoint which is the /users
endpoint for saving users to the database. The endpoint works with the HTTP verbs: POST
, GET
, PUT
, DELETE
.
POST
/users- INPUT:
name: John Doe
email: john.doe@gmail.com
password: johndoe
- HTTP Status:
201: created
- JSON data
{
"_id": "59071791b0lkscm2325794",
"name": "John Doe",
"email": "john.doe@gmail.com",
"password": "johndoe",
"__v": 0
}
GET
/users
[
{
"_id": "59071791b0lkscm2325794",
"name": "John Doe",
"email": "john.doe@gmail.com",
"password": "johndoe",
"__v": 0
}
]
GET
/users/:id
{
"_id": "59071791b0lkscm2325794",
"name": "John Doe",
"email": "john.doe@gmail.com",
"password": "johndoe",
"__v": 0
}
DELETE
/users/:id
User John Doe was deleted
PUT
/users/:id- INPUT:
name: Jane Doe
email: jane.doe@gmail.com
password: janedoe
- HTTP Status:
200: OK
- JSON data
{
"_id": "59071791b0lkscm2325794",
"name": "Jane Doe",
"email": "jane.doe@gmail.com",
"password": "janedoe",
"__v": 0
}
Olajide Bolaji 'Nuel - Software Developer at Andela