Como Contribuir
Obrigado por considerar contribuir com o OitoPorOito! Este guia irá ajudá-lo a começar.
Código de Conduta
Ao participar deste projeto, você concorda em seguir nosso Código de Conduta.
Formas de Contribuir
Existem várias maneiras de contribuir:
💻 Código
- Implementar novas funcionalidades
- Corrigir bugs
- Melhorar performance
- Refatorar código
- Escrever testes
📖 Documentação
- Melhorar docs existentes
- Adicionar exemplos
- Corrigir typos
- Traduzir conteúdo
🎨 Design
- Melhorar UI/UX
- Criar assets (ícones, ilustrações)
- Propor novos temas
- Acessibilidade
🐛 Reportar Bugs
- Abrir issues detalhadas
- Ajudar a reproduzir bugs
- Testar correções
💡 Sugestões
- Propor novas funcionalidades
- Melhorias de usabilidade
- Feedback geral
👥 Comunidade
- Responder perguntas
- Ajudar outros usuários
- Compartilhar conhecimento
Primeiros Passos
1. Fork o Repositório
2. Clone seu Fork
3. Configure os Remotes
# Adicione o upstream
git remote add upstream https://github.com/Oito-Por-Oito/frontend.git
# Verifique
git remote -v
4. Instale Dependências
5. Crie uma Branch
# Para features
git checkout -b feature/nome-da-feature
# Para bugfixes
git checkout -b fix/descricao-do-bug
# Para docs
git checkout -b docs/descricao-melhoria
Workflow
1. Mantenha sua Fork Atualizada
2. Faça suas Mudanças
Siga nosso Guia de Estilo:
- ✅ Código limpo e legível
- ✅ Comentários quando necessário
- ✅ Testes para novas funcionalidades
- ✅ Documentação atualizada
3. Commit suas Mudanças
Use Conventional Commits:
# Feature
git commit -m "feat: adiciona modo de jogo personalizado"
# Bugfix
git commit -m "fix: corrige movimento de peão en passant"
# Docs
git commit -m "docs: atualiza guia de instalação"
# Style
git commit -m "style: formata componente ChessBoard"
# Refactor
git commit -m "refactor: simplifica lógica de validação"
# Test
git commit -m "test: adiciona testes para useAuth hook"
Tipos de commit:
- feat: Nova funcionalidade
- fix: Correção de bug
- docs: Documentação
- style: Formatação (não afeta código)
- refactor: Refatoração
- test: Testes
- chore: Tarefas gerais (dependências, config)
- perf: Performance
4. Push para seu Fork
5. Abra um Pull Request
- Vá para seu fork no GitHub
- Clique em "Compare & pull request"
- Preencha o template de PR
- Aguarde review
Pull Request Guidelines
Template
## Descrição
[Descreva o que foi feito]
## Tipo de Mudança
- [ ] 🐛 Bugfix
- [ ] ✨ Nova feature
- [ ] 📖 Documentação
- [ ] 🎨 Estilo/UI
- [ ] ♻️ Refactor
## Como Testar
1. Clone o branch
2. Execute `npm install`
3. Execute `npm run dev`
4. Teste X, Y, Z
## Screenshots (se aplicável)
[Cole screenshots]
## Checklist
- [ ] Código segue guia de estilo
- [ ] Self-review realizado
- [ ] Comentários adicionados
- [ ] Documentação atualizada
- [ ] Testes passam
- [ ] Sem warnings no console
Boas Práticas
✅ Um PR = Uma funcionalidade/correção - Mantenha PRs focados - Mais fácil de revisar - Mais rápido para mergear
✅ Descrição Clara - Explique o problema - Descreva a solução - Adicione screenshots/gifs
✅ Commits Atômicos - Um commit = Uma mudança lógica - Facilita o histórico
✅ Testes - Adicione testes para novos recursos - Garanta que testes existentes passam
✅ Documentação - Atualize docs relevantes - Adicione JSDoc em funções
Processo de Review
O que esperar
- Review automatizado: CI/CD roda testes
- Review por pares: Mantainer revisa código
- Feedback: Podem ser solicitadas mudanças
- Aprovação: Após ajustes, PR é aprovado
- Merge: Mantainer faz merge
Tempo de Resposta
- Issues: 1-3 dias
- PRs simples: 2-5 dias
- PRs complexos: 1-2 semanas
Revisões Solicitadas
Se mudanças forem solicitadas:
# Faça as mudanças
git add .
git commit -m "fix: ajustes conforme review"
git push origin feature/nome-da-feature
PR é automaticamente atualizado.
Encontrando Issues para Contribuir
Labels Úteis
- 🟢
good first issue: Bom para iniciantes - 🟡
help wanted: Ajuda é bem-vinda - 🔴
bug: Bugs a corrigir - 🔵
enhancement: Melhorias - 🟣
documentation: Docs
Filtros
# Issues boas para iniciantes
label:"good first issue" is:open
# Bugs
label:bug is:open
# Ajuda necessária
label:"help wanted" is:open
Reportar Bugs
Use nosso template de bug:
Informações Necessárias
- Descrição: O que aconteceu?
- Passos para Reproduzir: Como reproduzir o bug?
- Comportamento Esperado: O que deveria acontecer?
- Screenshots: Se aplicável
- Ambiente:
- OS: Windows/Mac/Linux
- Browser: Chrome/Firefox/Safari
- Versão: 1.0.0
Exemplo
**Descrição**
Não consigo fazer promoção de peão para cavalo
**Passos**
1. Iniciar partida
2. Mover peão até a última fila
3. Tentar selecionar cavalo
4. Somente Rainha é promovida
**Esperado**
Deveria mostrar opções: Rainha, Torre, Bispo, Cavalo
**Ambiente**
- OS: Windows 11
- Browser: Chrome 120
- Versão: v0.5.2
Sugerir Features
Use nosso template de feature:
Estrutura
**Problema a Resolver**
[Qual problema esta feature resolve?]
**Solução Proposta**
[Como você imagina que funcione?]
**Alternativas Consideradas**
[Outras formas de resolver?]
**Informações Adicionais**
[Contexto extra, mockups, etc.]
Desenvolvimento
Estrutura de Branch
main (produção)
├── develop (desenvolvimento)
│ ├── feature/nova-funcionalidade
│ ├── fix/correcao-bug
│ └── docs/documentacao
└── hotfix/urgente
Commits Significativos
❌ Ruim:
✅ Bom:
git commit -m "feat(chess): adiciona validação de roque"
git commit -m "fix(puzzle): corrige cálculo de rating"
git commit -m "docs(api): atualiza endpoint de autenticação"
Testes
Garanta que: - ✅ Todos os testes passam - ✅ Coverage não diminui - ✅ Novos recursos têm testes
Linting
Comunicação
Discord
Junte-se ao nosso Discord: - #contribuidores - #dev-chat - #help
GitHub Discussions
Para discussões mais longas: github.com/Oito-Por-Oito/discussions
Para assuntos privados: dev@oitoporoito.com
Reconhecimento
Todos os contribuidores são:
- ✨ Listados em CONTRIBUTORS.md
- 🎖️ Recebem badge de contribuidor
- 🙏 Mencionados nos releases
Licença
Ao contribuir, você concorda que suas contribuições serão licenciadas sob a mesma licença do projeto.
Próximos Passos
Obrigado por contribuir! 🎉