142 lines
3.7 KiB
Markdown
142 lines
3.7 KiB
Markdown
# 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
|
|
|
|
- Use TypeScript para todo o código
|
|
- Siga o [style guide oficial do TypeScript](https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html)
|
|
- Use ESLint e Prettier para formatação
|
|
- Mantenha o código limpo e bem documentado
|
|
|
|
### NestJS
|
|
|
|
- Siga as [melhores práticas do NestJS](https://docs.nestjs.com/recipes/prisma)
|
|
- 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
|
|
|
|
```bash
|
|
# 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
|
|
|