Add the Sales CRM service through collaboration, sync architecture/registry docs, expose crm.torbatyar.ir, and include a production deploy script. Co-authored-by: Cursor <cursoragent@cursor.com>
183 lines
8.2 KiB
Markdown
183 lines
8.2 KiB
Markdown
# Progress
|
||
|
||
> Completed work only. Future → [roadmap.md](roadmap.md). Next milestone → [next-steps.md](next-steps.md).
|
||
|
||
## Phase 1 — Core Platform ✅
|
||
|
||
### Infrastructure & structure
|
||
- [x] Full project structure with mandatory `backend/` / `frontend/` separation
|
||
- [x] Shared library `backend/shared-lib`
|
||
- [x] Architecture section: Frontend & Backend Separation
|
||
|
||
### Core service
|
||
- [x] Config, database, cache, logging, base security
|
||
- [x] Models, APIs, Entitlement, Celery, Outbox
|
||
- [x] Tests and documentation
|
||
|
||
### Frontend
|
||
- [x] Independent Next.js, API client, white-label theme baseline
|
||
|
||
---
|
||
|
||
## Phase 2 — Identity & Access + SSO ✅
|
||
|
||
- [x] `shared/auth/jwt.py`, `shared/auth/roles.py`, Identity events in `shared/events.py`
|
||
- [x] Identity service + `identity_access_db`
|
||
- [x] Keycloak realm/clients/theme import
|
||
- [x] Core API protection (`AUTH_REQUIRED`, role deps)
|
||
- [x] Frontend SSO flow (`/login`, `/auth/callback`, `/dashboard`)
|
||
- [x] Compose services Identity + Frontend; Postgres init for identity DB
|
||
|
||
---
|
||
|
||
## Phase 3 — OTP Login + Tenant Management ✅
|
||
|
||
- [x] Core `users` + OTP request/verify + Payamak
|
||
- [x] Local JWT (HS256) for OTP users
|
||
- [x] Admin tenant CRUD + owner filtering
|
||
- [x] Frontend admin OTP/tenant UI (later aligned to central SSO)
|
||
- [x] `test_otp_auth.py`
|
||
|
||
---
|
||
|
||
## Phase 4 — Tenant Onboarding & Workspace Activation ✅
|
||
|
||
> Brief alias: sometimes called “Phase 3” externally — see [phase-numbering decision](decisions/technical/phase-numbering.md).
|
||
|
||
- [x] Core `tenant_memberships`, tenant lifecycle, branding columns, domain primary/verification fields
|
||
- [x] `users.current_tenant_id`, FREE/STARTER plan seed, onboarding APIs
|
||
- [x] `UserService` / `MembershipService` / `OnboardingService` / `TenantContextService`
|
||
- [x] Frontend onboarding wizard, tenant dashboard, tenant switcher
|
||
- [x] `test_onboarding.py` + regression suite
|
||
- [x] JIT Core user from Keycloak JWT (`UserService.resolve_current`)
|
||
- [x] Automatic tenant subdomain SSL (Celery → SSH → `provision_ssl.py`)
|
||
- [x] Reverse proxy (Nginx) + base TLS + tenant SSL automation
|
||
|
||
### Intentionally incomplete after Phase 4 (tracked in roadmap, not claimed done)
|
||
Payment gateway · real DNS/TXT custom-domain verify · legacy `POST /admin/tenants` auto membership/plan · first business module
|
||
|
||
---
|
||
|
||
## Phase D — Documentation Architecture Consolidation ✅
|
||
|
||
- [x] Target `docs/` tree (architecture, adr, development, reference, deployment, templates, phases, decisions)
|
||
- [x] Moved canonical docs with git history where possible
|
||
- [x] Deprecated stubs for old paths
|
||
- [x] ADR system initialized (ADR-001 … ADR-010)
|
||
- [x] Project principles, coding standards, testing/branching/release strategies
|
||
- [x] Module registry + provider registry + glossary
|
||
- [x] Deployment runbooks (production, SSL, monitoring, backup, restore, DR)
|
||
- [x] Roadmap / next-steps separation from progress
|
||
- [x] Phase area docs for Accounting, CRM, Restaurant, Marketplace, Automation, AI, Future
|
||
- [x] Cross-links updated in root and package READMEs
|
||
|
||
---
|
||
|
||
## Phase 5.1–5.11 — Accounting Module ✅
|
||
|
||
- [x] Phases 5.1–5.6: Foundation through Sales Integration (see prior entry)
|
||
- [x] Phase 5.7: Purchase & Inventory accounting, InventoryValuationEngine
|
||
- [x] Phase 5.8: Fixed Assets, DepreciationEngine, asset lifecycle
|
||
- [x] Phase 5.9: HCM/Payroll, PayrollEngine, payroll accounting
|
||
- [x] Phase 5.10: Financial Reporting Engine, dashboards, export framework
|
||
- [x] Phase 5.11: Compliance, Audit Framework, Governance, SoD
|
||
- [x] Alembic migration `0002_phases_57_511`
|
||
- [x] 21 tests passing
|
||
|
||
---
|
||
|
||
## Accounting Enterprise Frontend (in SuperApp) ✅ baseline
|
||
|
||
- [x] Design system tokens (light/dark) + DS components (`components/ds`)
|
||
- [x] TanStack Query providers, Sonner toasts, ColorMode
|
||
- [x] Typed `accounting-api` client (JWT + `X-Tenant-ID`, no mocks)
|
||
- [x] Accounting shell + routes: dashboard, COA, fiscal, currencies, cost centers, projects, ledger, setup, suppliers
|
||
- [x] Vouchers list/create/detail with validate/post/reverse/cancel + draft edit (ADR-010)
|
||
- [x] Foundation masters: edit/archive drawers, fiscal year/period actions, COA template import wizard
|
||
- [x] Setup checklist + completion scoreboard on dashboard
|
||
- [x] Treasury, customers, assets, payroll, reports, audit, settings pages (real APIs)
|
||
- [x] Catalog tile available → `/accounting`
|
||
- [x] Frontend docs under `docs/frontend/`
|
||
|
||
Remaining: Phase 5.12 AI UI blocked on AI provider; optional richer PDF export file delivery.
|
||
|
||
---
|
||
|
||
## Phase 6.0 — CRM Service Foundation ✅
|
||
|
||
- [x] `backend/services/crm` service scaffold (API / services / repositories / models)
|
||
- [x] Base aggregates: Lead, Contact, Organization, Opportunity, Pipeline, PipelineStage, SalesActivity, Quote
|
||
- [x] Publish-only event contracts (`crm.lead.*`, `crm.opportunity.*`, …)
|
||
- [x] CRM APIs only (`/api/v1/leads|contacts|organizations|pipelines|opportunities|activities|quotes`)
|
||
- [x] Platform provider contracts only (Automation, Customer360, Notification, Analytics, AI, Communication, Helpdesk)
|
||
- [x] Permissions `crm.*` trees; tenant isolation via `X-Tenant-ID`
|
||
- [x] Alembic `0001_initial` + `crm_db` wiring (compose port 8003)
|
||
- [x] Architecture / dependency / repository / migration / API / permission / tenant / docs tests
|
||
- [x] Docs: [crm-phase-6-0.md](crm-phase-6-0.md), module registry, phase area README
|
||
|
||
---
|
||
|
||
## Phase 6.1 — Enterprise CRM Core Business Entities ✅
|
||
|
||
- [x] Expanded Lead / Contact / Organization (numbers, multi-contact, soft delete, audit actors)
|
||
- [x] Lookups: lead_sources, lead_statuses, contact_types, organization_types, organization_industries
|
||
- [x] Lead assignments, tag engine, reusable addresses, custom fields + values
|
||
- [x] Versioned notes, attachment file-storage references (no binary), CRM audit log
|
||
- [x] Services / repositories / validators / permissions / events for Phase 6.1
|
||
- [x] Alembic `0002_phase_61_entities`
|
||
- [x] API coverage under `/api/v1` for entities + lookups
|
||
- [x] Tests: model, repository, service, API, permission, migration, validation, audit, tenant, docs
|
||
- [x] Docs: [crm-phase-6-1.md](crm-phase-6-1.md)
|
||
|
||
---
|
||
|
||
## Phase 6.2 — Enterprise Sales Process Engine ✅
|
||
|
||
- [x] Opportunity engine (number, title, revenue, probability, priority, close dates, soft delete, actors)
|
||
- [x] Unlimited pipelines + pipeline stages (start/won/lost/closed flags, required fields, exit validation)
|
||
- [x] Stage history, opportunity products (product_ref only), contact roles, competitors
|
||
- [x] Sales playbooks (versioned) + steps + assignments + completion tracking
|
||
- [x] Win/loss categories, reasons, immutable opportunity_win_loss snapshot
|
||
- [x] Rule-based forecasts (pipeline / weighted / committed; monthly/quarterly/annual)
|
||
- [x] Sales goals + targets with achievement %
|
||
- [x] Sales process definitions + sales_audit trail
|
||
- [x] Services / validators / events / permissions (`crm.pipelines|playbooks|forecasts|goals|targets.*`)
|
||
- [x] Alembic `0003_phase_62_sales_engine`; version `0.6.2.0`
|
||
- [x] API coverage for sales engine under `/api/v1`
|
||
- [x] Tests: pipeline, stage, playbook, forecast, win/loss, business rules, migration, permission, tenant, docs
|
||
- [x] Docs: [crm-phase-6-2.md](crm-phase-6-2.md)
|
||
|
||
---
|
||
|
||
## Phase 6.3 — Enterprise Sales Collaboration Platform ✅
|
||
|
||
- [x] Expanded sales activities (types, priority, CRM entity links, participants, reminders)
|
||
- [x] Tasks + checklists + completion tracking
|
||
- [x] Meetings + attendees + finish/outcome
|
||
- [x] Call logs (opportunity-linked) + call outcomes
|
||
- [x] Email threads/messages metadata only (no delivery)
|
||
- [x] Immutable sales timeline + timeline event links
|
||
- [x] Threaded/versioned comments, mentions, bookmarks, favorites
|
||
- [x] Sales team roles/members/assignments + notification preferences
|
||
- [x] Collaboration audit; events `crm.task|meeting|call|timeline|comment|mention.*`
|
||
- [x] Permissions `crm.tasks|meetings|calls|timeline|comments|mentions|team.*`
|
||
- [x] Alembic `0004_phase_63_collaboration`; version `0.6.3.0`
|
||
- [x] Tests + docs: [crm-phase-6-3.md](crm-phase-6-3.md)
|
||
|
||
### CRM Core Platform
|
||
|
||
- [x] Phases 6.0–6.3 complete (Foundation, Master Data, Sales Engine, Collaboration)
|
||
|
||
---
|
||
|
||
## Related Documents
|
||
|
||
- [Next Steps](next-steps.md)
|
||
- [Roadmap](roadmap.md)
|
||
- [Frontend docs](frontend/README.md)
|
||
- [docs/README.md](README.md)
|
||
- [CRM Phase 6.0](crm-phase-6-0.md)
|
||
- [CRM Phase 6.1](crm-phase-6-1.md)
|
||
- [CRM Phase 6.2](crm-phase-6-2.md)
|
||
- [CRM Phase 6.3](crm-phase-6-3.md)
|