Files
portalweb-api/CONTRIBUTING.md
2025-04-02 18:18:13 -03:00

3.7 KiB

Guia de Contribuição

Obrigado por considerar contribuir para o Portal Juru API! Este documento fornece um conjunto de diretrizes para contribuir com o projeto.

Como Contribuir

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

Padrões de Código

TypeScript/JavaScript

NestJS

  • Siga as melhores práticas do NestJS
  • Use decorators apropriadamente
  • Mantenha os módulos bem organizados
  • Use DTOs para validação de dados

Banco de Dados

  • Use TypeORM para todas as operações de banco de dados
  • Mantenha as queries SQL otimizadas
  • Use transações quando necessário
  • Documente as queries complexas

Estrutura do Projeto

src/
├── core/                  # Configurações e utilitários core
│   ├── configs/          # Configurações do projeto
│   ├── database/         # Configuração do banco de dados
│   └── constants/        # Constantes do sistema
├── data-consult/         # Módulo de consulta de dados
│   ├── dto/             # Data Transfer Objects
│   ├── controllers/     # Controladores
│   └── services/        # Serviços
├── orders-payment/       # Módulo de pedidos e pagamentos
│   ├── dto/             # Data Transfer Objects
│   ├── controllers/     # Controladores
│   └── services/        # Serviços
└── orders/              # Módulo de pedidos
    ├── modules/         # Módulos
    ├── controllers/     # Controladores
    ├── services/        # Serviços
    └── repositories/    # Repositórios

Convenções de Commits

Use o seguinte formato para commits:

<type>(<scope>): <subject>

<body>

<footer>

Tipos de commit:

  • feat: Nova feature
  • fix: Correção de bug
  • docs: Mudanças na documentação
  • style: Formatação, ponto e vírgula, etc.
  • refactor: Refatoração de código
  • test: Adição ou correção de testes
  • chore: Atualização de tarefas, configuração, etc.

Exemplo:

feat(orders): adiciona endpoint para criar pedidos

- Implementa validação de dados
- Adiciona testes unitários
- Atualiza documentação

Closes #123

Testes

  • Mantenha a cobertura de testes acima de 80%
  • Use Jest para testes
  • Escreva testes unitários e de integração
  • Execute todos os testes antes de submeter um PR
# Executar testes
npm run test

# Executar testes com cobertura
npm run test:cov

Documentação

  • Mantenha a documentação atualizada
  • Use Swagger para documentação da API
  • Documente todas as novas features
  • Atualize o README quando necessário

Pull Requests

  1. Descreva claramente as mudanças
  2. Inclua exemplos de uso quando relevante
  3. Atualize a documentação
  4. Certifique-se que todos os testes passam
  5. Solicite revisão de pelo menos um mantenedor

Issues

  • Use o template apropriado
  • Forneça informações detalhadas
  • Inclua exemplos de reprodução quando possível
  • Use labels apropriadas

Código de Conduta

  • Seja respeitoso
  • Mantenha discussões construtivas
  • Aceite críticas construtivas
  • Ajude outros contribuidores

Suporte

Se você tiver dúvidas ou precisar de ajuda:

  • Abra uma issue
  • Entre em contato com os mantenedores
  • Consulte a documentação