Initial commit

This commit is contained in:
tiago
2026-10-01 11:00:47 -03:00
commit 9d2ab731ee
149 changed files with 11351 additions and 0 deletions
@@ -0,0 +1,49 @@
# Etapa 01 — Setup do projeto, Docker e Flyway
## Objetivo
Criar o esqueleto do projeto backend em Spring Boot, configurar a conexão com PostgreSQL via Docker e deixar o Flyway pronto para rodar as migrations que virão nas próximas etapas.
## Contexto
Este é o ponto de partida do projeto. Nenhum código de negócio é escrito aqui — o foco é ambiente funcional: projeto sobe, conecta no banco, Flyway aplica a primeira migration vazia com sucesso.
Consulte `ARQUITETURA-SCHEMA.md` (seção 1 e 2) para a stack e estrutura de pacotes a seguir.
## Tarefas
1. Criar projeto Spring Boot 3.x (via Spring Initializr ou manualmente) com as dependências:
- `spring-boot-starter-web`
- `spring-boot-starter-data-jpa`
- `spring-boot-starter-validation`
- `spring-boot-starter-security`
- `flyway-core`
- `postgresql` (driver)
- `lombok`
2. Criar a estrutura de pacotes conforme definido em `ARQUITETURA-SCHEMA.md` seção 2 (`config`, `domain`, `repository`, `scraper`, `normalizer`, `proxy`, `service`, `controller`, `security`, `worker`) — pode começar com pacotes vazios, serão populados nas próximas etapas
3. Criar `docker-compose.yml` inicial (apenas serviço `postgres`, os demais serviços virão na etapa 09):
```yaml
services:
postgres:
image: postgres:16
environment:
POSTGRES_DB: leadscraper
POSTGRES_USER: leadscraper
POSTGRES_PASSWORD: <definir via .env>
ports:
- "5433:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
```
4. Configurar `application.yml` com datasource apontando para o Postgres do Docker, e Flyway habilitado
5. Criar `src/main/resources/db/migration/V1__init.sql` vazio (ou só com um comentário) para validar que o Flyway roda corretamente na subida da aplicação
6. Criar arquivo `.env.example` com as variáveis necessárias (senha do banco, etc.) — nunca commitar `.env` real
7. Subir o Postgres via `docker compose up -d postgres` e validar que o Spring Boot conecta e aplica a migration inicial sem erro
## Critérios de aceite
- [ ] Projeto Spring Boot compila e sobe sem erros
- [ ] `docker compose up -d postgres` sobe o banco corretamente
- [ ] Aplicação conecta no Postgres e o Flyway registra a migration `V1__init` na tabela `flyway_schema_history`
- [ ] Estrutura de pacotes criada conforme arquitetura
- [ ] `.env.example` documentado