Initial commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user