How btcrm2026/bond-therapy-crm works
Bond Therapy CRM is a multi-portal system for salon/customer relationship management, field sales, distributor operations, billing, and staff administration. Admin, staff, and distributor users work through the Next.js portals, which proxy requests to a NestJS API; API services enforce domain rules and persist business state through Prisma. The graph retains documented portal capabilities from the tree, while detailed call ownership is shown only where controller/service source was sampled; unsampled subsystems are represented without speculative internal wiring.
Main entry points: main.ts NestJS API · prisma.service.ts Prisma data access · api API route proxies · dashboard Admin/staff portal
Components 24
User portals
- Admin/staff portal
apps/web/src/app/dashboard - Distributor portal
apps/web/src/app/distributor - API route proxies
apps/web/src/app/api
CRM and sales
- Salon CRM
apps/api/src/clients/clients.controller.ts - Lead management
apps/api/src/leads - Product catalogue
apps/api/src/products - Sales analytics
apps/api/src/sales - Targets and incentives
apps/api/src/incentive-rules
Field operations
- Territory planning
apps/api/src/territory/territory.controller.ts - Field routes and visits
apps/api/src/routes/routes.service.ts - Attendance and leave
apps/api/src/attendance/attendance.controller.ts - Staff administration
apps/api/src/users - HR letters
apps/api/src/letters/letters.controller.ts
Orders and billing
- Distributor accounts
apps/api/src/distributors/distributors.controller.ts - Inventory and replenishment
apps/api/src/distributor-stock - Order processing
apps/api/src/orders/orders.controller.ts - Invoices and payments
apps/api/src/billing/billing.controller.ts
Identity and persistence
- NestJS API
apps/api/src/main.ts - Portal authentication
apps/api/src/auth/auth.service.ts - Prisma data access
apps/api/src/prisma/prisma.service.ts - Notifications
apps/api/src/notifications - Application database
apps/api/prisma/schema.prisma
Other components
- Admin and staff users
- Distributor users
Connections 29
- Admin and staff users → Admin/staff portal: uses
- Distributor users → Distributor portal: uses
- Admin/staff portal → API route proxies: requests
- Distributor portal → API route proxies: requests
- API route proxies → NestJS API: forwards
- NestJS API → Portal authentication: dispatches auth
- NestJS API → Salon CRM: dispatches CRM
- NestJS API → Lead management: dispatches leads
- NestJS API → Product catalogue: dispatches catalogue
- NestJS API → Sales analytics: dispatches reports
- NestJS API → Targets and incentives: dispatches calculations
- NestJS API → Territory planning: dispatches territory
- NestJS API → Field routes and visits: dispatches visits
- NestJS API → Attendance and leave: dispatches attendance
- NestJS API → Staff administration: dispatches staff
- NestJS API → Distributor accounts: dispatches accounts
- NestJS API → Inventory and replenishment: dispatches stock
- NestJS API → Order processing: dispatches orders
- NestJS API → Invoices and payments: dispatches billing
- NestJS API → HR letters: dispatches letters
- NestJS API → Notifications: dispatches notices
- Territory planning → Prisma data access: reads/writes
- Field routes and visits → Prisma data access: reads/writes
- Portal authentication → Prisma data access: reads/writes
- Salon CRM → Prisma data access: reads/writes
- Attendance and leave → Prisma data access: reads/writes
- Order processing → Prisma data access: reads/writes
- Invoices and payments → Prisma data access: reads/writes
- Prisma data access → Application database: queries