ExpressCart_API is a Node.js and Express-based API for building a robust E-commerce platform. It utilizes MongoDB as the database for seamless data management.
- User authentication and authorization.
- Product management, including creation, editing, and deletion.
- User profile management.
- Shopping cart functionality.
- Order processing.
- Payment processing using Stripe.
- Email notifications.
- Pagination.
- Admin dashboard.
- User dashboard.
- Product reviews and ratings.
- Product search, filtering, and sorting.
- Secure and efficient data storage using MongoDB.
Endpoint |
Functionality |
Access |
POST /api/login |
Logs a user in |
Public |
POST /api/register |
Registers a new user |
Public |
GET /api/profile |
Gets a user's profile |
Private |
PUT /api/users/profile |
Updates a user's profile |
Private |
GET /api/users |
Gets all users |
Private/Admin |
DELETE /api/users/:id |
Deletes a user |
Private/Admin |
GET /api/users/:id |
Gets a single user |
Private/Admin |
PUT /api/users/:id |
Updates a user |
Private/Admin |
Endpoint |
Functionality |
Access |
GET /api/products |
Gets all products |
Public |
GET /api/products/:id |
Gets a single product |
Public |
POST /api/products |
Creates a new product |
Private/Admin |
PUT /api/products/:id |
Updates a product |
Private/Admin |
DELETE /api/products/:id |
Deletes a product |
Private/Admin |
POST /api/products/:id/reviews |
Creates a new review |
Private |
Endpoint |
Functionality |
Access |
GET /api/orders |
Gets all orders |
Private/Admin |
GET /api/orders/:id |
Gets a single order |
Private |
POST /api/orders |
Creates a new order |
Private |
PUT /api/orders/:id/pay |
Updates an order's payment status |
Private |
PUT /api/orders/:id/deliver |
Updates an order's delivery status |
Private |
Endpoint |
Functionality |
Access |
POST /api/upload |
Uploads an image |
Private |
Endpoint |
Functionality |
Access |
POST /api/config/stripe |
Gets Stripe API key |
Private |
Install the dependencies
This project is free to use for anyone feel free to clone it and use it as you like.