Table of Contents
Live demo (Feel free to visit) 👉 : E-commerce API
- Authentication
- Login [Public]
- SignUp [Public]
- Logout [User]
- Tokens [User]
- Password Management
- Change Password [User]
- Forgot Password [Public]
- Reset Password [Public]
- Email Management
- Send Email Verification [User]
- User
- Create New User [Admin]
- Get All Users [Public]
- Get User Data Using It's ID [Public]
- Update User Details Using It's ID [User]
- Update User Profile Image Using It's ID [User]
- Delete My Account [User]
- Delete User Using It's ID [Admin]
- Cart Services
- Add Product To Cart [User]
- Reduce Product Quantity By One [User]
- Increase Product Quantity By One [User]
- Get Cart [User]
- Delete Cart Item [User]
- Delete Cart [User]
- Review Services
- Create New Review [User]
- Query All Reviews [Public]
- Query Review Using It's ID [Public]
- Update Review Using It's ID [User]
- Delete Review Using It's ID [User]
- Product Services
- Query products [Public]
- Query Product Using It's ID [Public]
- Create new product [Seller]
- Update Product Details [Seller]
- Update Product Main Image [Seller]
- Update Product Images [Seller]
- Delete Product Using It's ID [User]
- Get Products Statics [Admin]
- Top 5 Cheapeast Products [Public]
- Add Product Color [Seller]
- Add Product Size [Seller]
- Delete Product Color [Seller]
- Delete Product Size [Seller]
- Favorite Services
- Get Favorite Products List [User]
- Add Product to Favorite List [User]
- Delete Product From Favorite List [User]
- Check If Product In Favorite List [User]
- Discount Services
- Generate Discount Code [Admin]
- Get Dicount Amount [User]
- Get All Discount Codes [Admin]
- Verify Discount Code [User]
- Delete Discount Code [Admin]
- Cancel Discount Code [User]
- Order Services
- Create New Order [User]
- Query Orders [User]
- Query Order Using It's ID [User]
- Cancel Order [User]
- Update Order Status [Admin]
- Category Services
- Create New Category [User]
- Query Categories [Public]
- Query Category Using It's ID [Public]
- Update Category Details [Admin]
- Update Category Image [Admin]
- Delete Category [Admin]
- Multi-Language Support
Check Ecommerce API Documentation for more info.
The API is deployed with git into Heroku. Below are the steps taken:
git init
git add -A
git commit -m "Commit message"
List of any major frameworks used to build the project.
- NodeJS - JS runtime environment
- ExpressJS - The NodeJS framework used
- MongoDB - NoSQL Database uses JSON-like documents with optional schemas
- Mongoose - Object Data Modeling (ODM) library for MongoDB and NodeJS
- Argon2 - Encryption & Decryption Algorithm
- Cloudinary - Cloud-based service
- Compression - NodeJS compression middleware
- Cors - NodeJS package for providing a Connect/Express middleware that can be used to enable CORS with various options
- Express Mongo Sanitize - Express 4.x middleware which sanitizes user-supplied data to prevent MongoDB Operator Injection.
- Slugify - Slugifies a string
- Datauri - Create DataURI scheme easily
- Dotenv - Loads environment variables from a . env file into process. env
- Rate Limiter - Basic IP rate-limiting middleware for Express
- Helmet - Secure Express apps by setting various HTTP headers
- JWT - Compact URL-safe means of representing claims to be transferred between two parties
- Method Override - Use HTTP verbs such as PUT or DELETE in places where the client doesn't support it.
- Moment - JavaScript library which helps is parsing, validating, manipulating and displaying date/time in JavaScript in a very easy way
- Morgan - HTTP request logger middleware for NodeJS
- Multer - NodeJS middleware for handling multipart/form-data
- Nodemailer - Easy as cake e-mail sending from your Node.js applications
- Validator - A library of string validators and sanitizers.
- Winston - A logger for just about everything.
- XSS Clean - Middleware to sanitize user input
- Stripe - The Stripe Node library provides convenient access to the Stripe API from applications written in server-side JavaScript.
- Swagger UI Express - Allows you to serve auto-generated swagger-ui generated API docs from express.
- Express Locale - Express middleware to determine the locale identifier of the incomming request.
- Node Polyglot - It provides a simple solution for interpolation and pluralization, based off of Airbnb’s experience adding I18n functionality to its Backbone.js and Node apps.
-
Using MicroServices with Event-Driven.
-
Using TypeScript.
You can fork the app or you can git-clone the app into your local machine. Once done that, please install all the dependencies by running
$ yarn install
set your env variables
$ yarn run start
You can fork the app or you can git-clone the app into your local machine.
Note:Set the environment variables up to date and setup the database environment and also you need install docker on your local machine
$ docker-compose up -d
Feel free to email me at [email protected] if you run into any issues or have questions, ideas or concerns. Please enjoy and feel free to share your opinion, constructive criticism, or comments about my work. Thank you! 🙂
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Twitter - @Mahmoud03203227
Email - [email protected]
Facebook - MahmoudYasserMLE