Desafíos diarios de Discourse

:information_source: Resumen Ejecute desafíos de registro diario por tiempo limitado con tablas de clasificación, publicaciones automatizadas y premios de insignias.
:hammer_and_wrench: Enlace al Repositorio GitHub - R23DPrinting/discourse-daily-challenge · GitHub
:open_book: Guía de Instalación Cómo instalar complementos en Discourse

La Historia

Dirijo una comunidad de salud y bienestar que recientemente pasó de Discord a Discourse. En Discord, había creado un bot personalizado para ejecutar desafíos de fitness mensuales: los miembros publicaban sus entrenamientos diarios, el bot rastreaba los registros, publicaba tablas de clasificación semanales y anunciaba a los ganadores al final de cada mes. Era una de nuestras características más populares.

Después de mudarse a Discourse, los miembros comenzaron a pedir los desafíos de vuelta. Busqué un complemento existente y no encontré ninguno. Así que construí uno.

Lo que comenzó como una solución rápida se convirtió en un sistema de desafíos con todas las funciones que honestamente funciona mejor que el bot original de Discord. Dado que podría ser útil para otras comunidades, lo comparto aquí.

Características

  • Registros por hashtag o foto — los miembros se registran publicando el hashtag del desafío (por ejemplo, #AbrilFitness) o subiendo una imagen al tema del desafío. Ambos activan un registro válido.
  • Un registro por día — aplicado a nivel de aplicación y base de datos. La ventana diaria de cada usuario se basa en la zona horaria de su perfil.
  • Zona horaria por desafío — configure la zona horaria del desafío independientemente de la zona horaria de su servidor para que ningún miembro sea cortado a medianoche UTC.
  • Panel de administración en tiempo real — muestra todos los desafíos activos simultáneamente con el recuento de participantes, los registros promedio, el seguimiento de rachas, el porcentaje de finalización y una tabla de clasificación clasificada.
  • Múltiples desafíos simultáneos — ejecute varios desafíos a la vez, cada uno con su propio tema, hashtag, horario e insignia.
  • Desafíos archivados — desafíos completados preservados en un archivo colapsable que muestra estadísticas finales, ganadores y tasas de finalización.
  • Publicaciones automatizadas de la tabla de clasificación semanal — publicadas en el tema del desafío en un día y hora configurables en la zona horaria del propio desafío.
  • Publicación de resultados finales — publicada automáticamente el día después de que finaliza el desafío, listando a todos los que alcanzaron el objetivo de registro.
  • Premios de insignias personalizados — crea automáticamente una insignia de Discourse para cada desafío y la otorga a los participantes elegibles cuando finaliza el desafío.
  • Gestión de registros por el administrador — agregue o elimine registros para cualquier usuario directamente desde el panel de administración.
  • Activación manual de la tabla de clasificación — publique la tabla de clasificación en cualquier momento desde la página de detalles del desafío.
  • Fecha de finalización inclusiva — si establece la fecha de finalización como 31 de marzo, los registros del 31 de marzo cuentan.

Configuración

Creación de un Desafío

Vaya a Administración → Complementos → Desafío Diario → Desafíos → Nuevo Desafío

Introduzca una ID de Tema para vincular el desafío a un tema existente. El complemento mostrará el título del tema como confirmación. Rellene el disparador del hashtag, las fechas de inicio y finalización, y el número de registros necesarios para completar el desafío.

Establezca la Zona horaria del desafío en la zona horaria principal de su comunidad para asegurar que los límites de fecha se evalúen correctamente para sus miembros.

Si desea publicaciones automatizadas de la tabla de clasificación semanal, active el interruptor y establezca el día y la hora. Si desea una insignia de finalización, active el interruptor e introduzca un nombre de insignia (por ejemplo, “Campeón de Fitness de Abril”).

Haga clic en Guardar desafío — si la adjudicación de insignias está habilitada, la insignia se crea automáticamente.

Ejecución de un Desafío

Una vez creado, el desafío está activo inmediatamente. Los miembros publican en el tema vinculado con el hashtag o una imagen para registrarse. El panel de administración (Administración → Complementos → Desafío Diario → Panel de Control) muestra estadísticas en tiempo real para todos los desafíos activos.

Consejos

  • Pida a los miembros que configuren su zona horaria en Perfil → Preferencias → Interfaz → Zona horaria para ventanas de registro diarias precisas.
  • Utilice el botón Publicar Tabla de Clasificación Ahora en la página de detalles del desafío para activar una publicación de tabla de clasificación en cualquier momento.
  • Utilice la sección Registros en la página de detalles del desafío para agregar o eliminar manualmente registros para cualquier usuario.

Configuración

Nombre Descripción
daily_challenge_enabled Interruptor maestro de encendido/apagado para el complemento
Topic ID El tema donde los participantes publican sus registros
Hashtag trigger El hashtag a observar, sin el #
Start date Primer día en que se aceptan registros
End date Último día en que se aceptan registros (inclusive)
Check-ins needed Número de registros necesarios para completar el desafío y calificar para la insignia
Description Nota interna opcional sobre el desafío (no se muestra a los participantes)
Challenge timezone Zona horaria utilizada para los límites de fecha y el horario de publicación semanal
Enable weekly leaderboard post Activar/desactivar las publicaciones semanales automatizadas
Post day of week Día en que se publica la publicación semanal
Post hour (0-23) Hora en que se publica la publicación semanal en la zona horaria del desafío
Award completion badge Activar/desactivar la creación y adjudicación automática de insignias
Badge name Nombre de la insignia creada para este desafío

Qué Sigue

Planificación para la v2:

  • Confirmación por Mensaje Directo (DM) después de cada registro con las estadísticas actuales
  • DMs de recordatorio diario para los participantes que aún no se han registrado
  • Comandos de @mención para verificar estadísticas personales

Soporte y Solicitudes de Características

Si encuentra algún problema o tiene ideas para nuevas características, por favor abra un problema en GitHub o responda a este tema.

4 Me gusta