Pular para o conteúdo principal
Versão: Versão Mercados

Como Contribuir

Bem-vinde à documentação de desenvolvimento do Sistema Divino Alimento! Esta seção é dedicada a pessoas desenvolvedoras que desejam contribuir com o projeto.

Sobre Esta Versão

Esta documentação refere-se à versão Mercados do Divino Alimento, atualmente em desenvolvimento ativo. Esta versão expande as funcionalidades da versão Cestas, adicionando:

  • Gestão de múltiplos mercados locais
  • Interface moderna com React e shadcn/ui
  • Sistema de pré-mercado para planejamento de demanda
  • Administração por mercado com perfis específicos
  • Melhorias na experiência do usuário

Visão Geral

O Divino Alimento é um projeto de software livre e código aberto sob licença MIT. Contribuições são muito bem-vindas e incentivadas. Esta documentação fornecerá todas as informações necessárias para você começar a contribuir com o desenvolvimento.

O Que Você Encontrará Aqui

Nesta seção você encontrará:

  • Guia de Configuração do Ambiente - Como preparar seu ambiente de desenvolvimento local
  • Arquitetura do Sistema - Entenda como o sistema está estruturado tecnicamente
  • Padrões de Código - Convenções e boas práticas do projeto
  • API e Recursos - Documentação técnica detalhada para desenvolvedores

Tipos de Contribuição

Existem várias formas de contribuir com o projeto:

Código

  • Implementar novas funcionalidades
  • Corrigir bugs reportados
  • Melhorar performance
  • Refatorar código legado
  • Adicionar testes automatizados

Documentação

  • Melhorar documentação existente
  • Criar tutoriais e guias
  • Traduzir documentação
  • Documentar APIs e funções
  • Criar diagramas e fluxogramas

Design e UX

  • Melhorar interfaces de usuário
  • Criar componentes reutilizáveis
  • Propor melhorias de usabilidade
  • Testar acessibilidade
  • Criar protótipos

Testes e QA

  • Reportar bugs com detalhes
  • Testar novas funcionalidades
  • Escrever testes automatizados
  • Validar correções

Comunidade

  • Responder dúvidas de outros usuários
  • Compartilhar casos de uso
  • Organizar eventos e workshops
  • Divulgar o projeto

Pré-requisitos

Conhecimentos Técnicos

Para contribuir com desenvolvimento, você precisará de conhecimentos em:

Backend

  • Node.js e Express.js
  • JavaScript/ES6+
  • PostgreSQL e Sequelize ORM
  • APIs RESTful
  • Autenticação OAuth 2.0

Frontend (Versão Mercados)

  • React e TypeScript
  • Next.js (App Router)
  • shadcn/ui e Tailwind CSS
  • React Hook Form e Zod
  • Gerenciamento de estado

DevOps e Ferramentas

  • Docker e Docker Compose
  • Git e GitHub
  • npm/yarn (gerenciamento de pacotes)
  • Sequelize CLI (migrações)

Ferramentas Necessárias

Antes de começar, certifique-se de ter instalado:

  • Node.js 18.x ou superior
  • Docker e Docker Compose
  • Git
  • Editor de código (recomendamos VS Code)
  • Cliente PostgreSQL (opcional, para inspeção do banco)

Como Começar

1. Prepare-se

2. Configure o Ambiente

3. Desenvolva

  • Faça commits pequenos e frequentes com mensagens claras
  • Siga os padrões de código do projeto
  • Documente seu código quando necessário

4. Teste

  • Execute os testes existentes: npm test
  • Adicione testes para sua nova funcionalidade
  • Teste manualmente no navegador
  • Verifique se não quebrou funcionalidades existentes

5. Documente

  • Atualize a documentação se necessário
  • Adicione comentários em código complexo
  • Documente novas APIs ou endpoints

Padrões de Commits

Use mensagens de commit claras seguindo o padrão:

tipo(escopo): descrição curta

Descrição mais detalhada do que foi feito e por quê.

Tipos válidos:

  • feat: Nova funcionalidade
  • fix: Correção de bug
  • docs: Alterações na documentação
  • style: Formatação, espaçamento (sem mudança de lógica)
  • refactor: Refatoração de código (sem adicionar features ou corrigir bugs)
  • test: Adição ou correção de testes
  • chore: Tarefas de manutenção (build, dependências, etc)

Exemplos:

feat(mercado): adicionar filtro por status na listagem de mercados

Implementa filtro para listar mercados por status (ativo/inativo).
Adiciona dropdown no componente MercadosList.
fix(auth): corrigir redirecionamento após login OAuth

O callback do Google OAuth não estava redirecionando corretamente
para a página de destino. Ajustado middleware de autenticação.

Código de Conduta

Ao contribuir, você concorda em seguir nosso código de conduta:

Nossos Valores

  • Respeito: Trate todas as pessoas com respeito e empatia
  • Inclusão: Valorizamos diversidade e diferentes perspectivas
  • Colaboração: Trabalhamos juntos para objetivos comuns
  • Transparência: Comunicação aberta e honesta
  • Aprendizado: Todos estão aqui para aprender e crescer

Comportamento Esperado

  • Use linguagem acolhedora e inclusiva
  • Respeite diferentes pontos de vista e experiências
  • Aceite críticas construtivas com graça
  • Foque no que é melhor para a comunidade
  • Mostre empatia com outros membros da comunidade

Comportamento Inaceitável

  • Linguagem ou imagens sexualizadas, assédio
  • Trolling, comentários insultuosos ou depreciativos
  • Assédio público ou privado
  • Publicar informações privadas de outras pessoas
  • Conduta que poderia ser considerada inapropriada em ambiente profissional

Comunicação

Reportar Bugs

Encontrou um bug? Entre em contato com a equipe informando:

  • Título descritivo do problema
  • Passos para reproduzir o erro
  • Comportamento esperado vs comportamento atual
  • Screenshots ou logs se possível
  • Ambiente: versão do Node, navegador, SO

Sugerir Funcionalidades

Tem uma ideia? Entre em contato com a equipe:

  • Descreva a funcionalidade proposta
  • Explique o problema que ela resolve
  • Sugira como poderia ser implementada
  • Adicione mockups ou esboços se possível

Canais de Comunicação

  • Email: info@tekopora.top (equipe Tekoporã)
  • Documentação: Para questões sobre uso do sistema

Precisa de Ajuda?

Se você tiver dúvidas ou precisar de orientação:

Reconhecimento

Todas as contribuições são valorizadas e reconhecidas:

  • Seu nome será adicionado à lista de contribuidores
  • Contribuições significativas serão destacadas
  • Você estará ajudando comunidades a ter acesso a um sistema alimentar mais justo

Licença

Ao contribuir, você concorda que suas contribuições serão licenciadas sob a mesma licença MIT do projeto.


Agradecemos imensamente por contribuir com o Divino Alimento! Juntos estamos construindo um sistema alimentar mais justo, solidário e sustentável para comunidades do Brasil e do mundo.