Projeto desenvolvido durante um evento da Rocketseat utilizando tecnologias modernas para criação de uma API robusta e eficiente.
- Node.js com TypeScript nativo (experimental strip types)
- Fastify - Framework web rápido e eficiente
- PostgreSQL com extensão pgvector para vetores
- Drizzle ORM - Type-safe database operations
- Zod - Schema validation
- Docker - Containerização do banco de dados
- Biome - Linting e formatação de código
O projeto segue uma arquitetura modular com:
- Separação de responsabilidades entre rotas, schemas e conexão com banco
- Validação de schemas com Zod para type safety
- ORM type-safe com Drizzle para operações de banco de dados
- Validação de variáveis de ambiente centralizadas
- Node.js (versão com suporte a
--experimental-strip-types
) - Docker e Docker Compose
git clone <url-do-repositorio>
cd server
docker-compose up -d
Crie um arquivo .env
na raiz do projeto:
PORT=3333
DATABASE_URL=postgresql://docker:docker@localhost:5432/agents
npm install
npx drizzle-kit migrate
npm run db:seed
Desenvolvimento:
npm run dev
Produção:
npm start
npm run dev
- Executa o servidor em modo de desenvolvimento com hot reloadnpm start
- Executa o servidor em modo de produçãonpm run db:seed
- Popula o banco de dados com dados de exemplo
A API estará disponível em http://localhost:3333
GET /health
- Health check da aplicaçãoGET /rooms
- Lista as salas disponíveis
Desenvolvido com ❤️ durante o NLW da Rocketseat