Skip to content

pratikb0501/ecommerce_NodeJs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents


Features

  • TypeScript-based Node.js backend
  • User authentication (register, login) with JWT
  • Product CRUD (create, read, update, delete)
  • Category management
  • Shopping cart and order workflows
  • Role-based access for admins vs customers
  • Input validation and error handling
  • (Optional) Payment integration (Stripe / other providers)
  • (Optional) File/image upload for product images

Tech Stack

  • Node.js + TypeScript
  • Express (or another HTTP framework)
  • MongoDB (with Mongoose) or SQL (adjust accordingly)
  • JWT for authentication
  • dotenv for environment configuration
  • Testing: Jest / Supertest (optional)
  • Dev tooling: ts-node, nodemon, eslint, prettier

Prerequisites

  • Node.js >= 16 (recommended 18+)
  • npm (>= 8) or yarn
  • A running MongoDB instance (local, Docker, or hosted like Atlas) — or update instructions if using SQL

Environment variables

Create a .env file in the project root or provide environment variables by your deployment platform.

Example .env:

PORT=5000
NODE_ENV=development

# App
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=7d

# Database (MongoDB example)
MONGO_URI=mongodb://localhost:27017/ecommerce

# Optional: Payment provider
STRIPE_SECRET_KEY=sk_test_...

# Optional: Email
SMTP_HOST=smtp.mailtrap.io
SMTP_PORT=2525
SMTP_USER=your_user
SMTP_PASS=your_pass

Adjust names to match the variables your code expects.


Install

Clone the repo and install dependencies:

git clone https://github.com/pratikb0501/ecommerce_NodeJs.git
cd ecommerce_NodeJs
# using npm
npm install

# or using yarn
yarn

Run (development)

Start the development server with live reload:

# npm
npm run dev

# yarn
yarn dev

Typical scripts you might have in package.json:

  • "dev": runs ts-node/ts-node-dev or nodemon to run TypeScript directly
  • "start": runs the compiled JavaScript from dist/
  • "build": compiles TypeScript with tsc
  • "lint", "test", etc.

Build & Run (production)

# build
npm run build

# start
npm start

This will compile TypeScript into the dist/ folder and start the server from compiled code.


Database

This project commonly uses MongoDB. Ensure MONGO_URI (or equivalent) is set in your .env. Example local connection:

MONGO_URI=mongodb://localhost:27017/ecommerce

If you use a SQL database, update config and ORM settings accordingly.


API Overview (example endpoints)

Below are example endpoints — update to match actual routes in your code.

Authentication

  • POST /api/auth/register — register new user
  • POST /api/auth/login — login and receive JWT

Users

  • GET /api/users/me — get current user
  • PUT /api/users/me — update profile

Products

  • GET /api/products — list products (with filters, pagination)
  • GET /api/products/:id — product details
  • POST /api/products — create product (admin)
  • PUT /api/products/:id — update product (admin)
  • DELETE /api/products/:id — delete product (admin)

Categories

  • GET /api/categories
  • POST /api/categories (admin)

Cart & Orders

  • POST /api/cart — add to cart
  • GET /api/cart — view cart
  • POST /api/orders — create order
  • GET /api/orders/:id — order details (owner or admin)

Payments (optional)

  • POST /api/payments/create — create payment intent (Stripe)

Authentication across protected endpoints is typically via Authorization: Bearer header.


Testing

A typical setup uses Jest and Supertest.

Run tests:

npm test
# or
yarn test

Add integration tests for your endpoints and unit tests for business logic.


Docker

You can containerize the app. Example Dockerfile steps:

  • Build app (npm run build)
  • Copy dist/ and package.json
  • Run node dist/server.js (or your entrypoint)

You can also run MongoDB as a service in docker-compose for local development.


Linting & Formatting

Common tools:

  • ESLint for linting
  • Prettier for consistent formatting
  • Husky + lint-staged for pre-commit checks

Example:

npm run lint
npm run format

Seeding Data

If you have a seeding script, run:

npm run seed
# or
yarn seed

This will populate example products, categories, and admin user. Ensure this script exists before running.


Deployment

Deploy to your provider of choice:

  • Heroku: set environment vars and use Procfile to run npm start
  • Vercel / Render / Fly: configure build and start commands
  • Docker images to container registries and run with service definitions

Make sure to set NODE_ENV=production and secure your secrets.

If you want help tailoring this README to the repository's exact structure (scripts, env names, database choice, or endpoints), share the package.json and a quick list of top-level folders (src/, controllers/, routes/, etc.), and I will generate an updated README that matches the code precisely.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published