3.7 KiB
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
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Padrões de Código
TypeScript/JavaScript
- Use TypeScript para todo o código
- Siga o style guide oficial do TypeScript
- Use ESLint e Prettier para formatação
- Mantenha o código limpo e bem documentado
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 featurefix: Correção de bugdocs: Mudanças na documentaçãostyle: Formatação, ponto e vírgula, etc.refactor: Refatoração de códigotest: Adição ou correção de testeschore: 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
- Descreva claramente as mudanças
- Inclua exemplos de uso quando relevante
- Atualize a documentação
- Certifique-se que todos os testes passam
- 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