Candidatura per membro Discourse

:information_source: Riepilogo Discourse Member Application ti consente di eseguire un processo di candidatura strutturato per i potenziali membri prima che si uniscano alla tua community di Discourse.
:hammer_and_wrench: Link Repository GitHub - R23DPrinting/discourse-member-application · GitHub
:open_book: Guida all’installazione Come installare i plugin in Discourse

discourse-member-application — Un sistema di candidatura pre-invito per community private

discourse-member-application ti consente di eseguire un processo di candidatura strutturato per i potenziali membri prima che si uniscano alla tua community di Discourse. I candidati compilano un modulo pubblico personalizzabile su /apply, gli amministratori esaminano le candidature e le approvano o le rifiutano, e ai candidati approvati viene inviato automaticamente un link di invito privato.

:link: GitHub: GitHub - R23DPrinting/discourse-member-application · GitHub


La Storia

Gestisco una community privata che utilizza la modalità solo su invito di Discourse. Stavamo gestendo le candidature per l’adesione manualmente: un Modulo Google, un foglio di calcolo, copia-incolla manuale dei link di invito. Funzionava, ma non era scalabile e sembrava disconnesso dalla community stessa.

Ho cercato un plugin di Discourse che potesse gestire le candidature pre-invito. Non ne ho trovato uno adatto. Quindi, l’ho costruito.


Demo


FunzionalitĂ 

:clipboard: Modulo di Candidatura Personalizzabile
Il modulo è costruito interamente tramite una scheda Campi nel pannello di amministrazione, senza bisogno di codice. Tipi di campo supportati: testo, area di testo, sì/no, radio, gruppo di caselle di controllo e casella di controllo. I campi supportano etichette, suggerimenti, obbligatorio/facoltativo, abilita/disabilita e visibilità condizionale (mostra un campo solo quando un altro campo ha un valore specifico).

:magnifying_glass_tilted_left: Dashboard Amministratore
Esamina e gestisci tutte le candidature da una pagina dedicata del plugin. Filtra per stato (In attesa / Approvato / Rifiutato / Riscatta), cerca per email o nome utente e impagina attraverso elenchi di grandi dimensioni. Visualizza i dettagli completi della candidatura, aggiungi note private dell’amministratore ed approva o rifiuta individualmente o in blocco.

:white_check_mark: Flusso di Approvazione
L’approvazione di una candidatura genera un invito di Discourse monouso e lo invia via email al candidato. Il rifiuto invia un’email di rifiuto personalizzabile con un feedback facoltativo. Quando il candidato riscatta il proprio invito e crea un account, lo stato della candidatura si aggiorna automaticamente a “Riscatta”. Ai membri approvati può essere facoltativamente aggiunto un gruppo di Discourse automaticamente.

:bar_chart: Analisi
La scheda Analisi mostra statistiche riassuntive (candidature totali, tasso di approvazione, tempo medio di revisione), un grafico di tendenza a 12 settimane di invii rispetto ad approvazioni e un funnel di conversione da inviato → approvato → riscattato.

:bell: Notifiche Amministratore
Quando viene inviata una nuova candidatura, viene inviato un messaggio privato agli utenti configurati (o a tutti gli amministratori se lasciato vuoto).

:artist_palette: UX Configurabile

  • Testo introduttivo nella parte superiore del modulo (supporta markdown)
  • Pagina di successo a /apply/success dopo l’invio con un messaggio configurabile (supporta markdown)
  • Pulsante “Candidati per unirti” sulla pagina di accesso e sulla homepage che richiede l’accesso (attivabile/disattivabile)
  • Scadenza della candidatura — rifiuta automaticamente le candidature in sospeso dopo un numero configurabile di giorni

:e_mail: Modelli Email Modificabili
Sia la conferma di invio che le email di rifiuto sono modificabili tramite Amministrazione → Personalizza → Modelli Email — non sono necessarie modifiche al codice.

:locked: Sicurezza
Limitazione di velocità (5 invii per IP all’ora), rilevamento duplicati (blocca il nuovo invio con email o nome utente pendenti/approvati, e blocca email/nomi utente già registrati) e inviti monouso.


Configurazione

Installazione

Aggiungi al tuo /var/discourse/containers/app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/R23DPrinting/discourse-member-application.git

Quindi ricostruisci:

cd /var/discourse && ./launcher rebuild app

Impostazione del Modulo

Dopo l’installazione, vai su Amministrazione → Plugin → Member Application → Fields per creare il tuo modulo di candidatura.

Il plugin viene fornito con questi campi predefiniti (tutti modificabili o eliminabili):

  1. Nome utente desiderato
  2. Raccontaci qualcosa di te
  3. Come hai sentito parlare di noi?
  4. Fai attualmente parte di altre community online simili? (sì/no)
  5. Se sì, quali? (condizionale — mostrato solo se il precedente è Sì)
  6. Dichiarazioni dei fornitori (gruppo di caselle di controllo)
  7. Conferma di onestà (casella di controllo — campo di sistema, non può essere eliminato)

Usa il pulsante Add field per creare nuovi campi. Usa le frecce su/giù per riordinare. Per rendere un campo condizionale, modificalo e usa la sezione “Mostra solo quando” per selezionare un campo padre e il valore di attivazione.

Flusso di Lavoro

  1. Il potenziale membro visita il tuo sito e clicca su Apply to Join (o naviga direttamente a /apply)
  2. Compila il modulo e lo invia — non è richiesto alcun account
  3. Gli amministratori ricevono una notifica tramite messaggio privato
  4. L’amministratore esamina la candidatura in Amministrazione → Plugin → Member Application → Applications
  5. L’amministratore approva → il candidato riceve un’email di invito con un link monouso
  6. Il candidato riscatta l’invito, crea il proprio account e lo stato della candidatura si aggiorna a Redeemed

Impostazioni

Nome Descrizione
member_application_enabled Abilita o disabilita il modulo di candidatura su /apply
member_application_notify_usernames Nomi utente separati da virgole da notificare tramite PM alla nuova sottomissione. Lasciare vuoto per notificare tutti gli amministratori.
member_application_invite_group Nome del gruppo da aggiungere all’invito al momento dell’approvazione (lasciare vuoto per saltare)
member_application_expiry_days Rifiuta automaticamente le candidature in sospeso dopo questo numero di giorni (0 = mai)
member_application_expiry_notify Invia email di rifiuto quando le candidature scadono automaticamente
member_application_show_apply_button Mostra un pulsante “Candidati per unirti” sulla pagina di accesso e sulla homepage che richiede l’accesso
member_application_apply_button_text Etichetta per il pulsante Candidati per unirti (predefinito: “Apply to Join”)
member_application_intro_text Testo introduttivo mostrato nella parte superiore del modulo di candidatura. Supporta markdown. Lasciare vuoto per nasconderlo.
member_application_success_message Messaggio mostrato sulla pagina /apply/success dopo l’invio. Supporta markdown.

Note

  • Agnostico rispetto alla community — tutto il testo dei campi predefiniti è configurabile tramite la scheda Campi
  • Funziona con la modalitĂ  login_required / solo su invito di Discourse
  • Licenza MIT
  • Testato su Discourse 2026.3.0

Problemi, PR e richieste di funzionalitĂ  sono benvenuti su GitHub.

:link: GitHub - R23DPrinting/discourse-member-application · GitHub

5 Mi Piace