Skip to content

Migrar o gerenciamento de dados de um formato JSON para um banco de dados relacional utilizando um BACKEND #270

@diegorogerssa

Description

@diegorogerssa

Descrição do recurso

Atualmente, os termos do Diciotech são gerenciados via Pull Requests (PRs) no repositório GitHub, com validação por Continuous Integration (CI). O formato dos termos pode ser simples ou incluir exemplos de código, como:

{
  "title": "Termo técnico",
  "description": "Explicação sobre o termo",
  "tags": ["Tag1"]
}

ou:

{
  "title": "Termo técnico",
  "description": "Explicação sobre o termo",
  "content": {
    "code": "Código de exemplo"
  },
  "tags": ["Tag1", "Tag2"]
}

Embora esse fluxo funcione perfeitamente, ele exige conhecimento técnico de Git e JSON, o que dificulta a participação de usuários menos familiarizados. A proposta é criar um backend com uma aplicação web para gerenciar os termos, tornando o processo mais acessível e organizado.

No novo modelo, o login será obrigatório apenas para usuários que desejarem adicionar novos termos.
Além disso, a aplicação web terá páginas dedicadas para:

  • Adicionar Termos: Um formulário intuitivo para que os usuários submetam novos termos de maneira prática.
  • Gerenciar Termos: Uma interface administrativa onde os administradores poderão revisar, aprovar, rejeitar ou sugerir alterações nos termos enviados.

Motivação

  • Acesso Descomplicado:
    Qualquer pessoa poderá consultar os termos sem a necessidade de login.

  • Facilidade para Contribuição:
    O novo sistema elimina a complexidade de abrir PRs e editar arquivos JSON manualmente.

  • Controle e Transparência:
    O login será obrigatório para quem enviar novos termos, associando cada contribuição a um usuário e garantindo maior responsabilidade.

  • Organização do Repositório:
    O código do projeto ficará separado do conteúdo dinâmico, centralizando o gerenciamento dos termos na aplicação.

  • Escalabilidade:
    O sistema será mais robusto e preparado para lidar com um maior número de usuários e termos de forma eficiente.

Sugestão de implementação

Para Usuários:

  • Login Opcional:
    Qualquer pessoa pode consultar termos. O login será necessário apenas para enviar novos termos.
  • Formulário Completo:
    • Título: Nome do termo.
    • Descrição: Explicação detalhada.
    • Tags: Palavras-chave associadas (opção para sugerir ou selecionar tags existentes).
    • Conteúdo: Campo para adicionar exemplos de código ou informações extras.
    • Botão Enviar: Submete o termo para revisão por um administrador.

Para Administradores:

  • Gerenciamento de Termos:
    • Lista de termos pendentes, aprovados ou rejeitados.
    • Visualizar detalhes do termo, como título, descrição, tags e conteúdo.
  • Aprovação e Rejeição:
    • Aprovar: Publica o termo na base pública.
    • Rejeitar: Envia uma notificação ao autor com o motivo da rejeição.
  • Sugestão de Alterações:
    • Permitir editar e enviar sugestões ao autor para ajustes antes da aprovação.
  • Filtros e Busca:
    • Localizar termos por título, tags ou status.

Essa implementação simplifica o fluxo, melhora a experiência do usuário e organiza o conteúdo de forma centralizada e escalável. 🚀

Metadata

Metadata

Assignees

Labels

discussionsTopics in discussion at communityenhancementNew feature or request

Projects

Status

Todo

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions