Skip to content

Repository files navigation

Nova Store

Nova Store is a premium e-commerce platform built with a high-performance architecture. It features a robust Node.js backend connected to Supabase (PostgreSQL) and Redis for high-speed session management, background task processing, and ML-powered recommendation tracking.


📂 Project Structure

Nova_Store/
├── Backend/                 # Express backend application
│   ├── docs/                # Architecture and deployment guides
│   ├── sql/                 # Database migrations (001 - 043)
│   ├── src/                 # Application codebase (controllers, models, services)
│   ├── tests/               # Jest unit and integration test suites
│   ├── Dockerfile           # Backend container definition
│   └── package.json         # Backend dependencies
├── Frontend/                # Client Vite + React SPA template
├── docker-compose.yml       # Local orchestration stack (Backend + Redis)
└── README.md                # Project documentation root

🛠️ Tech Stack & Prerequisites

  • Backend: Node.js (v20+), Express.js
  • Database: PostgreSQL (via Supabase)
  • Cache & Message Queue: Redis
  • Testing: Jest, Supertest
  • Containerization: Docker, Docker Compose

🚀 Getting Started

1. Backend Local Setup

  1. Navigate to the backend directory:

    cd Backend
  2. Install dependencies:

    npm install
  3. Configure environment variables. Copy .env.example to .env and fill in your keys:

    cp .env.example .env
  4. Run the development server:

    npm run dev

    The backend will start at http://localhost:5000.


2. Running the Application via Docker Compose

To orchestrate the backend and a local Redis container in a single command, run the following command in the root folder:

docker compose up --build

This will build the backend Docker container, fetch Redis, link them together in a secure network, and spin up both services.


3. API Documentation (Swagger)

Once the backend is running, you can view the interactive API documentation and test endpoints directly through the browser at:

👉 http://localhost:5000/api-docs


🧪 Testing and Verification

To verify backend integrity, we provide unit and integration tests. Navigate to Backend and execute:

# Run Jest Unit Tests (Auth, SMS, Category, Product, Idempotency, etc.)
npm run test:unit

# Run Coupon Integration Endpoint Tests
node scratch/test-all-coupon-endpoints.js

# Run Reviews and Flag Reporting integration Verification
node scratch/test-reviews-reporting.js

# Run Telemetry and Recommendation Engine Test
node scratch/test-recommendations.js

📖 Further Documentation

For deep dives into the application architecture and deployment operations, review the guides inside the Backend/docs folder:

  1. Authentication Architecture: Read authentication-architecture.md to understand the dual-table model (users vs admins) and the email-based RBAC bridge.
  2. Architecture & Design Specification: Read architecture-design.md for Mermaid topology diagrams and architectural decision records (ADRs).
  3. Production Deployment Manual: Read deployment-guide.md for production container hosting, migrations setup, and GitHub Actions CI/CD workflows.

About

An e-commerce website, to build my portfolio.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages