JSON Canvas Viewer

Contribuindo

Contribuições são bem-vindas! Este guia ajudará você a começar.


Processo de Contribuição

1. Fork e Clone

# Fork no GitHub

# Clone seu fork
git clone https://github.com/seu-usuario/jsoncanvasviewer.git
cd jsoncanvasviewer

# Adicione upstream
git remote add upstream https://github.com/original/jsoncanvasviewer.git

2. Crie uma Branch

git checkout -b feature/minha-feature

Convenções:

3. Desenvolva e Teste

# Execute testes
flutter test

# Verifique linting
flutter analyze

# Formate código
dart format .

4. Commit

git commit -m "feat: adiciona novo tipo de elemento"

Formato:

tipo: descrição curta

Descrição detalhada (opcional)

Resolves #123

5. Push e Pull Request

git push origin feature/minha-feature

Diretrizes de Código

Estilo Dart/Flutter

Variáveis

camelCase

userName, isValid

Classes

PascalCase

UserProfile, HomePage

Arquivos

snake_case

user_profile.dart

Constantes

lowerCamelCase

defaultColor

Linting

flutter analyze

Zero warnings/errors antes de commit.

Formatação

dart format .

Áreas para Contribuir

Prioridade Alta

Testes

Unitários e de widget

Documentação

Comentários e exemplos

Performance

Profiling e otimizações

Acessibilidade

Melhorias de a11y

Features Desejadas

Undo/Redo

Sistema de histórico de comandos

Multi-seleção

Selecionar múltiplos elementos

Snapping

Guias de alinhamento

Templates

Galeria de templates prontos

Export

PNG, SVG, PDF

Atalhos

Keyboard shortcuts


Estrutura de Pull Request

## Descrição
[Descreva as mudanças]

## Motivação
[Por que essa mudança é necessária?]

## Como Foi Testado?
- [ ] Web (Chrome)
- [ ] Testes unitários
- [ ] Testes de widget

## Tipos de Mudanças
- [ ] Bug fix
- [ ] Nova feature
- [ ] Breaking change
- [ ] Documentação

## Checklist
- [ ] Código segue estilo do projeto
- [ ] `flutter analyze` passa
- [ ] `dart format` aplicado
- [ ] Testes adicionados
- [ ] Documentação atualizada

Testes

Executar Testes

# Todos
flutter test

# Específico
flutter test test/widget/json_canvas_viewer_test.dart

# Com coverage
flutter test --coverage

Exemplo

testWidgets('JsonCanvasViewer renderiza retângulo', (tester) async {
  await tester.pumpWidget(MaterialApp(
    home: JsonCanvasViewer(
      jsonString: '{"canvas": {...}, "elements": [{"type": "rect"}]}',
    ),
  ));
  
  expect(find.byType(Container), findsOneWidget);
});

Review Process

O que Esperamos

Código Limpo

Fácil de ler e entender

Testes

Coverage adequado

Documentação

Comentários quando necessário

Performance

Sem regressões

Timeline


Comunidade

Canais

Código de Conduta


Dúvidas?

Abra uma Issue

Para bugs e features

Criar Issue →

Inicie uma Discussion

Para perguntas gerais

Discussões →

Obrigado por contribuir!

Made with 💙 by Conty Team