Especificação Técnica¶
Especificação original (02/07/2026) vs. implementação real
Este documento foi escrito antes do início do desenvolvimento e descrevia uma stack (DRF + React/Next.js/TypeScript/Tailwind) e uma arquitetura em camadas (Clean Architecture/DDD/Event Driven) que não correspondem ao MVP entregue (finalizado 10/09/2026, v1.0.0, 100% em produção). A stack real é Django Templates server-rendered puro — decisão formalizada nos ADRs 002-drf-posmvp.md e 005-nextjs-posmvp.md do próprio repositório coreflow-crm (categoria "Pós-MVP"). A seção Stack Oficial abaixo foi corrigida nesta revisão; as demais seções (multiempresa, UUID, soft delete, event-driven etc.) refletem a especificação original e podem divergir do código real — consultar o repositório coreflow-crm para o detalhe granular de cada convenção.
Objetivo¶
Definir os padrões técnicos oficiais para implementação do CoreFlow CRM.
Este documento serve como referência para desenvolvimento, revisão de código, automação por IA e evolução do produto.
Stack Real (implementada)¶
Backend¶
- Python 3.12+
- Django 5+ (Django Templates server-rendered — MTV clássico, sem camada de apresentação desacoplada)
- Celery
- Redis
Banco de Dados¶
- PostgreSQL 16+
Frontend¶
- Django Templates + Bootstrap 5, tema Dracula at Night (padrão Django-only, ver Standards Frontend)
- Não usa React, Next.js, TypeScript nem Tailwind CSS — essa stack foi avaliada e descartada para o MVP (ADR-005-nextjs-posmvp)
API REST (adicionada pós-MVP)¶
Django REST Framework foi incorporado depois do MVP (14/09/2026, skill hx-implementar-api), cobrindo 3 domínios com TokenAuthentication — não é a base arquitetural do produto, é uma camada adicional (ADR-002-drf-posmvp).
Infraestrutura¶
- Docker
- Docker Compose
- Nginx Proxy Manager
- GitHub Actions
Arquitetura Original Planejada (não seguida integralmente)¶
A especificação original previa:
- Clean Architecture
- DDD
- SOLID
- API First
- Event Driven
- AI First Documentation
O MVP real segue Django MTV pragmático — models/views/templates por app de domínio (accounts, contas, contatos, leads, oportunidades, atividades, tarefas, anotacoes, auditoria), sem separação formal em camadas application/domain/infrastructure/presentation.
Organização Original Planejada (não implementada)¶
Backend¶
Cada módulo deverá possuir:
- Models
- Services
- Repositories
- Serializers
- Views
- URLs
- Permissions
- Validators
- Tests
API REST¶
Padrões:
- JSON
- UTF-8
- HTTPS
- JWT
- OpenAPI
Versionamento¶
Identificadores¶
Todos os registros utilizarão:
- UUID
Nunca utilizar ID sequencial nas APIs públicas.
Datas¶
Sempre utilizar:
- UTC
Formato:
Soft Delete¶
Obrigatório.
Campos:
- deleted_at
- deleted_by
Auditoria¶
Obrigatória.
Campos mínimos:
- created_at
- updated_at
- created_by
- updated_by
Multiempresa¶
Todas as entidades deverão possuir:
Toda consulta deverá respeitar o tenant ativo.
Segurança¶
Obrigatório:
- JWT
- RBAC
- HTTPS
- Auditoria
- LGPD
Cache¶
Redis será utilizado para:
- Sessões
- Cache
- Filas
- Rate Limit
Arquivos¶
Uploads utilizando serviço centralizado do Core.
Não armazenar arquivos diretamente no módulo CRM.
Eventos¶
Publicar apenas Domain Events.
Nunca disparar integrações diretamente pela camada de apresentação.
Logs¶
Registrar:
- Erros
- Auditoria
- Eventos
- Integrações
Testes¶
Obrigatórios:
- Unitários
- Integração
- API
- Permissões
Qualidade¶
Ferramentas:
- Ruff
- Black
- Pytest
- Coverage
- mypy
Performance¶
Objetivos:
- APIs < 300 ms
- Paginação obrigatória
- Lazy Loading
- Índices adequados
- Consultas otimizadas
Convenções¶
Seguir integralmente os Standards do CoreFlow Docs.
Não criar exceções locais.
Compatibilidade (visão original, não implementada)¶
O CRM deveria integrar-se nativamente com um Core compartilhado e demais produtos da plataforma (ver status real). Hoje não há integração implementada entre CoreFlow CRM e outros produtos do ambiente hauxtech.
Objetivo Final¶
Estabelecer uma base técnica consistente, escalável e padronizada para implementação e evolução contínua do CoreFlow CRM.