feat: add full project - backend, frontend, docker, specs and configs

This commit is contained in:
MatheusAlves96 2026-04-20 23:59:45 -03:00
parent b77c7d5a01
commit e6cb06255b
24489 changed files with 61341 additions and 36 deletions

View file

@ -0,0 +1,109 @@
# Tasks: Docker Setup
**Branch**: `002-docker-setup`
**Plan**: `.specify/features/002-docker-setup/plan.md`
**Created**: 2026-04-13
---
## Phase 1 — Backend Dockerfile
### T001 — Criar backend/Dockerfile
- **Complexity**: S
- **Dependencies**: nenhuma
- **Spec ref**: FR1, FR3
- **Files**: `backend/Dockerfile`, `backend/entrypoint.sh`
- **Done when**: `docker build -t imob-backend ./backend` conclui sem erro
### T002 — Criar entrypoint.sh com migrations + seed + server
- **Complexity**: S
- **Dependencies**: T001
- **Spec ref**: FR3
- **Files**: `backend/entrypoint.sh`
- **Done when**: Script executa `flask db upgrade`, seeder, e sobe Flask na porta 5000
---
## Phase 2 — Frontend Dockerfile
### T003 — Criar frontend/Dockerfile
- **Complexity**: S
- **Dependencies**: nenhuma [P] paralelo com T001
- **Spec ref**: FR1, FR4
- **Files**: `frontend/Dockerfile`
- **Done when**: `docker build -t imob-frontend ./frontend` conclui sem erro
### T004 — Atualizar vite.config.ts para proxy Docker
- **Complexity**: S
- **Dependencies**: T003
- **Spec ref**: FR1
- **Files**: `frontend/vite.config.ts`
- **Done when**: Proxy aponta para `http://backend:5000` (nome do serviço Docker); local dev ainda funciona via variável de ambiente
---
## Phase 3 — Orquestração
### T005 — Criar docker-compose.yml
- **Complexity**: M
- **Dependencies**: T001, T003
- **Spec ref**: FR1, FR2, FR4, FR5
- **Files**: `docker-compose.yml`
- **Done when**: `docker-compose config` valida; 3 serviços definidos com healthcheck no db
### T006 — Criar .env.example na raiz
- **Complexity**: S
- **Dependencies**: T005
- **Spec ref**: FR5, NFR4
- **Files**: `.env.example` (raiz)
- **Done when**: Todas as variáveis usadas no compose estão documentadas com valores de exemplo
### T007 — Verificar .gitignore cobre .env
- **Complexity**: S
- **Dependencies**: T006
- **Spec ref**: NFR3, NFR4
- **Files**: `.gitignore`
- **Done when**: `.env` está no .gitignore e não aparece em `git status`
---
## Phase 4 — Script de conveniência
### T008 — Criar start.ps1 na raiz
- **Complexity**: S
- **Dependencies**: T005
- **Spec ref**: FR6
- **Files**: `start.ps1`
- **Done when**: `.\start.ps1` valida Docker e executa compose; exibe erro claro se Docker não estiver instalado
---
## Validação
### T009 — Testar docker-compose up --build end-to-end
- **Complexity**: M
- **Dependencies**: T005, T008
- **Spec ref**: Todos os Acceptance Scenarios
- **Done when**:
- `http://localhost:5173` carrega homepage
- `http://localhost:5000/api/v1/homepage-config` retorna 200
- `http://localhost:5000/api/v1/properties?featured=true` retorna array
- Editar um `.tsx` reflete no browser via hot-reload
---
## Resumo
| Task | Fase | Complexidade | Paralelo? |
|------|------|-------------|-----------|
| T001 | Backend Dockerfile | S | - |
| T002 | entrypoint.sh | S | - |
| T003 | Frontend Dockerfile | S | ✅ com T001 |
| T004 | vite proxy Docker | S | - |
| T005 | docker-compose.yml | M | - |
| T006 | .env.example raiz | S | - |
| T007 | .gitignore check | S | - |
| T008 | start.ps1 | S | - |
| T009 | Validação E2E | M | - |
**MVP**: T001T008 = ambiente Docker funcional.