ecommerce-store-api

(β˜… 52)

A production-grade NestJS modular monolith E-commerce API πŸ›’. Built as a reference implementation showcasing Strategic DDD, Hexagonal Architecture, Stripe SAGA orchestration, Redis Stack (JSON/Search), and zero cross-context leakage.

  • .actrc
  • .dockerignore
  • .env.example
  • .gitattributes
  • .gitignore
  • .prettierrc
  • .secrets.example
  • .windsurfrules
  • AGENT.md
  • AGENTS.md
  • CLAUDE.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • data-source.ts
  • docker-compose.prod.yml
  • docker-compose.yaml
  • docker-entrypoint.sh
  • Dockerfile
  • eslint.config.mjs
  • GEMINI.md
  • LICENSE
  • nest-cli.json
  • package-lock.json
  • package.json
  • README.md
  • SECURITY.md
  • tsconfig.arch.json
  • tsconfig.build.json
  • tsconfig.json

# Installation Guide

1. Get the code
git clone https://github.com/raouf-b-dev/ecommerce-store-api

Downloads the entire project code from GitHub to your computer.

cd ecommerce-store-api

Moves into the project folder you just downloaded.

2. Docker

Easy Recommended
Prerequisites
  • Git Needed to download the project code from GitHub.
  • Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker compose -f docker-compose.prod.yml up -d --build

Runs the command against the services defined in the compose file.

βœ… Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.

3. Node.js

Easy
Prerequisites
  • Git Needed to download the project code from GitHub.
  • Node.js Node.js must be installed to use npm. The LTS version is recommended.
npm install

Downloads and installs the libraries listed in package.json.

npm run env:init

Type this command into your terminal and run it.

npm run d:up:dev

Type this command into your terminal and run it.

npm run migration:run:dev

Type this command into your terminal and run it.

npm run start:dev

Starts the development/run server.

βœ… After running the command, open the address shown in the terminal (usually something like http://localhost:3000) in your browser.

Pulled directly from this repo's README.

// repository documentation