Ezvento Documentation
Ezvento is a multi-tenant POS, Inventory, and Billing SaaS built for Indian retail and wholesale businesses. This documentation covers every aspect of the system — from architecture and database design to user journeys and deployment.
Quick Start
For Developers
Start with Architecture to understand the tech stack, then dive into Database Schema and API Reference.
For Admins
Read RBAC & Permissions to configure roles, then Personas to understand user journeys.
Architecture
Tech stack, multi-tenant model, auth flow, rate limiting, and security architecture.
Database Schema
Complete ER diagram with 46 models, 32 enums, tenant isolation, and soft-delete patterns.
RBAC & Permissions
8 system roles, 80+ granular permissions, scope types, and approval workflows.
Personas & Journeys
User journeys for every role from Owner to Cashier, with permissions and workflows.
API Reference
Complete REST API documentation grouped by module with request/response schemas.
Routes
Complete route map with guards, public/private classification, and redirects.
Auth & Security
Signup, login, 2FA, PIN-based cashier auth, session management, and JWT claims.
Billing & POS
Cashier counter selection, shifts, cart, discounts, GST, invoicing, and returns.
Inventory
Product catalog, variants, serial numbers, stock transfers, and audit.
Reports
Sales, GST, financial, and audit reports with export formats.
Components
shadcn/ui primitives, custom components, and design system tokens.
Testing
Unit tests (Vitest), E2E tests (Playwright), fixtures, and running guide.
Deployment
Environment variables, database migrations, seeding, and Vercel deployment.
System Overview
Ezvento is built as a modern SaaS application using Next.js 16 App Router, Prisma ORM, and Supabase PostgreSQL. It supports multiple tenants (businesses) with strict data isolation, role-based access control (RBAC v2), and a persona-based routing system that adapts the UI to the user's role.
Key Capabilities
- POS & Billing: Fast cashier checkout with barcode scanning, discounts, multiple payment methods (cash, UPI, card), GST auto-calculation, and e-invoice (IRN) generation.
- Inventory Management: Product catalog with variants (size/color), serial numbers, batch/expiry tracking, stock transfers between stores, and low-stock alerts.
- Multi-Store: Regional and store-level hierarchy with scoped role assignments. A user can have different roles in different stores.
- RBAC v2: 8 system roles with ~80 granular permissions across 6 scope types (ORG, REGION, STORE, COUNTER, LOCATION, WAREHOUSE).
- Manager PIN Approval: Cashiers can request approval for high-risk actions (cancellations, refunds, excessive discounts) via manager PIN.
- Reports & Compliance: Sales, inventory, financial, and GST reports (GSTR-1, GSTR-3B) with CSV/Excel/PDF export.
- Restaurant Mode: Table management, KOT (Kitchen Order Ticket), and BOM (Bill of Materials) for food businesses.
- Subscription Billing: SaaS plans (Starter, Pro, Enterprise) via Dodo Payments with trial periods.
Tech Stack
- Framework: Next.js 16.2.4 + React 19.2.4 (App Router, RSC)
- Styling: Tailwind CSS v4 + tw-animate-css
- UI Components: shadcn/ui 4.1.2 (Base UI primitives)
- Database: PostgreSQL (Supabase) + Prisma ORM
- Auth: Supabase Auth (PKCE) with 2FA support
- State: Zustand (POS store), React Query (server state)
- Forms: React Hook Form + Zod
- Charts: Recharts 3.8.1
- Email: Resend (transactional emails)
- Payments: Dodo Payments (subscription billing)
- Testing: Vitest (unit) + Playwright (E2E)