2.4 KiB
2.4 KiB
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
- Criar projeto Spring Boot 3.x (via Spring Initializr ou manualmente) com as dependências:
spring-boot-starter-webspring-boot-starter-data-jpaspring-boot-starter-validationspring-boot-starter-securityflyway-corepostgresql(driver)lombok
- Criar a estrutura de pacotes conforme definido em
ARQUITETURA-SCHEMA.mdseçã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 - Criar
docker-compose.ymlinicial (apenas serviçopostgres, os demais serviços virão na etapa 09):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: - Configurar
application.ymlcom datasource apontando para o Postgres do Docker, e Flyway habilitado - Criar
src/main/resources/db/migration/V1__init.sqlvazio (ou só com um comentário) para validar que o Flyway roda corretamente na subida da aplicação - Criar arquivo
.env.examplecom as variáveis necessárias (senha do banco, etc.) — nunca commitar.envreal - Subir o Postgres via
docker compose up -d postgrese 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 postgressobe o banco corretamente- Aplicação conecta no Postgres e o Flyway registra a migration
V1__initna tabelaflyway_schema_history - Estrutura de pacotes criada conforme arquitetura
.env.exampledocumentado