| Zusammenfassung | Discourse Member Application ermöglicht es Ihnen, einen strukturierten Bewerbungsprozess für potenzielle Mitglieder durchzuführen, bevor diese Ihrer Discourse-Community beitreten. | |
| Repository-Link | GitHub - R23DPrinting/discourse-member-application · GitHub | |
| Installationsanleitung | So installieren Sie Plugins in Discourse |
discourse-member-application — Ein Vor-Einladungs-Bewerbungssystem für private Communities
discourse-member-application ermöglicht es Ihnen, einen strukturierten Bewerbungsprozess für potenzielle Mitglieder durchzuführen, bevor diese Ihrer Discourse-Community beitreten. Bewerber füllen ein anpassbares öffentliches Formular unter /apply aus, Administratoren prüfen die Einreichungen und genehmigen oder lehnen sie ab, und genehmigte Bewerber erhalten automatisch einen privaten Einladungslink.
GitHub: GitHub - R23DPrinting/discourse-member-application · GitHub
Die Geschichte
Ich betreibe eine private Community, die den einladungsbasierten Modus von Discourse nutzt. Wir haben die Mitgliedschaftsbewerbungen manuell verwaltet – über ein Google Formular, eine Tabellenkalkulation, manuelles Kopieren und Einfügen von Einladungslinks. Es funktionierte, aber es war nicht skalierbar und fühlte sich von der Community selbst getrennt an.
Ich habe nach einem Discourse-Plugin gesucht, das Vor-Einladungs-Bewerbungen verarbeiten kann. Ich habe keines gefunden, das passte. Also habe ich dieses hier gebaut.
Demo
Funktionen
Anpassbares Bewerbungsformular
Das Formular wird vollständig über eine Registerkarte „Felder“ im Admin-Panel erstellt – es ist kein Code erforderlich. Unterstützte Feldtypen: Text, Textbereich, Ja/Nein, Radio-Buttons, Kontrollkästchengruppe und einzelnes Kontrollkästchen. Felder unterstützen Beschriftungen, Hinweise, Pflichtfelder/optional, Aktivieren/Deaktivieren und bedingte Sichtbarkeit (zeigt ein Feld nur an, wenn ein anderes Feld einen bestimmten Wert hat).
Admin-Dashboard
Alle Bewerbungen können von einer speziellen Plugin-Seite aus überprüft und verwaltet werden. Filtern Sie nach Status (Ausstehend / Genehmigt / Abgelehnt / Eingelöst), suchen Sie nach E-Mail oder Benutzername und blättern Sie durch große Listen. Zeigen Sie vollständige Bewerbungsdetails an, fügen Sie private Admin-Notizen hinzu und genehmigen oder lehnen Sie einzeln oder in großen Mengen ab.
Genehmigungsablauf
Die Genehmigung einer Bewerbung generiert eine einmalig verwendbare Discourse-Einladung und sendet diese per E-Mail an den Bewerber. Bei Ablehnung wird eine anpassbare Ablehnungs-E-Mail mit optionalem Feedback gesendet. Wenn der Bewerber die Einladung einlöst und ein Konto erstellt, wird der Bewerbungsstatus automatisch auf „Eingelöst“ aktualisiert. Genehmigten Mitgliedern kann optional automatisch eine Discourse-Gruppe hinzugefügt werden.
Analysen
Die Registerkarte „Analysen“ zeigt zusammenfassende Statistiken (Gesamtzahl der Bewerbungen, Genehmigungsrate, durchschnittliche Überprüfungszeit), ein 12-wöchiges Trenddiagramm von Einreichungen vs. Genehmigungen und einen Conversion-Funnel von eingereicht → genehmigt → eingelöst.
Admin-Benachrichtigungen
Wenn eine neue Bewerbung eingereicht wird, wird eine private Nachricht an konfigurierte Benutzernamen (oder alle Administratoren, wenn leer gelassen) gesendet.
Konfigurierbare UX
- Einführungstext oben im Formular (unterstützt Markdown)
- Erfolgsseite unter
/apply/successnach der Einreichung mit einer konfigurierbaren Nachricht (unterstützt Markdown) - Schaltfläche „Für Beitritt bewerben“ auf der Anmeldeseite und der anmelde-pflichtigen Homepage (umschaltbar)
- Bewerbungsablauf – automatische Ablehnung ausstehender Bewerbungen nach einer konfigurierbaren Anzahl von Tagen
Bearbeitbare E-Mail-Vorlagen
Sowohl die Bestätigungs-E-Mail für die Einreichung als auch die Ablehnungs-E-Mails können über Admin → Anpassen → E-Mail-Vorlagen bearbeitet werden – es sind keine Codeänderungen erforderlich.
Sicherheit
Ratenbegrenzung (5 Einreichungen pro IP pro Stunde), Duplikaterkennung (blockiert erneute Einreichung mit einer bereits genehmigten/ausstehenden E-Mail oder einem Benutzernamen und blockiert bereits registrierte E-Mails/Benutzernamen) und einmalig verwendbare Einladungen.
Konfiguration
Installation
Fügen Sie dies zu Ihrer /var/discourse/containers/app.yml hinzu:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/R23DPrinting/discourse-member-application.git
Dann neu erstellen:
cd /var/discourse && ./launcher rebuild app
Einrichten Ihres Formulars
Gehen Sie nach der Installation zu Admin → Plugins → Member Application → Fields (Mitgliederbewerbung → Felder), um Ihr Bewerbungsformular zu erstellen.
Das Plugin wird mit diesen Standardfeldern ausgeliefert (alle bearbeitbar oder löschbar):
- Gewünschter Benutzername
- Erzählen Sie uns ein wenig über sich
- Woher kennen Sie uns?
- Sind Sie derzeit Teil anderer ähnlicher Online-Communities? (Ja/Nein)
- Wenn ja, welche? (Bedingt – wird nur angezeigt, wenn oben Ja ausgewählt ist)
- Offenlegungen von Anbietern (Kontrollkästchengruppe)
- Bestätigung der Ehrlichkeit (Kontrollkästchen – Systemfeld, kann nicht gelöscht werden)
Verwenden Sie die Schaltfläche Feld hinzufügen, um neue Felder zu erstellen. Verwenden Sie die Pfeile nach oben/unten, um die Reihenfolge zu ändern. Um ein Feld bedingt zu machen, bearbeiten Sie es und verwenden Sie den Abschnitt „Nur anzeigen, wenn“, um ein übergeordnetes Feld und einen auslösenden Wert auszuwählen.
Arbeitsablauf
- Ein potenzielles Mitglied besucht Ihre Website und klickt auf Für Beitritt bewerben (oder navigiert direkt zu
/apply) - Die Person füllt das Formular aus und sendet es ab – es ist kein Konto erforderlich
- Administratoren erhalten eine private Nachricht als Benachrichtigung
- Der Administrator überprüft die Bewerbung unter Admin → Plugins → Member Application → Applications (Mitgliederbewerbung → Bewerbungen)
- Der Administrator genehmigt → der Bewerber erhält eine Einladungs-E-Mail mit einem einmalig verwendbaren Link
- Der Bewerber löst die Einladung ein, erstellt sein Konto, und der Bewerbungsstatus wird automatisch auf Eingelöst aktualisiert
Einstellungen
| Name | Beschreibung |
|---|---|
member_application_enabled |
Aktiviert oder deaktiviert das Bewerbungsformular unter /apply |
member_application_notify_usernames |
Durch Kommas getrennte Benutzernamen, die bei neuer Einreichung per PM benachrichtigt werden sollen. Leer lassen, um alle Administratoren zu benachrichtigen. |
member_application_invite_group |
Gruppenname, der bei Genehmigung zur Einladung hinzugefügt wird (leer lassen, um dies zu überspringen) |
member_application_expiry_days |
Lehnt ausstehende Bewerbungen nach dieser Anzahl von Tagen automatisch ab (0 = niemals) |
member_application_expiry_notify |
Sendet eine Ablehnungs-E-Mail bei automatischem Ablauf von Bewerbungen |
member_application_show_apply_button |
Zeigt eine Schaltfläche „Für Beitritt bewerben“ auf der Anmeldeseite und der anmelde-pflichtigen Homepage an |
member_application_apply_button_text |
Beschriftung für die Schaltfläche „Für Beitritt bewerben“ (Standard: „Apply to Join“) |
member_application_intro_text |
Einführungstext, der oben auf dem Bewerbungsformular angezeigt wird. Unterstützt Markdown. Leer lassen, um ihn auszublenden. |
member_application_success_message |
Nachricht, die auf der Seite /apply/success nach der Einreichung angezeigt wird. Unterstützt Markdown. |
Hinweise
- Community-unabhängig – der gesamte Standardfeldtext kann über die Registerkarte „Felder“ konfiguriert werden
- Funktioniert mit dem Modus
login_required/ einladungsbasiert von Discourse - MIT-lizziert
- Getestet mit Discourse 2026.3.0
Probleme, PRs (Pull Requests) und Funktionsanfragen sind auf GitHub willkommen.