Guia de Contribuição¶
Este documento descreve os padrões de código, processo de contribuição e boas práticas para o projeto Billings Ease.
Índice¶
Visão Geral¶
Este guia estabelece padrões para contribuições ao projeto Billings Ease.
Princípios: - Código limpo e legível - Testes obrigatórios - Documentação atualizada - Revisão de código
Padrões de Código¶
Backend (Go)¶
Formatação:
- Use gofmt ou goimports
- Máximo 100 caracteres por linha
- Use tabs para indentação
Nomenclatura:
- Pacotes: lowercase, uma palavra
- Funções: PascalCase (públicas), camelCase (privadas)
- Constantes: PascalCase ou UPPER_CASE
Exemplo:
// ✅ BOM
func CreateUser(user *models.User) error {
// ...
}
// ❌ EVITAR
func create_user(user *models.User) error {
// ...
}
Estrutura: - Handlers: apenas HTTP concerns - Services: lógica de negócio - Repositories: acesso a dados - Models: estruturas de dados
Frontend (TypeScript/React)¶
Formatação: - Use Prettier - Máximo 100 caracteres por linha - 2 espaços para indentação
Nomenclatura:
- Componentes: PascalCase
- Funções: camelCase
- Constantes: UPPER_CASE ou camelCase
- Hooks: useXxx
Exemplo:
// ✅ BOM
export function CycleDetails() {
const { cycle } = useActiveCycle()
return <div>...</div>
}
// ❌ EVITAR
export function cycle_details() {
// ...
}
Estrutura:
- Componentes em components/
- Páginas em pages/
- Hooks em hooks/
- Utils em utils/ ou lib/
Processo de Contribuição¶
1. Fork e Clone¶
# Fork no GitHub, depois:
git clone https://github.com/seu-usuario/billings-ease.git
cd billings-ease
2. Criar Branch¶
git checkout -b feature/minha-feature
# ou
git checkout -b fix/correcao-bug
Convenção de nomes:
- feature/ - Nova funcionalidade
- fix/ - Correção de bug
- docs/ - Documentação
- refactor/ - Refatoração
3. Desenvolver¶
- Seguir padrões de código
- Escrever testes
- Atualizar documentação se necessário
4. Commits¶
git add .
git commit -m "feat: adiciona nova funcionalidade X"
5. Push e Pull Request¶
git push origin feature/minha-feature
Criar Pull Request no GitHub com: - Descrição clara - Referência a issues (se houver) - Screenshots (se UI)
Commits¶
Formato¶
Seguir Conventional Commits:
<tipo>(<escopo>): <descrição>
[corpo opcional]
[rodapé opcional]
Tipos¶
feat- Nova funcionalidadefix- Correção de bugdocs- Documentaçãostyle- Formataçãorefactor- Refatoraçãotest- Testeschore- Tarefas de manutenção
Exemplos¶
feat(cycles): adiciona validação de símbolos permitidos
fix(auth): corrige refresh token expirado
docs(api): atualiza documentação de endpoints
test(handlers): adiciona testes para login
refactor(services): simplifica lógica de fertilidade
Pull Requests¶
Checklist¶
Antes de criar PR:
- [ ] Código segue padrões
- [ ] Testes passam (
npm test/go test ./...) - [ ] Testes cobrem mudanças
- [ ] Documentação atualizada
- [ ] Sem linter errors
- [ ] Commits seguem convenção
Template de PR¶
## Descrição
Breve descrição das mudanças
## Tipo de Mudança
- [ ] Bug fix
- [ ] Nova funcionalidade
- [ ] Breaking change
- [ ] Documentação
## Como Testar
Passos para testar as mudanças
## Screenshots (se aplicável)
Adicionar screenshots de mudanças de UI
Testes¶
Backend¶
Executar todos:
go test ./...
Com coverage:
go test -cover ./...
Teste específico:
go test ./internal/handlers/auth
Requisitos: - Novas funcionalidades devem ter testes - Coverage mínimo: 70% (objetivo)
Frontend¶
Executar todos:
npm test
Watch mode:
npm run test:watch
Coverage:
npm run test:coverage
Requisitos: - Componentes devem ter testes - Hooks devem ter testes - Coverage mínimo: 60% (objetivo)
Code Review¶
Processo¶
- Criar PR
- Aguardar revisão
- Responder feedback
- Fazer ajustes se necessário
- Merge após aprovação
Critérios de Revisão¶
- Código limpo e legível
- Segue padrões do projeto
- Testes adequados
- Documentação atualizada
- Sem breaking changes (ou documentados)