Skip to content
All projects

// Full Stack · Admin Dashboard · Payments

Tea Mahall

Admin-based tea franchise application

Full-stack build, auth, payments & invoicing · 2025

Illustrative preview — replace with a real screenshot by adding `public/projects/tea-mahall.png` and wiring it into ProjectVisual.

MERNClerkRazorpayNodemailerMongoDBExpress.jsReactNode.js

An admin-based tea franchise application with customer-facing pages and a full management dashboard: products, orders, and franchise workflows with authentication and role-based CRUD.

Payments run through Razorpay, transactional email through Nodemailer, and invoicing through server-side PDF generation — with real-time state management across the dashboard.

// features

Admin dashboard

Authentication with role-based CRUD for products, orders, and franchise operations.

Franchise workflows

Structured management flows with real-time state updates across the dashboard.

Payments

Razorpay integration for secure checkout and transaction handling.

Email + invoicing

Nodemailer transactional emails with server-side automated invoice PDF generation.

// architecture

  • MERN stack: React dashboard + customer pages, Express API, MongoDB for catalog, orders, and users.
  • Clerk for authentication with role-based access control on admin operations.
  • Razorpay for payments; Nodemailer for order and franchise email workflows; server modules render invoice PDFs.

// implementation

  • Role-guarded CRUD so franchise staff only access their operations.
  • Real-time dashboard state for orders and inventory changes.
  • Server-side invoice rendering so PDFs are consistent regardless of client.

// challenges

Keeping payments, orders, and emails consistent.

approach — Made the backend the authority for transaction state, with email and PDF steps downstream of a confirmed order.

Different roles need different capabilities.

approach — Enforced RBAC both in the UI and on the API so role checks can't be bypassed client-side.