A production-ready CRM application for healthcare RFP to Quote management, built with Next.js 14 and TypeScript.
- RFP Management: Create and track RFPs with automatic opportunity creation
- Pipeline Management: Kanban-style opportunity tracking with stage management
- Quote Builder: CPQ system with Indian GST calculations (CGST/SGST/IGST)
- Email Integration: Send quotes directly from user's mailbox
- E-Signature: DocuSign/Adobe integration for contract signing
- Audit Trail: Complete audit logging with JSONL export
- RBAC: Role-based access control with Auth0 integration
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS + shadcn/ui
- Data Fetching: TanStack Query
- Forms: React Hook Form + Zod validation
- Authentication: NextAuth with Auth0 OIDC
- API: OpenAPI-generated client
- Testing: Playwright (optional)
Set these in your Vercel Project Settings:
NEXT_PUBLIC_API_BASE_URL- Your API gateway URLNEXTAUTH_URL- Your app URL (auto-set by Vercel)NEXTAUTH_SECRET- Random secret for NextAuthAUTH0_DOMAIN- Your Auth0 domainAUTH0_CLIENT_ID- Auth0 application client IDAUTH0_CLIENT_SECRET- Auth0 application client secretAUTH0_ISSUER_BASE_URL- Auth0 issuer URLNEXT_PUBLIC_OPENID_AUDIENCE- Auth0 API audience
NEXT_PUBLIC_FEATURE_ESIGN=true- Enable e-signature featuresNEXT_PUBLIC_FEATURE_CALENDAR=false- Calendar integration (future)NEXT_PUBLIC_FEATURE_RAZORPAY=false- Payment integration (future)
-
Install dependencies: ```bash npm install ```
-
Generate API types: ```bash npm run codegen ```
-
Start development server: ```bash npm run dev ```
-
Type checking: ```bash npm run typecheck ```
-
Linting: ```bash npm run lint ```
- Push to GitHub and connect to Vercel
- Set environment variables in Vercel Project Settings
- Deploy - Vercel will automatically build and deploy
The app uses OpenAPI-generated types and client from openapi/openapi_core.yaml. To update:
- Modify the OpenAPI spec
- Run
npm run codegento regenerate types - Update API client methods if needed
``` src/ ├── api/ # Generated API client and types ├── components/ # React components ├── hooks/ # Custom hooks including API hooks ├── providers/ # Context providers └── app/ # Next.js app router pages
openapi/ └── openapi_core.yaml # API specification ```
- admin: Full system access
- sales_manager: Team management and reporting
- sales_rep: Create RFPs, opportunities, quotes
- pricing_approver: Approve quote pricing
- viewer: Read-only access
- Currency: Indian Rupees (₹)
- Locale: en-IN
- Tax System: GST with CGST/SGST/IGST calculations