// 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.
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.