Mitgliederbewerbung für Discourse

:information_source: Zusammenfassung Discourse Member Application ermöglicht einen strukturierten Bewerbungsprozess für potenzielle Mitglieder, bevor diese Ihrer Discourse-Community beitreten.
:hammer_and_wrench: Repository-Link R23DPrinting-group / discourse-member-application · GitLab
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

discourse-member-application – Ein Vor-Einladungs-Bewerbungssystem für private Communities

discourse-member-application ermöglicht einen strukturierten Bewerbungsprozess für potenzielle Mitglieder, 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.

:link: GitLab: R23DPrinting-group / discourse-member-application · GitLab


Die Geschichte

Ich leite eine private Community, die den Einladungsmodus von Discourse nutzt. Wir verwalteten Mitgliedsanträge manuell – ein Google-Formular, eine Tabelle, manuelles Kopieren und Einfügen von Einladungslinks. Es funktionierte, skalierte aber nicht und fühlte sich von der Community selbst getrennt an.

Ich suchte nach einem Discourse-Plugin, das Vor-Einladungs-Bewerbungen bearbeiten könnte. Ich fand keines, das passte. Also habe ich dieses gebaut.


Demo


Funktionen

:clipboard: Anpassbares Bewerbungsformular
Das Formular wird vollständig über den Reiter „Felder“ im Admin-Bereich erstellt – keine Programmierung erforderlich. Unterstützte Feldtypen: Text, Textarea, Ja/Nein, Radiobutton, Checkbox-Gruppe und Checkbox. Felder unterstützen Beschriftungen, Hinweise, Pflicht/Optional, Aktivieren/Deaktivieren und bedingte Sichtbarkeit (ein Feld wird nur angezeigt, wenn ein anderes Feld einen bestimmten Wert hat).

:magnifying_glass_tilted_left: Admin-Dashboard
Prüfen und verwalten Sie alle Bewerbungen auf einer dedizierten Plugin-Seite. Filtern Sie nach Status (Ausstehend / Genehmigt / Abgelehnt / Einlösbar), 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 einzelne oder mehrere Bewerbungen gleichzeitig ab.

:white_check_mark: Genehmigungsablauf
Die Genehmigung einer Bewerbung generiert eine einmalige Discourse-Einladung und sendet diese per E-Mail an den Bewerber. Eine Ablehnung sendet eine anpassbare Ablehnungs-E-Mail mit optionalem Feedback. Wenn der Bewerber seine Einladung einlöst und ein Konto erstellt, wird der Bewerbungsstatus automatisch auf „Einlösbar“ aktualisiert. Genehmigte Mitglieder können optional automatisch einer Discourse-Gruppe hinzugefügt werden.

:bar_chart: Analysen
Der Reiter „Analysen“ zeigt Zusammenfassungsstatistiken (Gesamtanzahl der Bewerbungen, Genehmigungsquote, durchschnittliche Bearbeitungszeit), einen 12-Wochen-Trendverlauf der Einreichungen gegenüber den Genehmigungen und eine Konversions-Trichter von „Eingereicht“ → „Genehmigt“ → „Einlösbar“.

:bell: Admin-Benachrichtigungen
Wenn eine neue Bewerbung eingereicht wird, wird eine private Nachricht an konfigurierte Benutzernamen (oder alle Administratoren, wenn das Feld leer gelassen wird) gesendet.

:artist_palette: Konfigurierbare UX

  • Einleitungstext oben im Formular (unterstützt Markdown)
  • Erfolgsseite unter /apply/success nach der Einreichung mit einer konfigurierbaren Nachricht (unterstützt Markdown)
  • Schaltfläche „Bewerben, um beizutreten“ auf der Anmeldeseite und der Startseite, die eine Anmeldung erfordert (umschaltbar)
  • Ablaufdatum der Bewerbung – automatische Ablehnung ausstehender Bewerbungen nach einer konfigurierbaren Anzahl von Tagen

:e_mail: Bearbeitbare E-Mail-Vorlagen
Sowohl die Bestätigungs-E-Mail bei Einreichung als auch die Ablehnungs-E-Mail können über Admin → Anpassen → E-Mail-Vorlagen bearbeitet werden – keine Code-Änderungen erforderlich.

:locked: Sicherheit
Ratenbegrenzung (5 Einreichungen pro IP pro Stunde), Duplikaterkennung (blockiert erneute Einreichungen bei ausstehenden/genehmigten E-Mails oder Benutzernamen sowie bereits registrierte E-Mails/Benutzernamen) und einmalige Einladungen.


Konfiguration

Installation

Fügen Sie Folgendes zu Ihrer /var/discourse/containers/app.yml hinzu:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://gitlab.com/r23dprinting-group/discourse-member-application.git

Dann neu erstellen:

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

Einrichten Ihres Formulars

Nach der Installation gehen Sie zu Admin → Plugins → Member Application → Felder, um Ihr Bewerbungsformular zu erstellen.

Das Plugin wird mit folgenden Standardfeldern geliefert (alle bearbeitbar oder löschbar):

  1. Gewünschter Benutzername
  2. Erzählen Sie uns etwas über sich
  3. Woher haben Sie von uns gehört?
  4. Sind Sie aktuell Teil einer anderen ähnlichen Online-Community? (Ja/Nein)
  5. Wenn ja, welche? (bedingt – wird nur angezeigt, wenn oben „Ja“ ausgewählt ist)
  6. Offenlegung von Anbietern (Checkbox-Gruppe)
  7. Bestätigung der Ehrlichkeit (Checkbox – 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 anzupassen. Um ein Feld bedingt zu machen, bearbeiten Sie es und verwenden Sie den Abschnitt „Nur anzeigen, wenn“, um ein übergeordnetes Feld und einen Auslöser-Wert auszuwählen.

Workflow

  1. Ein potenzielles Mitglied besucht Ihre Website und klickt auf Bewerben, um beizutreten (oder navigiert direkt zu /apply)
  2. Es füllt das Formular aus und sendet es ab – kein Konto erforderlich
  3. Administratoren erhalten eine Benachrichtigung per privater Nachricht
  4. Ein Administrator prüft die Bewerbung unter Admin → Plugins → Member Application → Bewerbungen
  5. Der Administrator genehmigt → der Bewerber erhält eine Einladungs-E-Mail mit einem einmaligen Link
  6. Der Bewerber löst die Einladung ein, erstellt sein Konto, und der Bewerbungsstatus wird auf Einlösbar aktualisiert

Einstellungen

Name Beschreibung
member_application_enabled Aktiviert oder deaktiviert das Bewerbungsformular unter /apply
member_application_notify_usernames Durch Komma getrennte Benutzernamen, die bei einer neuen Einreichung per PM benachrichtigt werden sollen. Leer lassen, um alle Administratoren zu benachrichtigen.
member_application_invite_group Gruppenname, der bei der Genehmigung zur Einladung hinzugefügt werden soll (leer lassen, um dies zu überspringen)
member_application_expiry_days Automatische Ablehnung ausstehender Bewerbungen nach dieser Anzahl von Tagen (0 = nie)
member_application_expiry_notify Ablehnungs-E-Mail beim automatischen Verfallen von Bewerbungen senden
member_application_show_apply_button Eine „Bewerben, um beizutreten“-Schaltfläche auf der Anmeldeseite und der Startseite, die eine Anmeldung erfordert, anzeigen
member_application_apply_button_text Beschriftung für die „Bewerben, um beizutreten“-Schaltfläche (Standard: „Bewerben, um beizutreten“)
member_application_intro_text Einleitungstext, der oben im Bewerbungsformular angezeigt wird. Unterstützt Markdown. Leer lassen, um ihn auszublenden.
member_application_success_message Nachricht, die nach der Einreichung auf der Seite /apply/success angezeigt wird. Unterstützt Markdown.

Hinweise

  • Community-unabhängig – alle Standardfeldtexte können über den Reiter „Felder“ konfiguriert werden
  • Funktioniert mit dem login_required-Modus / Einladungsmodus von Discourse
  • Unter MIT-Lizenz
  • Getestet auf Discourse 2026.3.0

Fehler, Pull Requests und Feature-Anfragen sind auf GitLab willkommen.

:link: R23DPrinting-group / discourse-member-application · GitLab

11 „Gefällt mir“

Update: Das Repository wurde zu GitLab verschoben. Alle Links im obigen Beitrag wurden aktualisiert.

:link: https://gitlab.com/r23dprinting-group/discourse-member-application

1 „Gefällt mir“