Défis quotidiens Discourse

:information_source: Résumé Exécutez des défis d’enregistrement quotidiens à durée limitée avec des classements, des publications automatisées et des récompenses de badge.
:hammer_and_wrench: Lien vers le dépôt GitHub - R23DPrinting/discourse-daily-challenge · GitHub
:open_book: Guide d’installation Comment installer des plugins dans Discourse

L’histoire

Je gère une communauté de santé et de bien-être qui est récemment passée de Discord à Discourse. Sur Discord, j’avais créé un bot personnalisé pour organiser des défis de remise en forme mensuels — les membres publiaient leurs entraînements quotidiens, le bot suivait les enregistrements, publiait des classements hebdomadaires et annonçait les gagnants à la fin de chaque mois. C’était l’une de nos fonctionnalités les plus populaires.

Après le passage à Discourse, les membres ont commencé à réclamer les défis. J’ai cherché un plugin existant et je n’ai rien trouvé. Alors, j’en ai créé un.

Ce qui a commencé comme une solution rapide s’est transformé en un système de défi complet qui fonctionne honnêtement mieux que le bot Discord d’origine. Puisque cela pourrait être utile à d’autres communautés, je le partage ici.

Fonctionnalités

  • Enregistrements par hashtag ou par photo — les membres s’enregistrent en publiant le hashtag du défi (par exemple, #AvrilFitness) ou en téléchargeant une image dans le sujet du défi. Les deux déclenchent un enregistrement valide.
  • Un enregistrement par jour — appliqué au niveau de l’application et de la base de données. La fenêtre quotidienne de chaque utilisateur est basée sur son fuseau horaire de profil.
  • Fuseau horaire par défi — définissez le fuseau horaire du défi indépendamment du fuseau horaire de votre serveur afin qu’aucun membre ne soit coupé à minuit UTC.
  • Tableau de bord d’administration en temps réel — affiche tous les défis actifs simultanément avec le nombre de participants, le nombre moyen d’enregistrements, le suivi des séries, le pourcentage d’achèvement et un classement classé.
  • Défis simultanés multiples — exécutez plusieurs défis à la fois, chacun avec son propre sujet, hashtag, calendrier et badge.
  • Défis archivés — les défis terminés sont conservés dans une archive réductible montrant les statistiques finales, les gagnants et les taux d’achèvement.
  • Publications automatisées de classement hebdomadaire — publiées dans le sujet du défi à un jour et une heure configurables dans le fuseau horaire propre au défi.
  • Publication des résultats finaux — publiée automatiquement le lendemain de la fin du défi, listant tous ceux qui ont atteint l’objectif d’enregistrement.
  • Attribution de badges personnalisés — crée automatiquement un badge Discourse pour chaque défi et l’attribue aux participants éligibles lorsque le défi se termine.
  • Gestion des enregistrements par l’administrateur — ajoutez ou supprimez des enregistrements pour n’importe quel utilisateur directement depuis le panneau d’administration.
  • Déclenchement manuel du classement — publiez le classement à tout moment depuis la page de détails du défi.
  • Date de fin inclusive — si vous définissez la date de fin au 31 mars, les enregistrements du 31 mars sont comptabilisés.

Configuration

Créer un défi

Allez dans Admin → Plugins → Daily Challenge → Challenges → New Challenge (Administrateur → Plugins → Défi Quotidien → Défis → Nouveau Défi)

Entrez un ID de sujet pour lier le défi à un sujet existant. Le plugin affichera le titre du sujet en confirmation. Remplissez le déclencheur de hashtag, les dates de début et de fin, et le nombre d’enregistrements nécessaires pour terminer le défi.

Réglez le Challenge timezone (Fuseau horaire du défi) sur le fuseau horaire principal de votre communauté pour garantir que les limites de date sont évaluées correctement pour vos membres.

Si vous souhaitez des publications de classement hebdomadaire automatisées, activez le bouton à bascule et définissez le jour et l’heure. Si vous souhaitez un badge d’achèvement, activez le bouton à bascule et entrez un nom de badge (par exemple, « Champion de Fitness d’Avril »).

Cliquez sur Save challenge (Sauvegarder le défi) — si l’attribution de badge est activée, le badge est créé automatiquement.

Exécuter un défi

Une fois créé, le défi est immédiatement actif. Les membres publient dans le sujet lié avec le hashtag ou une image pour s’enregistrer. Le tableau de bord de l’administrateur (Admin → Plugins → Daily Challenge → Dashboard) affiche les statistiques en temps réel pour tous les défis actifs.

Conseils

  • Demandez aux membres de définir leur fuseau horaire dans Profile → Preferences → Interface → Timezone (Profil → Préférences → Interface → Fuseau horaire) pour des fenêtres d’enregistrement quotidiennes précises.
  • Utilisez le bouton Post Leaderboard Now (Publier le classement maintenant) sur la page de détails du défi pour déclencher une publication du classement à tout moment.
  • Utilisez la section Check-ins (Enregistrements) sur la page de détails du défi pour ajouter ou supprimer manuellement des enregistrements pour n’importe quel utilisateur.

Paramètres

Nom Description
daily_challenge_enabled Interrupteur général d’activation/désactivation du plugin
Topic ID Le sujet où les participants publient leurs enregistrements
Hashtag trigger Le hashtag à surveiller, sans le #
Start date Premier jour où les enregistrements sont acceptés
End date Dernier jour où les enregistrements sont acceptés (inclusif)
Check-ins needed Nombre d’enregistrements requis pour terminer le défi et être admissible au badge
Description Note interne facultative sur le défi (non affichée aux participants)
Challenge timezone Fuseau horaire utilisé pour les limites de date et la planification des publications hebdomadaires
Enable weekly leaderboard post Activer/désactiver les publications hebdomadaires automatisées
Post day of week Jour où la publication hebdomadaire est publiée
Post hour (0-23) Heure de publication de la publication hebdomadaire dans le fuseau horaire du défi
Award completion badge Activer/désactiver la création et l’attribution automatiques de badges
Badge name Nom du badge créé pour ce défi

Quoi de neuf

Planification pour la v2 :

  • Confirmation par message privé après chaque enregistrement avec les statistiques actuelles
  • Rappels quotidiens par message privé pour les participants qui ne se sont pas encore enregistrés
  • Commandes @mention pour consulter les statistiques personnelles

Support et demandes de fonctionnalités

Si vous rencontrez des problèmes ou avez des idées pour de nouvelles fonctionnalités, veuillez ouvrir un problème sur GitHub ou répondre à ce sujet.

4 « J'aime »