nodejs-ecommerce-example
Node.js E-Commerce API
Author – Akhil Sharma
-
If you have an issue with nodemon –
Install nodemon in your project bynpm i nodemon
It sometimes won’t work because npm won’t be at sudo
level so you gotta usenpx nodemon
to run it locally. - Make sure the main file is called index.js and not app.js
- Put a .env file with api_url and secret key
- In routes, when you are accessing the user model, ‘User’ – make it ‘user’ for models (small case as ubuntu is case sensitive)
- Replace mongodb connection string as well in the database config file
- If you’re unable to connect to your own Atlas cluster, make sure your new and current ip address is added to the mongodb atlas cluster
Setup
$ git clone
$ cd nodejs-ecommerce-api
$ npm install
Run The Service
$ nodemon app.js
API Endpoints
User Routes
* Create User
POST | /api/v1/users/register
Key
Value
name
Admin
email
admin@admin.com
password
password
phone
+917187520
isAdmin
true
street
Main Street
apartment
Block C
zip
10870
city
Bangalore
country
India
* Login User
POST | /api/v1/users/login
Key
Value
email
admin@admin.com
password
password
* Get Users
GET | /api/v1/users
* Get Single Users
GET | /api/v1/users/{id}
* Delete User
DELETE | /api/v1/users/{id}
* Get Users Count
GET | /api/v1/users/get/count
Category Routes
* Create Category
POST | /api/v1/categories
Key
Value
name
Category 1
icon
icon-health
color
#55879
* Get Categories
GET | /api/v1/categories
* Get Single Category
GET | /api/v1/categories/{id}
* Update Category
PUT | /api/v1/categories/{id}
Key
Value
name
Category 1
icon
icon-health
color
#55879
* Delete Category
DELETE | /api/v1/categories/{id}
Product Routes
* Create Product
POST | /api/v1/products
Key
Value
name
Product 1
description
Description
richDescription
Rich Description
image
image
brand
Brand 1
price
50
category
{category_id}
countInStock
100
rating
4.5
numReviews
40
isFeatured
true
* Get Products
GET | /api/v1/products
* Get Single Category
GET | /api/v1/products/{id}
* Get Prodcut Counts
GET | /api/v1/products/get/count
* Get Featured Prodcut Counts
GET | /api/v1/products/get/featured/{count}
* Upload Galley Images
POST | /api/v1/products/gallery-images/{id}
Key
Value
images
Array of images
* Update Product
PUT | /api/v1/products
Key
Value
name
Product 1
description
Description
richDescription
Rich Description
image
image
brand
Brand 1
price
50
category
{category_id}
countInStock
100
rating
4.5
numReviews
40
isFeatured
true
* Delete Product
DELETE | /api/v1/products/{id}
Orders Routes
* Create Order
POST | /api/v1/orders
{
"orderItems":[
{
"quantity": 3,
"product" : "602e9c348e700335d8532b14"
},
{
"quantity": 2,
"product" : "602bde0161fcc409fc149734"
}
],
"shippingAddress1" : "No 45,Park Street",
"shippingAddress2" : "No 46,Main Street",
"city" : "Bangalore",
"zip" : "10600t",
"country" : "India",
"phone" : "+91717185748",
"user" : "602e9b718e700335d8532b13"
}
* Get Orders
GET | /api/v1/orders
* Get Single Order
GET | /api/v1/orders/{id}
* Get Total Order Count
GET | /api/v1/orders/get/count
* Get Total Sales
GET | /api/v1/orders/get/totalsales
* Get User Order
GET | /api/v1/orders/get/usersorders/{userid}
* Update Single Order
PUT | /api/v1/orders/{id}
* Delete Single Order
DELETE | /api/v1/orders/{id}