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

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