🤝 Guia de Contribuição - ecosif-angular
📋 Bem-vindo!
Obrigado por considerar contribuir para ecosif-angular! Este guia explica como contribuir de forma efetiva.
🔄 Processo de Contribuição
1. Fork e Clone
# Fork o repositório no GitHub
# Clone seu fork
git clone https://github.com/SEU_USUARIO/ecosif-angular.git
cd ecosif-angular
2. Criar Branch
# Criar branch para sua feature
git checkout -b feature/nova-funcionalidade
# ou para bugfix
git checkout -b fix/correcao-bug
3. Desenvolver
- ✅ Siga os padrões de código
- ✅ Adicione testes quando possível
- ✅ Atualize documentação se necessário
4. Commit
# Commits descritivos
git commit -m "feat: adiciona nova funcionalidade X"
git commit -m "fix: corrige bug Y"
git commit -m "docs: atualiza documentação"
Convenção de Commits:
- feat: Nova funcionalidade
- fix: Correção de bug
- docs: Documentação
- style: Formatação
- refactor: Refatoração
- test: Testes
- chore: Tarefas
5. Push e Pull Request
# Push para seu fork
git push origin feature/nova-funcionalidade
# Criar Pull Request no GitHub
✅ Checklist de Contribuição
Antes de submeter Pull Request, verifique:
- [ ] Código segue padrões do projeto
- [ ] Testes passam (
npm test) - [ ] Linting passa (
ng lint) - [ ] Build funciona (
ng build) - [ ] Documentação atualizada (se necessário)
- [ ] Sem console.log em produção
- [ ] Comentários adicionados onde necessário
📝 Padrões de Código
TypeScript
// ✅ Bom
export class CompanyService {
private apiUrl: string;
constructor(private http: HttpClient) {}
getCompanies(): Observable<Company[]> {
return this.http.get<Company[]>(this.apiUrl);
}
}
// ❌ Evitar
export class CompanyService {
getCompanies() {
return this.http.get(this.apiUrl);
}
}
Nomenclatura
- Components: PascalCase (ex:
CompanyDetailsComponent) - Services: PascalCase + Service (ex:
CompanyService) - Models: PascalCase (ex:
Company) - Variáveis: camelCase (ex:
companies) - Constantes: UPPER_SNAKE_CASE (ex:
API_URL)
Estrutura de Arquivos
component/
├── component.component.ts
├── component.component.html
├── component.component.scss
└── component.component.spec.ts
🧪 Testes
Executar Testes
npm test
Adicionar Testes
describe('CompanyService', () => {
it('should fetch companies', () => {
// Test implementation
});
});
📚 Documentação
Atualizar Documentação
Se adicionar funcionalidades, atualize:
- ✅ README.md (se necessário)
- ✅ Documentação em
/docs - ✅ Comentários no código
🔍 Code Review
Pull Requests serão revisados considerando:
- Funcionalidade - Funciona corretamente?
- Código - Segue padrões?
- Testes - Tem testes?
- Documentação - Está documentado?
- Performance - É eficiente?
❓ Dúvidas?
Entre em contato: - 📧 Email: support@ecosif.net.br - 💬 Issues no GitHub
Última Atualização: 2025-12-01