How juliosilva2854/odonto-crm works
Dental CRM is a multi-tenant dental-practice SaaS. Clinic staff use the React app to manage patients, appointments, clinical records and treatment plans; the frontend services call a FastAPI modular monolith that enforces domain rules and persists clinic data. Quotes can be approved item-by-item and linked to odontogram procedures; billing integrates with Stripe. The README documents these capabilities, while sampled backend entry-point and service code confirms selected routes and domain calls. Several frontend-to-backend links are documented at the feature level, not traced through every handler.
Main entry points: main.py FastAPI application · service.py Quotes and approvals · App.tsx React application · api.ts API client
Components 22
Clinic application
- React application
frontend/src/App.tsx - Patient workspace
frontend/src/pages/PatientRecordPage.tsx - Agenda interface
frontend/src/pages/AgendaPage.tsx - Finance pages
frontend/src/pages/FinanceQuotesPage.tsx - API client
frontend/src/lib/api.ts
Identity and tenancy
- Authentication
backend/src/modules/auth/service.py - Clinic tenancy
backend/src/modules/tenancy/service.py
Patient and clinical care
- Patient management
backend/src/modules/patients/service.py - Patient anamnesis
backend/src/modules/patients/anamnesis/service.py - Procedure catalog
backend/src/modules/clinical/catalog/service.py - Clinical records
backend/src/modules/clinical/records/service.py - Odontogram
backend/src/modules/clinical/odontogram/service.py
Practice operations
- Appointments
backend/src/modules/agenda/service.py - Quotes and approvals
backend/src/modules/finance/quotes/service.py - Cash management
backend/src/modules/finance/cash/service.py - Clinic dashboard
backend/src/modules/dashboard/service.py - Subscription billing
backend/src/modules/billing/service.py
Platform services
- Stripe gateway
backend/src/core/stripe_client.py - FastAPI application
backend/src/main.py - PostgreSQL data
backend/src/core/database.py - Event bus
backend/src/core/events/bus.py
Other components
- Clinic staff
Connections 30
- Clinic staff → React application: uses
README.md - React application → Patient workspace: routes to
README.md - React application → Agenda interface: routes to
README.md - React application → Finance pages: routes to
README.md - Patient workspace → API client: requests data
- Agenda interface → API client: requests data
- Finance pages → API client: requests data
- API client → FastAPI application: calls API
- FastAPI application → Authentication: registers router
backend/src/main.py - FastAPI application → Clinic tenancy: registers router
backend/src/main.py - FastAPI application → Patient management: registers router
backend/src/main.py - FastAPI application → Patient anamnesis: registers router
backend/src/main.py - FastAPI application → Procedure catalog: registers router
backend/src/main.py - FastAPI application → Appointments: registers router
backend/src/main.py - FastAPI application → Quotes and approvals: registers router
backend/src/main.py - FastAPI application → Cash management: registers router
backend/src/main.py - FastAPI application → Clinic dashboard: registers router
backend/src/main.py - FastAPI application → Subscription billing: registers router
backend/src/main.py - Quotes and approvals → Procedure catalog: reads procedures
backend/src/modules/finance/quotes/service.py - Quotes and approvals → Odontogram: reads tooth procedure
backend/src/modules/finance/quotes/service.py - Quotes and approvals → Event bus: publishes approval
backend/src/modules/finance/quotes/service.py - Odontogram → Procedure catalog: reads catalog
backend/src/modules/clinical/odontogram/service.py - Subscription billing → Stripe gateway: uses gateway
backend/src/modules/billing/service.py - Subscription billing → Clinic tenancy: checks subscription
backend/src/modules/billing/service.py - Clinic dashboard → PostgreSQL data: queries data
- Patient management → Event bus: publishes events
backend/src/modules/patients/service.py - Appointments → Event bus: publishes events
backend/src/modules/agenda/service.py - Clinical records → PostgreSQL data: persists records
- Appointments → PostgreSQL data: persists appointments
- Quotes and approvals → PostgreSQL data: persists quotes