Pular para conteúdo

🤝 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:

  1. Funcionalidade - Funciona corretamente?
  2. Código - Segue padrões?
  3. Testes - Tem testes?
  4. Documentação - Está documentado?
  5. Performance - É eficiente?

❓ Dúvidas?

Entre em contato: - 📧 Email: support@ecosif.net.br - 💬 Issues no GitHub


Última Atualização: 2025-12-01