A self-initiated
e-commerce backend platform built
with
NestJS
and
PostgreSQL. It showcases a modern, scalable architecture with secure
JWT authentication,
RBAC, and
Stripe integration for payments.
Deployed through an automated
GitHub To Render CI/CD pipeline, this
project highlights clean backend design and production-ready
implementation.
Simulate the end-to-end API workflow directly in your browser.
Stripe test mode — use 4242 4242 4242 4242
Test all admin-protected endpoints quickly.
All technologies used are production-grade and battle-tested.
/payment/webhook
handler
Database schema visualization generated from PostgreSQL (Neon).
flowcommerce/
├─ dist/
├─ node_modules/
├─ public/
├─ ├─ index.html
├─ └─ erd.svg
├─ src/
│ ├─ app.module.ts
│ ├─ main.ts
│ ├─ swagger.ts
│ ├─ auth/
│ │ ├─ auth.controller.ts
│ │ ├─ auth.service.ts
│ │ └─ jwt.strategy.ts
│ ├─ users/
│ │ ├─ users.controller.ts
│ │ ├─ users.service.ts
│ │ └─ users.entity.ts
│ ├─ categories/
│ │ ├─ categories.controller.ts
│ │ ├─ categories.service.ts
│ │ └─ categories.entity.ts
│ ├─ products/
│ │ ├─ products.controller.ts
│ │ ├─ products.service.ts
│ │ └─ products.entity.ts
│ ├─ carts/
│ │ ├─ carts.controller.ts
│ │ ├─ carts.service.ts
│ │ └─ carts.entity.ts
│ ├─ orders/
│ │ ├─ orders.controller.ts
│ │ ├─ orders.service.ts
│ │ ├─ orders.entity.ts
│ │ └─ order-items.entity.ts
│ ├─ payment/
│ │ ├─ payment.controller.ts
│ │ └─ payment.service.ts
│ └─ uploads/
│ ├─ uploads.service.ts
│ └─ upload.controller.ts
├─ test/
│ └─ ...
├─ .env
├─ package.json
├─ render.yaml
└─ tsconfig.json
DATABASE_URL=postgres://user:pass@neon.host/db
JWT_SECRET=supersecretkey
STRIPE_SECRET_KEY=sk_test_***
STRIPE_PUBLISHABLE_KEY=pk_test_***
STRIPE_WEBHOOK_SECRET=whsec_***
CLOUDINARY_CLOUD_NAME=your_cloud
CLOUDINARY_API_KEY=your_key
CLOUDINARY_API_SECRET=your_secret
Tip: On Render, set these in Dashboard → Environment. On local,
create a
.env
file.
/payment/webhook
POST /auth/register,
POST /auth/login
GET /users,
GET /users/:id_user
GET /categories,
POST /categories
GET /products,
POST /products
GET /carts/me,
POST /carts,
DELETE /carts/me/clear
GET /orders/me,
POST /orders/checkout