Bem-vindo ao Event Sync Backend! Esta é uma API robusta construída com NestJS e Fastify para alimentar a plataforma de gerenciamento de eventos.
- Framework: NestJS (adaptador Fastify)
- Banco de Dados: PostgreSQL (rodando via Docker)
- ORM: Drizzle ORM
- Validação: Zod & nestjs-zod
- Autenticação: JWT & Passport
- Documentação: Swagger/OpenAPI
O projeto segue princípios de arquitetura limpa/modular:
src/application/: Regras de negócio da aplicação.services/: Contém a lógica de negócios e casos de uso (ex:AuthService,EventsService).
presentation/: Camada de entrada de dados.controllers/: Define as rotas (endpoints) e lida com requisições HTTP.dtos/: Objetos de Transferência de Dados (Data Transfer Objects) para validação de entrada.
domain/: Entidades e interfaces do domínio.infra/: Implementação de detalhes técnicos.database/: Configurações do banco, schemas do Drizzle e seeds.
main.ts: Ponto de entrada da aplicação.
- Node.js (v20+)
- Docker e Docker Compose
npm installCopie o arquivo de exemplo e ajuste as variáveis se necessário.
cp .env.example .envUtilize o Docker Compose para iniciar o container do PostgreSQL.
docker-compose up -dIsso iniciará o banco na porta definida (ex: 5433).
Gere as tabelas e popule com dados iniciais:
npm run db:resetIsso executa sequencialmente: drizzle-kit generate, migrate e seed.
# Modo desenvolvimento (com hot-reload)
npm run start:devA API estará disponível em http://localhost:3000 (ou porta configurada).
Acesse o Swagger UI para explorar os endpoints:
http://localhost:3000/docs
# Rodar testes
npm run test
# Gerar migrações do Drizzle
npm run db:generate
# Aplicar migrações
npm run db:migrate