Discourse Tägliche Herausforderungen

:information_source: Zusammenfassung Führen Sie zeitlich begrenzte tägliche Check-in-Herausforderungen mit Bestenlisten, automatisierten Beiträgen und Abzeichenverleihungen durch.
:hammer_and_wrench: Repository-Link GitHub - R23DPrinting/discourse-daily-challenge · GitHub
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Die Geschichte

Ich betreibe eine Gesundheits- und Wellness-Community, die kürzlich von Discord zu Discourse gewechselt ist. Auf Discord hatte ich einen benutzerdefinierten Bot entwickelt, um monatliche Fitness-Herausforderungen durchzuführen – Mitglieder posteten ihr tägliches Training, der Bot verfolgte die Check-ins, veröffentlichte wöchentliche Bestenlisten und gab am Ende jedes Monats die Gewinner bekannt. Dies war eine unserer beliebtesten Funktionen.

Nach dem Wechsel zu Discourse baten die Mitglieder darum, die Herausforderungen zurückzubekommen. Ich suchte nach einem vorhandenen Plugin und wurde nicht fündig. Also habe ich eines entwickelt.

Was als schnelle Lösung begann, entwickelte sich zu einem voll funktionsfähigen Herausforderungssystem, das ehrlich gesagt besser funktioniert als der ursprüngliche Discord-Bot. Da es für andere Communities nützlich sein könnte, teile ich es hier.

Funktionen

  • Check-ins per Hashtag oder Foto – Mitglieder checken ein, indem sie den Herausforderungs-Hashtag posten (z. B. #AprilFitness) oder ein Bild in das Herausforderungsthema hochladen. Beides löst einen gültigen Check-in aus.
  • Ein Check-in pro Tag – wird auf Anwendungs- und Datenbankebene erzwungen. Das tägliche Zeitfenster jedes Benutzers basiert auf seiner Zeitzone im Profil.
  • Zeitzone pro Herausforderung – legen Sie die Zeitzone der Herausforderung unabhängig von Ihrer Server-Zeitzone fest, damit kein Mitglied um Mitternacht UTC abgeschnitten wird.
  • Echtzeit-Admin-Dashboard – zeigt alle aktiven Herausforderungen gleichzeitig mit Teilnehmerzahl, durchschnittlichen Check-ins, Streak-Verfolgung, Abschlussquote und einer Rangliste an.
  • Mehrere gleichzeitige Herausforderungen – führen Sie mehrere Herausforderungen gleichzeitig durch, jede mit ihrem eigenen Thema, Hashtag, Zeitplan und Abzeichen.
  • Archivierte Herausforderungen – abgeschlossene Herausforderungen, die in einem einklappbaren Archiv mit Endergebnissen, Gewinnern und Abschlussquoten aufbewahrt werden.
  • Automatisierte wöchentliche Bestenlisten-Beiträge – werden am konfigurierten Tag und zur konfigurierten Stunde in der Zeitzone der Herausforderung im Herausforderungsthema veröffentlicht.
  • Endergebnis-Beitrag – wird automatisch am Tag nach Ende der Herausforderung veröffentlicht und listet alle auf, die das Check-in-Ziel erreicht haben.
  • Benutzerdefinierte Abzeichenvergabe – erstellt automatisch ein Discourse-Abzeichen für jede Herausforderung und verleiht es berechtigten Teilnehmern, wenn die Herausforderung endet.
  • Admin-Check-in-Verwaltung – fügen Sie Check-ins für jeden Benutzer direkt über das Admin-Panel hinzu oder entfernen Sie sie.
  • Manuelles Auslösen der Bestenliste – veröffentlichen Sie die Bestenliste jederzeit über die Detailseite der Herausforderung.
  • Inklusives Enddatum – wenn Sie das Enddatum auf den 31. März festlegen, zählen die Check-ins am 31. März mit.

Konfiguration

Eine Herausforderung erstellen

Gehen Sie zu Admin → Plugins → Daily Challenge → Challenges → New Challenge (Admin → Plugins → Tägliche Herausforderung → Herausforderungen → Neue Herausforderung)

Geben Sie eine Topic ID ein, um die Herausforderung mit einem vorhandenen Thema zu verknüpfen. Das Plugin zeigt den Titel des Themas zur Bestätigung an. Füllen Sie den Hashtag-Trigger, das Start- und Enddatum sowie die Anzahl der Check-ins aus, die erforderlich sind, um die Herausforderung abzuschließen.

Stellen Sie die Challenge timezone (Zeitzone der Herausforderung) auf die primäre Zeitzone Ihrer Community ein, um sicherzustellen, dass Datumsbegrenzungen korrekt für Ihre Mitglieder ausgewertet werden.

Wenn Sie automatisierte wöchentliche Bestenlisten-Beiträge wünschen, aktivieren Sie den Schalter und legen Sie Tag und Stunde fest. Wenn Sie ein Abschlussabzeichen wünschen, aktivieren Sie den Schalter und geben Sie einen Abzeichennamen ein (z. B. „April Fitness Champion“).

Klicken Sie auf Save challenge (Herausforderung speichern) – wenn die Abzeichenvergabe aktiviert ist, wird das Abzeichen automatisch erstellt.

Eine Herausforderung durchführen

Nach der Erstellung ist die Herausforderung sofort aktiv. Mitglieder posten im verknüpften Thema mit dem Hashtag oder einem Bild, um einzuchecken. Das Admin-Dashboard (Admin → Plugins → Daily Challenge → Dashboard) zeigt Echtzeitstatistiken für alle aktiven Herausforderungen an.

Tipps

  • Bitten Sie Mitglieder, ihre Zeitzone unter Profile → Preferences → Interface → Timezone (Profil → Einstellungen → Oberfläche → Zeitzone) einzustellen, um genaue tägliche Check-in-Fenster zu erhalten.
  • Verwenden Sie die Schaltfläche Post Leaderboard Now (Bestenliste jetzt posten) auf der Detailseite der Herausforderung, um jederzeit einen Bestenlisten-Beitrag auszulösen.
  • Verwenden Sie den Abschnitt Check-ins auf der Detailseite der Herausforderung, um Check-ins für einen Benutzer manuell hinzuzufügen oder zu entfernen.

Einstellungen

Name Beschreibung
daily_challenge_enabled Haupt-Ein-/Ausschalter für das Plugin
Topic ID Das Thema, in dem Teilnehmer Check-ins posten
Hashtag trigger Der zu beobachtende Hashtag, ohne das #
Start date Erster Tag, an dem Check-ins akzeptiert werden
End date Letzter Tag, an dem Check-ins akzeptiert werden (einschließlich)
Check-ins needed Anzahl der Check-ins, die erforderlich sind, um die Herausforderung abzuschließen und sich für das Abzeichen zu qualifizieren
Description Optionaler interner Hinweis zur Herausforderung (wird den Teilnehmern nicht angezeigt)
Challenge timezone Zeitzone, die für Datumsbegrenzungen und den wöchentlichen Posting-Zeitplan verwendet wird
Enable weekly leaderboard post Automatisierte wöchentliche Beiträge ein-/ausschalten
Post day of week Tag, an dem der wöchentliche Beitrag veröffentlicht wird
Post hour (0-23) Stunde, zu der der wöchentliche Beitrag in der Zeitzone der Herausforderung veröffentlicht wird
Award completion badge Automatische Erstellung und Vergabe des Abzeichens ein-/ausschalten
Badge name Name des für diese Herausforderung erstellten Abzeichens

Was kommt als Nächstes

Planung für v2:

  • DM-Bestätigung nach jedem Check-in mit aktuellen Statistiken
  • Tägliche Erinnerungs-DMs für Teilnehmer, die noch nicht eingecheckt haben
  • @mention-Befehle zum Abrufen persönlicher Statistiken

Support & Funktionswünsche

Wenn Sie auf Probleme stoßen oder Ideen für neue Funktionen haben, erstellen Sie bitte ein Issue auf GitHub oder antworten Sie auf dieses Thema.

4 „Gefällt mir“