FARA CRM¶
Internal documentation for developers.
FARA CRM is a modular CRM system built on FastAPI + React with a custom ORM (DotORM), real-time chat over WebSocket, and integrations with external messengers.
Stack¶
| Layer | Technologies |
|---|---|
| Backend | Python 3.12+, FastAPI, asyncpg, PostgreSQL |
| ORM | DotORM (custom async ORM) |
| Frontend | React 18, TypeScript, Mantine UI v8, Redux Toolkit |
| Real-time | WebSocket + PostgreSQL LISTEN/NOTIFY (Redis optional) |
| Integrations | Telegram, WhatsApp, Avito, Email (IMAP/SMTP) |
Quick start¶
Project structure¶
fara/
├── backend/
│ ├── main.py # FastAPI entry point
│ ├── main_cron.py # Cron jobs
│ ├── project_setup.py # Models, Apps, Settings
│ └── base/
│ ├── system/ # Core: ORM, auth, services
│ │ ├── dotorm/ # DotORM — async ORM
│ │ ├── dotorm_crud_auto/# Auto-generated CRUD API
│ │ ├── core/ # Environment, Service
│ │ ├── logger/
│ │ └── schemas/
│ └── crm/ # Business modules
│ ├── chat/ # Chat + WebSocket
│ ├── security/ # ACL, sessions, roles
│ ├── users/
│ ├── leads/
│ ├── sales/
│ ├── partners/
│ ├── company/
│ ├── products/
│ ├── tasks/
│ └── ...
├── frontend/
│ └── src/
│ ├── services/api/ # RTK Query API
│ ├── store/ # Redux store
│ ├── fara_chat/ # Chat module
│ ├── fara_leads/
│ ├── fara_sales/
│ └── ...
├── tests/
│ ├── conftest.py
│ ├── integration/
│ └── performance/
└── docs/ # ← this documentation