Table of Contents
- 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
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.
- Rewrite project with TypeScript NestJS.
- Use Redis for caching
- Use Elasticsearch as a search engine for products/categories
- Use Kubernetes for Deployment
- Use Prometheus & Grafana for monitoring
- Use Terraform
- Extend API's Functionality
- Use multi-database (MongoDB - PostgreSQL)
- Use Microservices
- Use Sockets for handling real-time things.
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