Projeto desenvolvido durante o evento NLW (Next Level Week) da Rocketseat, focado na criação de uma API robusta para gerenciamento de agentes inteligentes.
- Node.js - Runtime JavaScript
- TypeScript - Superset tipado do JavaScript
- Fastify - Framework web rápido e eficiente
- Zod - Validação de esquemas TypeScript-first
- PostgreSQL - Banco de dados relacional
- pgvector - Extensão para operações com vetores
- Drizzle ORM - ORM TypeScript moderno e performático
- Drizzle Kit - Ferramenta de migração
- Biome - Linter e formatador de código
- Ultracite - Configuração de regras de código
- Docker Compose - Orquestração de containers
src/
├── db/
│ ├── connection.ts # Conexão com banco de dados
│ ├── migrations/ # Migrações do banco
│ ├── schema/ # Esquemas das tabelas
│ └── seed.ts # População inicial do banco
├── http/
│ └── rooms/ # Rotas relacionadas a salas
├── env.ts # Validação de variáveis de ambiente
└── server.ts # Servidor principal
- Node.js (versão 20+)
- Docker e Docker Compose
- PostgreSQL (se não usar Docker)
Crie um arquivo .env na raiz do projeto:
# Porta do servidor
PORT=3333
# URL de conexão com PostgreSQL
DATABASE_URL=postgresql://docker:docker@localhost:5433/agentsdocker-compose up -dnpm installnpx drizzle-kit migratenpm run db:seednpm run devnpm startnpm run dev- Executa em modo desenvolvimento com watchnpm start- Executa em modo produçãonpm run db:seed- Popula o banco com dados iniciais
- Todas as variáveis de ambiente são validadas
- Tipos TypeScript gerados automaticamente
- Validação de entrada nas rotas da API
- Schema-first com tipos TypeScript
- Migrações versionadas
- Queries type-safe
- Integração completa com TypeScript
- Validação automática de request/response
- Serialização otimizada
- Separação por domínios (
rooms,agents, etc.) - Conexão centralizada com banco
- Configuração de ambiente tipada
Configurado com:
- Formatação automática (2 espaços, LF, aspas simples)
- Regras de linting strictas via Ultracite
- Integração com TypeScript
npx drizzle-kit studioGET /health
GET /rooms - Lista todas as salas
O projeto inclui configuração completa com:
- PostgreSQL 17 com extensão pgvector
- Porta exposta:
5433 - Credenciais:
docker/docker - Database:
agents
- ✅ Configuração base da API
- ✅ Integração com PostgreSQL
- ✅ Sistema de migrações
- ✅ Validação de dados
- ✅ Docker para desenvolvimento
Desenvolvido com ❤️ durante o NLW da Rocketseat