This is the backend server for NextRun Tracker, an e-commerce–based SaaS platform built as part of PH Assignment-11.
The server is responsible for authentication-related data handling, product management, order processing, payment handling, and dashboard analytics.
NextRun Tracker Server is built with Node.js, Express, MongoDB, and Stripe.
It provides secure, scalable REST APIs to support a role-based frontend system (Buyer / Admin / Manager).
- Node.js
- Express.js
- MongoDB (Atlas)
- Stripe API
- dotenv
- cors
- cookie-parser
- Create user
- Get all users
- Get single user by email
- Assign role (admin / manager / user)
- Suspend & activate users
- Assign / discharge manager responsibility
- Create product
- Update product
- Delete product
- Toggle
showOnHome - Admin product list with:
- Pagination
- Search (title, category)
- General product listing with:
- Pagination
- Category filter
- Search
- Price sorting
- Home page featured products (smart grid logic)
- Place order (Cash on Delivery or Paid)
- Auto stock reduction
- Approve order
- Reject order
- Cancel pending order
- Add tracking information
- Track order publicly by Order ID
- Get:
- Pending orders (manager)
- Approved orders (manager)
- All orders (admin with pagination & filter)
- User’s own orders (pagination, search, filter)
- Stripe payment intent creation
- Secure payment record saving
- Duplicate payment prevention
- Payment history stored for finance tracking
- Total users
- Total products
- Total orders
- Total revenue (from payments)
- Order status counts:
- Pending
- Approved
- Rejected
- Cancelled
POST /create-payment-intentPOST /payments
GET /usersPOST /usersGET /users/:emailPATCH /users/role/:idPATCH /users/suspend/:idPATCH /users/activate/:idPUT /users/assign/:emailPUT /users/discharge/:email
POST /productsGET /admin/productsPATCH /update/product/:idDELETE /products/:idPATCH /products/show-home/:idGET /general/page/productsGET /general/product/:idGET /home/products
POST /ordersGET /orders/pending/:emailGET /orders/approved/:emailPATCH /orders/approve/:idPATCH /orders/reject/:idPATCH /orders/cancel/:idPATCH /orders/tracking/:idGET /orders/track/:idGET /admin/all-orders/:emailGET /my-orders/:email
GET /dashboard/statsGET /dashboard/orders/status-count
Create a .env file in the root directory:
PORT=3030
DB_USER=your_db_user
DB_ACCESS=your_db_password
DB_NAME=your_db_name
STRIPE_SK=your_stripe_secret_keynpm installnpm run startServer will run on:
http://localhost:3030
Allowed origins:
https://mrirakib-ph-assignment-11.netlify.app
usersproductsorderspayments
Thank you for checking out my repository. If you have any feedback or suggestions, feel free to reach out!
Developed by Md Rakibul Islam Rakib