Skip to content

Repository files navigation

AUVNET Ecommerce

Overview

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.

technologies

Table of Contents

Database Design

Getting Started

Prerequisites

Before getting started, ensure you have installed the following:

  • Node.js and npm
  • MongoDB

Installation

  1. Clone the repository: $ git clone https://github.com/emadsamy-cell/Auvnet-E-commerce.git
  2. Install dependencies: $ npm install
  3. Configure environment variables: Create a .env file in the root directory.
    • Copy the envExample.env file and rename it to .env in the root directory.
    • Fill in the required environment variables
  4. Start the server:
    $ npm start

Endpoints

You can check endpoints & documentation on Postman from here

Technology Stack

The Auvnet-E-commerce project utilizes the following technologies:

Backend

  • 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.

Authentication

  • 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.

Validation

  • Joi: A validation library for ensuring data integrity in APIs.

Testing

  • Jest: A JavaScript testing framework for ensuring code quality with test-driven development (TDD).

File_Management

  • Multer: Middleware for handling file uploads in Node.js applications.
  • AWS S3 Bucket: A cloud storage service for managing and delivering files efficiently.

Messaging

  • Nodemailer: A module for sending emails with ease in Node.js.
  • UltraMsg A platform for integrating WhatsApp-based communication into applications.

Security

  • 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.

Documentation

  • Postman: Used for documentation and to provide a collection for API requests.

Version Control

  • Git: A distributed version control system.
  • GitHub: A web-based platform for version control and collaboration.

How to Contribute

If you'd like to contribute to the project or have suggestions for improvement, please do not hesitate to make pull request.

About

A scalable e-commerce system built with Node.js and MongoDB, featuring role-based access and modules like Product, Orders, Reviews, and Notifications. It supports advanced filtering, promotions, and is deployed on AWS with test-driven development using Jest.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages