Discourse como LMS / Integração do Discourse com um LMS

Claro, obrigado pelo seu interesse.

Atualmente, temos uma comunidade onde jovens universitários que desejam se aprimorar se reúnem. Aqui, realizamos principalmente módulos sobre ciência e filosofia, reuniões semanais e incentivamos as pessoas a fazerem apresentações. Também tentei abrir um fórum para esta comunidade para que as pessoas possam ter discussões e conversas mais confortáveis e de longo prazo. Atualmente, é privado para a comunidade, mas planejamos abri-lo para toda a internet no futuro.

Atualmente, a maior parte do fluxo de informações, como leituras diárias, detalhes de apresentações, detalhes de reuniões, etc., é feita via WhatsApp. A taxa de participantes que usam o fórum ainda é baixa. Queremos estabelecer uma operação mais funcional e garantir que as pessoas entrem mais no fórum, transferindo o que fazemos no WhatsApp para o fórum.

  1. Existe uma maneira de enviar notificações para as pessoas quando usado como um Progressive Web App em telefones celulares?
  2. Podemos criar um sistema onde possamos verificar se os participantes fizeram suas leituras diárias e recompensá-los ou lembrá-los? (Perguntei ao chatgpt sobre isso, ele disse que eu poderia fazer isso criando um novo cenário com o plugin de automação do Discourse, mas não há opção para criar um novo cenário)
  3. Podemos criar um sistema de certificação onde daremos diplomas aos participantes com base em sua frequência às reuniões semanais nos módulos?

Esses foram os recursos que procurei por alguns dias. Se você tiver recursos que acha que seriam funcionais em um sistema semelhante, estou aberto a eles.

2 curtidas

Usei um sistema de distintivos para tarefas. Os alunos criariam um tópico com uma tag para a tarefa e, se eu o :heart:asse, eles receberiam um distintivo (com sql de distintivo). Escrevi um script que leria um arquivo csv do sistema de gerenciamento de aprendizado (LMS) das escolas e o atualizaria para que pudesse ser carregado de volta para o LMS da escola.

6 curtidas

Sim, absolutamente para o PWA.

Você pode elaborar sobre isso? Você tentou adicionar uma nova automação através do painel de administração?

E como Jay diz, distintivos são uma boa maneira de fazer isso.

3 curtidas

Acabei de verificar novamente, tenho que habilitar notificações nas configurações do Discourse. Obrigado.

O ChatGPT me enganou um pouco, entendi agora, mas o método que ele me disse não parece funcionar.

Obrigado pela resposta.

Como eu disse, posso criar um sistema onde posso recompensar usuários que deixam emojis em suas postagens de leitura diária apenas usando BadgeSQL? Devo fazer isso dando a eles distintivos, o sistema de classificação requer um esforço maior? E se você puder fornecer um guia ou um ponto de partida para o BadgeSQL, ficaria muito feliz.

1 curtida

Sim.

O plugin de classificação não existia quando fiz isso e não fiz muito (nada?) com ele.

https://meta.discourse.org/tag/sql-triggered-badge

Se a coisa do distintivo funcionar para você, então um plugin (ou talvez algo que chame a API?) que automatizaria a criação do distintivo com o SQL associado seria uma boa ideia.

Se for diário, então pode haver alguma maneira de fazer o SQL do distintivo conceder um distintivo para ontem; ou apenas ter um único distintivo que pode ser concedido várias vezes e conceder um distintivo todos os dias que eles postarem o emoji.

2 curtidas

Como muitos de vocês neste tópico, tenho buscado uma maneira leve de usar o Discourse nativamente como um LMS. Acho as plataformas dedicadas de LMS muito pesadas, mas o “decaimento de notificações” padrão do Discourse (onde tópicos mais antigos param de aparecer como “não lidos” para novos usuários) torna difícil acompanhar o progresso dos cursos.

Para resolver meu próprio problema, criei uma solução simples combinando configurações de categoria, um pequeno plugin de backend e um componente de tema.

Aqui está como configurei, e o código de código aberto que você pode usar para replicar!

O Conceito Básico: Discourse como um LMS

Para fazer isso funcionar, utilizo recursos padrão do Discourse combinados com o plugin oficial Discourse Doc Categories:

  • Curso = Categoria: Cada curso tem sua própria categoria.
  • Aula = Tópico: Cada aula é um tópico dentro dessa categoria.
  • Permissões: Os membros podem responder às aulas (para fazer perguntas), mas apenas a equipe pode criar novos tópicos.
  • Ordenação: A ordem das aulas é fixada pela data de criação. (Dica: Isso requer um pouco de planejamento ao postar as aulas, ou você pode usar o console do Rails para retroceder rapidamente as datas de criação dos tópicos e forçar a ordenação correta).
  • Plano de Curso: Uso o plugin Discourse Doc Categories para designar um “Tópico Índice”. Esse tópico índice atua como o plano de curso/rastreador e renderiza um outline bonito na barra lateral quando os usuários entram no curso.

A Peça Faltante: Rastreamento Real de Progresso

O problema com a configuração acima é que, quando um novo aluno se junta, os tópicos de aulas mais antigos não aparecem como “não lidos”, então não há como acompanhar visualmente o progresso.

Para resolver isso, criei um plugin de backend que consulta diretamente a tabela do banco de dados TopicUser para obter o status real de leitura histórica, e um componente de tema de frontend que transforma a barra lateral padrão do Discourse em um rastreador de progresso de LMS em tempo real.

1. Insígnias de Progresso na Barra Lateral Principal

O componente de tema substitui os pontos azuis de notificação padrão por indicadores de progresso [lido / total] para suas categorias de curso.

2. Marcas de Conclusão de Aula

Quando um usuário clica em um curso, o plugin Docs renderiza o plano de curso. Meu componente de tema injeta marcas de verificação de sucesso (fa-check) ao lado das aulas específicas que o usuário já terminou de ler.

3. Conclusão do Curso

Assim que um usuário lê todos os tópicos da categoria, a insígnia de progresso da barra lateral se transforma automaticamente em um satisfatório sinal de conclusão!

Como Instalar

Como isso requer contornar o cache padrão de notificações do Discourse, você deve instalar tanto o plugin de backend quanto o componente de tema de frontend.

Passo 1: Instale o Pré-requisito
Certifique-se de ter o plugin oficial Discourse Doc Categories instalado e ativo. Meu plugin mira especificamente apenas em categorias que têm um Tópico Índice configurado.

Passo 2: Instale o Plugin de API de Backend
Adicione isso ao seu app.yml abaixo de docker_manager e reconstrua seu container. Isso fornece um endpoint de API extremamente rápido para status de leitura.
:hammer_and_wrench: Link do Repositório: https://github.com/zsviczian/discourse-course-progress

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/zsviczian/discourse-course-progress.git

Passo 3: Instale o Componente de Tema de UI
Instale diretamente pelo seu navegador em Admin > Personalizar > Temas > Instalar > A partir de um Repositório Git.
:hammer_and_wrench: Link do Repositório: https://github.com/zsviczian/discourse-course-progress-theme

Espero que isso ajude outros que estão tentando criar cursos impulsionados pela comunidade sem a complexidade de uma plataforma LMS separada! Me avise se você acabar usando.

3 curtidas

Havia algum motivo para você não incluir o código do componente de tema do frontend no plugin, em vez de ter dois separados?

Mas, dei uma olhada rápida no seu código, e foi muito mais simples realizar isso do que eu imaginava. Adorei!

2 curtidas

Eu pensei que as pessoas pudessem querer uma aparência e sensação diferentes para o rastreamento dos seus cursos e não quis impor o meu gosto aos outros.

O componente de tema inclui cores, emblemas e detalhes específicos que atendem às minhas necessidades, mas não necessariamente às de outras pessoas.

O plugin implementa uma pequena funcionalidade ausente na documentação do Discourse. Você pode criar seu próprio componente de tema ao redor dele e usar o meu apenas como exemplo ou inspiração.

Desde que comecei a usar essa solução — apenas 1 dia :slight_smile: — já estou pensando em adicionar alguns gráficos do Data Explorer para ver o progresso geral dos alunos com os cursos e, em seguida, fazer personalizações adicionais. Talvez eu inclua isso no plugin depois de usá-lo na prática por um tempo.

1 curtida

Você pode alterar o carimbo de data/hora do Tópico na interface se for Administrador.
Está no menu Ações do Tópico.
Infelizmente, funciona apenas para um Tópico; não é possível fazer isso para uma Postagem individual.

1 curtida