AUVNET Ecommerce project is a mid- to large-scale system built using Node.js and MongoDB, designed to support multiple roles, including users, vendors, admins, and super admins. It features robust modules such as Product, Category, Collection, Coupon, Voucher, Review, Ads, Chat, Orders, Logs, and Notification. The project employs test-driven development with Jest and includes advanced functionalities like role-based access, filtering, and promotions. Deployed on AWS, it showcases a scalable and secure architecture tailored for modern e-commerce needs.
Before getting started, ensure you have installed the following:
- Node.js and npm
- MongoDB
- Clone the repository:
$ git clone https://github.com/emadsamy-cell/Auvnet-E-commerce.git - Install dependencies:
$ npm install - Configure environment variables: Create a
.envfile in the root directory.- Copy the envExample.env file and rename it to .env in the root directory.
- Fill in the required environment variables
- Start the server:
$ npm start
You can check endpoints & documentation on Postman from here
The Auvnet-E-commerce project utilizes the following technologies:
- Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine, used for building fast and scalable network applications.
- Express.js: A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- MongoDB: A NoSQL database program that uses JSON-like documents with optional schemas, perfect for handling a flexible product catalog.
- Redis: An in-memory data store used for caching and real-time data processing.
- JWT: A token-based authentication mechanism for securing APIs and user sessions.
- OAuth2: A standard protocol for secure third-party authentication and authorization.
- bcrypt: A library for hashing passwords securely.
- Joi: A validation library for ensuring data integrity in APIs.
- Jest: A JavaScript testing framework for ensuring code quality with test-driven development (TDD).
- Multer: Middleware for handling file uploads in Node.js applications.
- AWS S3 Bucket: A cloud storage service for managing and delivering files efficiently.
- Nodemailer: A module for sending emails with ease in Node.js.
- UltraMsg A platform for integrating WhatsApp-based communication into applications.
- CORS: Middleware for managing cross-origin resource sharing securely.
- Access Tokens Short-lived tokens used for authenticating API requests.
- Refresh Tokens Long-lived tokens for renewing expired access tokens without re-login.
- Postman: Used for documentation and to provide a collection for API requests.
- Git: A distributed version control system.
- GitHub: A web-based platform for version control and collaboration.
If you'd like to contribute to the project or have suggestions for improvement, please do not hesitate to make pull request.
