| Resumen | Ejecute desafíos de registro diario por tiempo limitado con tablas de clasificación, publicaciones automatizadas y premios de insignias. | |
| Enlace al Repositorio | GitHub - R23DPrinting/discourse-daily-challenge · GitHub | |
| 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.