Base Django para projeto de gestão empresarial (CRM).
Status: projeto em desenvolvimento — o MVP descrito em docs/first_prd.md ainda não está concluído; APIs, telas e regras podem mudar até o primeiro release estável.
- Índice:
docs/README.md - PRD do MVP (referência principal):
docs/first_prd.md - Decisões técnicas e checklist pré-sprint:
docs/checklist_pre_codigo.md
- Python:
>=3.14,<4.0 - Django:
>=6.0.3,<7.0 - Interface: Bootstrap 5 em templates Django (SSR)
- Banco em desenvolvimento: SQLite (padrão)
- Banco alvo em produção: PostgreSQL —
postgres:17.6-bookwormvia Docker Compose no ambiente local - Estáticos em deploy containerizado: WhiteNoise (planejado; ver
docs/checklist_pre_codigo.md) - Uploads (
MEDIA): disco local; em Docker usar volume persistente noMEDIA_ROOT(sem S3 na fase inicial) - Ambiente/dependências:
uv - Lint/format Python:
ruff - Lint/format templates:
djlint - Testes:
pytest+pytest-django
.
├── apps_django/ # Projeto Django e apps de borda
│ ├── contas/ # App de autenticação (usuário por e-mail)
│ ├── settings.py
│ ├── urls.py
│ └── ...
├── core/ # Regras de negócio puras (inicia vazio)
│ └── services/
├── tests/ # Testes
│ └── borda_django/ # Testes de borda Django
├── deploy/ # Docker e Compose
├── templates/ # Templates Django
├── static/ # Assets estáticos
└── manage.py
-
Copie o arquivo de variáveis de ambiente:
cp .env-sample .env
-
Instale as dependências de desenvolvimento:
make install-dev
-
Execute as migrações:
make migrate
-
Crie um superusuário:
uv run python manage.py createsuperuser
make runA aplicação estará disponível em http://localhost:8000.
make test # todos os testes
make test-borda # testes de borda Django
make test-cov # com coberturamake lint
make formatO projeto inclui .vscode/launch.json configurado para depurar o runserver com debugpy.
Certifique-se de que o interpretador Python do VS Code aponta para o .venv criado pelo uv.
Para instalar os ganchos:
make pre-commit-installPara executar manualmente:
make pre-commit-runPara usar PostgreSQL no desenvolvimento, ajuste no .env:
DATABASE_ENGINE=postgresql
DB_NAME=crm
DB_USER=crm
DB_PASSWORD=crm
DB_HOST=localhost
DB_PORT=5432Suba o container:
make up-dbDerrube:
make down-dbO app contas substitui o modelo de usuário padrão do Django para usar e-mail como credencial de login.
USERNAME_FIELD = 'email'createsuperusersolicita apenas e-mail, nome e senha- O campo
usernameé preenchido automaticamente com o e-mail - Backend customizado
EmailBackendpermite autenticação por e-mail
Consulte .env-sample para a lista completa de variáveis necessárias.