Backend em Node.js para gerenciamento de entrevistas técnicas. Fornece APIs REST para lidar com perguntas, categorias, convites, sessões de entrevista, transcrição de áudio e avaliação automática de respostas usando a API da OpenAI.
src/app.ts– ponto de entrada e configuração do Express.src/routes/– rotas REST (perguntas, categorias, convites, sessões, transcribe etc).src/controllers/– lógica de negócios; ex.:sessionsController.tspara agregação de sessões concluídas.src/lib/– utilitários como cliente do Prisma e integração com a OpenAI.api/index.ts– wrapper HTTP para execução em ambientes serverless (Vercel).prisma/– schema do banco de dados, migrações e scripts de seed.
- Node.js 18+
- Banco de dados PostgreSQL acessível via
DATABASE_URL - Chave da OpenAI em
OPENAI_API_KEYpara transcrição e avaliação
npm installCrie um arquivo .env com as variáveis necessárias:
DATABASE_URL="postgresql://usuario:senha@host:5432/banco"
OPENAI_API_KEY="sua-chave"
PORT=3333 # opcionalnpm run devnpm run build
npm startcurl "http://localhost:3333/api/questions?categoryId=UUID&page=1&limit=5"Resposta:
{
"data": [ /* perguntas */ ],
"total": 42,
"page": 1,
"limit": 5
}curl -F "audio=@resposta.webm" http://localhost:3333/api/transcribeimport { evaluateSessionWithOpenAI } from "./src/lib/openai";
const feedback = await evaluateSessionWithOpenAI(answers, { name: "Backend" });
console.log(feedback);npm run dev– inicia o servidor com recarga automática viats-node-dev.npm run build– compila o TypeScript paradist/.npm start– executa o código compilado.