E-Commerce-API

Usage
- clone
- install packages
- change .env file with port and mongourl for your database
- deploy
This API has been made for a small scale e commerce businesses.
Made with:
- Node.js
- MongoDB and Mongoose
- Express
- Stripe API for payments(to be added)
Description:
There are endpoints for Sellers, Buyers and their interaction with Products.
Features to be added:
- Standard error messages and HTTP codes
- Support for transportation
- Payments through stripe API
- A better relationship between databases
- Cart feature for buyers
Endpoints:
Buyer Related:
| Endpoint |
HTTP Method |
Usage |
Returns |
Requires Auth |
Development Status |
/buyer/register |
POST |
Accepts the name, email, password and address of the user. |
JSON data of the user details and a JWT token. |
No |
Works |
/buyer/me |
GET |
Call the API with required bearer JWT token in header. |
Returns the entire buyer details except private details like passwords. |
Yes |
Works |
/buyer/me |
PATCH |
Call the API with required bearer JWT token in header and the details that are to be changed. |
Returns the entire buyer details except private details like passwords. |
Yes |
Works |
/buyer/me |
DELETE |
Call the API with required bearer JWT token in header. |
Returns the entire buyer details except private details like passwords and Deletes the data from the collection |
Yes |
Works |
/buyer/login |
POST |
Call the API with email and password |
Returns the entire buyer details except private details like passwords and JWT token for accessing enndpoints that require authentication. |
No |
Works |
/buyer/logout |
POST |
Call the API with required bearer JWT token in header. |
Deletes the provided token in the header from the JWT token array. |
Yes |
Works |
/buyer/buy/:id |
POST |
Call the API with required bearer JWT token in header and the ID(mongo db _id) of the product. |
Removes the seller as owner from the product database and sets owner to the buyer after the payment is completed. |
Yes |
In Progress |
Seller Related:
| Endpoint |
HTTP Method |
Usage |
Returns |
Requires Auth |
Development Status |
/seller/register |
POST |
Accepts the name, email, password and address of the seller. |
JSON data of the user details and a JWT token. |
No |
Works |
/seller/me |
GET |
Call the API with required bearer JWT token in header. |
Returns the entire buyer details except private details like passwords. |
Yes |
Works |
/seller/me |
PATCH |
Call the API with required bearer JWT token in header and the details that are to be changed. |
Returns the entire buyer details except private details like passwords. |
Yes |
Works |
/buyer/me |
DELETE |
Call the API with required bearer JWT token in header. |
Returns the entire buyer details except private details like passwords and Deletes the data from the collection |
Yes |
Works |
/seller/login |
POST |
Call the API with email and password |
Returns the entire buyer details except private details like passwords and JWT token for accessing enndpoints that require authentication. |
No |
Works |
/seller/logout |
POST |
Call the API with required bearer JWT token in header. |
Deletes the provided token in the header from the JWT token array. |
Yes |
Works |
/seller/product/add |
POST |
Requires a JSON of prodict details and JWT token in the header |
Returns the JSON of the product that has been sent and stores in the database. |
Yes |
Works |
/seller/product/edit/:id |
POST |
Requires a JSON of prodict details that are needed to be changed and JWT token in the header |
Returns the new data of the product that has been updated. |
Yes |
Works |
/seller/product/delete/:id |
POST |
Requires the ID(mongo db id) of the product that is needed to be deleted and JWT token |
Returns the JSON product whose ID was given and deleted it from the database. |
Yes |
Works |
/seller/products |
GET |
Required JWT token in the header |
Returns the products that are posted by the seller. |
Yes |
Works |
Product Related:
| Endpoint |
HTTP Method |
Usage |
Returns |
Requires Auth |
Development Status |
/seller/product/edit/:id |
POST |
Requires a JSON of prodict details that are needed to be changed and JWT token in the header |
Returns the new data of the product that has been updated. |
Yes |
Works |
/seller/product/delete/:id |
POST |
Requires the ID(mongo db id) of the product that is needed to be deleted and JWT token |
Returns the JSON product whose ID was given and deleted it from the database. |
Yes |
Works |
/seller/products |
GET |
Required JWT token in the header |
Returns the products that are posted by the seller. |
Yes |
Works |
/seller/product/add |
POST |
Requires a JSON of prodict details and JWT token in the header |
Returns the JSON of the product that has been sent and stores in the database. |
Yes |
Works |
/buyer/buy/:id |
POST |
Call the API with required bearer JWT token in header and the ID(mongo db _id) of the product. |
Removes the seller as owner from the product database and sets owner to the buyer after the payment is completed. |
Yes |
Works but Stripe API payments to be added |
Database Schemas
Product:
| Name |
Type |
| _id |
mongoose.Schema.Types.ObjectId |
| item_name |
String |
| description |
String |
| category |
String |
| price |
Number |
| Owner |
mongoose.Schema.Types.ObjectId |
Seller:
| Name |
Type |
| _id |
mongoose.Schema.Types.ObjectId |
| name |
String |
| email |
String |
| password |
String |
| tokens |
Array of strings |
Buyer:
| Name |
Type |
| _id |
mongoose.Schema.Types.ObjectId |
| name |
String |
| email |
String |
| password |
String |
| Address |
String |
| tokens |
Array of strings |
Transactions:
| Name |
Type |
| _id |
mongoose.Schema.Types.ObjectId |
| seller_id |
mongoose.Schema.Types.ObjectId |
| Product_id |
mongoose.Schema.Types.ObjectId |
| buyer_id |
mongoose.Schema.Types.ObjectId |