/ecommerce-stack

This project is an advanced eCommerce platform designed to facilitate online product sales. Built using NestJS for the backend and React with Vite for the frontend, it leverages MySQL for data storage and integrates Stripe for seamless payment processing.

Primary LanguageTypeScript

eCommerce Platform

Screenshot

Database Design

Ecommerce

Table of Contents

Introduction

This project is a comprehensive eCommerce platform designed for selling products online. It includes backend services built with NestJS and MySQL for data management, a frontend application developed using React with Vite for fast development, and Docker with Docker Compose for containerization and deployment.

Technologies Used

  • NestJS: Backend framework for building efficient and scalable server-side applications.
  • MySQL: Relational database management system used for storing and managing product and user data.
  • React with Vite: Frontend library and build tool for creating responsive and interactive user interfaces.
  • Docker with Docker Compose: Containerization technology for packaging the application and its dependencies into standardized units.

Project Structure

The project is organized into two main folders:

  • packages/server: Contains the backend server implemented with NestJS.
  • packages/web: Contains the frontend application built with React and Vite.

Features

  • Stripe Integration: Seamless payment processing integration using Stripe for secure and reliable transactions.
  • User Management: Registration, authentication, and profile management for customers and administrators.
  • Product Catalog: Browse, search, and filter products with detailed product pages.
  • Order Processing: Cart management, checkout flow, and order history tracking.

Getting Started

To get a local copy of the project up and running, follow these steps

  1. Install Dependencies:
  • Backend:
    cd packages/server
    npm install
    
  • Frontend:
    cd packages/web
    npm install
    
  1. Set Up Environment Variables:
  • Configure environment variables for Stripe API keys, MySQL connection details, etc.
  • For DATABASE_HOST set host.docker.internal
  1. Start Application:
  • Using Docker Compose:

    docker-compose up
    
  • Or separately:

    • Backend:
      cd packages/server
      npm run start:dev
      
    • Frontend:
      cd packages/web
      npm run dev
      
  1. Access the Application: Open http://localhost:3000 in your web browser.

  2. How application works: Watch the video