Backend da plataforma DuoLibras, desenvolvido com Node.js, Express, TypeScript e Prisma.
- Node.js
- TypeScript
- Express
- Prisma (ORM)
- PostgreSQL
- Docker
- JWT para autenticação
- Zod para validação
- Jest para testes
- Node.js (versão LTS)
- Docker e Docker Compose
- pnpm (recomendado) ou npm
- PostgreSQL (via Docker)
- Clone o repositório
git clone git@github.com:seu-usuario/duolibras-backend.git
cd duolibras-backend- Instale as dependências
pnpm install- Configure as variáveis de ambiente
cp .env.example .envConfigure o arquivo .env com suas variáveis:
DATABASE_URL="postgresql://duolibras-postgres:duolibras-postgres@localhost:5432/duolibras-db?schema=public"
JWT_SECRET="sua-chave-secreta"
AWS_S3_BUCKET_NAME="o-nome-do-seu-bucket-da-aws"
AWS_S3_REGION="a-região-do-seu-bucket-da-aws"
AWS_ACCESS_KEY_ID="a-sua-chave-de-acesso-do-bucket-da-aws"
AWS_SECRET_ACCESS_KEY="a-sua-chave-secreta-de-acesso-do-bucket-da-aws"- Inicie o banco de dados
pnpm db:up- Execute as migrações
pnpm db:migrate:dev- Popular o banco com dados iniciais (opcional)
pnpm db:seed- Inicie o servidor de desenvolvimento
pnpm dev| Comando | Descrição |
|---|---|
pnpm dev |
Inicia o servidor de desenvolvimento |
pnpm typecheck |
Verifica tipos TypeScript |
pnpm test |
Executa testes em modo watch |
pnpm db:push |
Atualiza o banco com alterações do schema |
pnpm db:migrate:dev |
Cria uma nova migração |
pnpm db:up |
Inicia o container Docker do banco |
pnpm db:stop |
Para o container Docker do banco |
pnpm db:down |
Remove o container Docker do banco |
pnpm db:seed |
Popula o banco com dados iniciais |
Iniciar o banco:
pnpm db:upCriar nova migração:
pnpm db:migrate:dev -- --name nome_da_migracaoParar o banco:
pnpm db:stopRemover o container:
pnpm db:downExecute os testes com:
pnpm testO projeto usa JWT para autenticação. Certifique-se de:
- Configurar JWT_SECRET no .env
- Incluir o token nos headers das requisições autenticadas:
Authorization: Bearer <seu-token>O docker-compose.yml inclui:
- PostgreSQL
- Portas e volumes configurados
- Variáveis de ambiente para o banco
- Faça o fork
- Crie sua branch: git checkout -b feature/nome
- Commit suas mudanças: git commit -m 'Adiciona feature'
- Push para a branch: git push origin feature/nome
- Abra um Pull Request