Sfide quotidiane di Discourse

:information_source: Riepilogo Esegui sfide di check-in giornaliere a tempo limitato con classifiche, post automatici e premi badge.
:hammer_and_wrench: Link al Repository GitHub - R23DPrinting/discourse-daily-challenge · GitHub
:open_book: Guida all’Installazione Come installare i plugin in Discourse

La Storia

Gestisco una community incentrata sulla salute e il benessere che recentemente è passata da Discord a Discourse. Su Discord, avevo creato un bot personalizzato per gestire sfide di fitness mensili: i membri pubblicavano i loro allenamenti giornalieri, il bot monitorava i check-in, pubblicava classifiche settimanali e annunciava i vincitori alla fine di ogni mese. Era una delle nostre funzionalità più apprezzate.

Dopo il passaggio a Discourse, i membri hanno iniziato a chiedere il ritorno delle sfide. Ho cercato un plugin esistente senza successo. Quindi ne ho costruito uno.

Quello che è iniziato come una soluzione rapida si è trasformato in un sistema di sfide completo che, onestamente, funziona meglio del bot Discord originale. Dato che potrebbe essere utile ad altre community, lo condivido qui.

FunzionalitĂ 

  • Check-in tramite hashtag o foto — i membri effettuano il check-in pubblicando l’hashtag della sfida (es. #FitnessAprile) o caricando un’immagine nel topic della sfida. Entrambi attivano un check-in valido.
  • Un check-in al giorno — applicato a livello di applicazione e database. La finestra giornaliera di ogni utente si basa sul fuso orario del suo profilo.
  • Fuso orario per sfida — imposta il fuso orario della sfida indipendentemente dal fuso orario del tuo server, così nessun membro verrĂ  tagliato fuori a mezzanotte UTC.
  • Dashboard amministrativa in tempo reale — mostra tutte le sfide attive simultaneamente con conteggio partecipanti, check-in medi, tracciamento delle serie consecutive, percentuale di completamento e una classifica.
  • Sfide multiple simultanee — esegui diverse sfide contemporaneamente, ognuna con il proprio topic, hashtag, programma e badge.
  • Sfide archiviate — sfide completate conservate in un archivio comprimibile che mostra statistiche finali, vincitori e tassi di completamento.
  • Post automatici della classifica settimanale — pubblicati nel topic della sfida in un giorno e ora configurabili nel fuso orario della sfida stessa.
  • Post dei risultati finali — pubblicato automaticamente il giorno dopo la fine della sfida, elencando tutti coloro che hanno raggiunto l’obiettivo di check-in.
  • Premi badge personalizzati — crea automaticamente un badge Discourse per ogni sfida e lo assegna ai partecipanti idonei alla fine della sfida.
  • Gestione check-in da parte dell’amministratore — aggiungi o rimuovi check-in per qualsiasi utente direttamente dal pannello di amministrazione.
  • Attivazione manuale della classifica — pubblica la classifica in qualsiasi momento dalla pagina dei dettagli della sfida.
  • Data di fine inclusiva — se imposti la data di fine al 31 marzo, i check-in del 31 marzo vengono conteggiati.

Configurazione

Creazione di una Sfida

Vai su Admin → Plugin → Daily Challenge → Challenges → New Challenge (Amministrazione → Plugin → Sfida Giornaliera → Sfide → Nuova Sfida)

Inserisci un ID Topic per collegare la sfida a un topic esistente. Il plugin mostrerà il titolo del topic come conferma. Inserisci l’hashtag di attivazione, le date di inizio e fine e il numero di check-in necessari per completare la sfida.

Imposta il Challenge timezone (Fuso orario della sfida) sul fuso orario principale della tua community per garantire che i confini delle date vengano valutati correttamente per i tuoi membri.

Se desideri post automatici settimanali della classifica, attiva l’interruttore e imposta il giorno e l’ora. Se desideri un badge di completamento, attiva l’interruttore e inserisci un nome per il badge (es. “Campione di Fitness di Aprile”).

Clicca su Save challenge (Salva sfida) — se l’assegnazione dei badge è abilitata, il badge viene creato automaticamente.

Esecuzione di una Sfida

Una volta creata, la sfida è immediatamente attiva. I membri pubblicano nel topic collegato con l’hashtag o un’immagine per effettuare il check-in. La dashboard amministrativa (Admin → Plugins → Daily Challenge → Dashboard) mostra le statistiche in tempo reale per tutte le sfide attive.

Suggerimenti

  • Chiedi ai membri di impostare il loro fuso orario in Profile → Preferences → Interface → Timezone (Profilo → Preferenze → Interfaccia → Fuso orario) per finestre di check-in giornaliere accurate.
  • Utilizza il pulsante Post Leaderboard Now (Pubblica Classifica Ora) sulla pagina dei dettagli della sfida per attivare la pubblicazione della classifica in qualsiasi momento.
  • Usa la sezione Check-ins (Check-in) sulla pagina dei dettagli della sfida per aggiungere o rimuovere manualmente i check-in per qualsiasi utente.

Impostazioni

Nome Descrizione
daily_challenge_enabled Interruttore generale di attivazione/disattivazione per il plugin
Topic ID Il topic dove i partecipanti pubblicano i check-in
Hashtag trigger L’hashtag da monitorare, senza il #
Start date Primo giorno in cui i check-in sono accettati
End date Ultimo giorno in cui i check-in sono accettati (inclusivo)
Check-ins needed Numero di check-in richiesti per completare la sfida e qualificarsi per il badge
Description Nota interna opzionale sulla sfida (non mostrata ai partecipanti)
Challenge timezone Fuso orario utilizzato per i confini delle date e il programma dei post settimanali
Enable weekly leaderboard post Attiva/disattiva i post settimanali automatici
Post day of week Giorno in cui viene pubblicato il post settimanale
Post hour (0-23) Ora in cui viene pubblicato il post settimanale nel fuso orario della sfida
Award completion badge Attiva/disattiva la creazione automatica e l’assegnazione del badge
Badge name Nome del badge creato per questa sfida

Cosa Succede Dopo

Pianificazione per la v2:

  • Conferma via DM dopo ogni check-in con le statistiche attuali
  • Promemoria giornalieri via DM per i partecipanti che non hanno ancora effettuato il check-in
  • Comandi @mention per verificare le statistiche personali

Supporto e Richieste di FunzionalitĂ 

Se riscontri problemi o hai idee per nuove funzionalitĂ , apri un issue su GitHub o rispondi a questo topic.

4 Mi Piace