Admin-Login

Admin Panel

Impressum Verwalten

SEO & Web-App

Steuert Suchmaschinen-Anzeige, Teilen-Vorschau und das Symbol bei der Installation als App.

Wenn gesetzt, erscheint auf der Webseite ein blauer Chat-Button unten rechts, der zu dieser URL führt. Leer lassen = kein Button.

E-Mail / SMTP-Server

Geschützt gespeichert (nur Admins) und nur serverseitig von der Versand-Funktion gelesen. Passwortfeld leer lassen = unverändert.

Bestätigungs-Mail für Treffen

Wird automatisch an den Absender geschickt, sobald sich jemand über das Formular für ein Treffen anmeldet. Hier lassen sich Betreff und Aussehen anpassen.

Wenn der Anmelder seine Angaben ändert

Wenn der Anmelder storniert

Rahmen für ALLE Vereins-Mails

Platzhalter: {{vorname}} {{nachname}} {{treffen}} {{datum}} {{personen}} {{bus}} {{kennzeichen}}

Vorschau

Schickt die aktuell gewählte Vorschau-Variante mit Beispieldaten an deine Admin-Adresse – auch mit noch nicht gespeicherten Änderungen.

Betreff:

Mail-Aktivität

Lade Protokoll…

Registrierungen verwalten

Lade Registrierungen...

Neuen Termin erstellen

- ODER -

Anmeldungen für Treffen

Wer sich über das Anmeldeformular auf der Webseite für ein Treffen angemeldet hat – gruppiert nach Termin.

📨 Jede Anmeldung löst automatisch eine Bestätigungs-Mail an den Absender aus. Betreff und Aussehen dieser Mail lassen sich im Tab E-Mail anpassen (mit Live-Vorschau).

Lädt…

Anträge auf Mitgliedschaft

Wer das Formular „Mitglied werden“ auf der Webseite ausgefüllt hat – neueste zuerst.

📨 Jeder Antrag löst automatisch eine Bestätigungs-Mail an den Antragsteller und eine Meldung an den Vorstand aus. Empfänger und SMTP-Einstellungen im Tab E-Mail.

Lädt…

Neues Dokument hochladen

Bitte nur PDF-Dateien hochladen.

- ODER -

Neues Bulli MAG

- ODER -

Neues internes Foto / Rolle

- ODER -

Neues Bullifoto

- ODER -

Pinnwand Moderation

Besucherstatistiken

Besucher nach Land

Betriebssysteme

Browser

Top Bildschirmauflösungen

Besucherprotokoll (Letzter Besuch pro IP)

Letzter Besuch IP Adresse Land Browser Betriebssystem Auflösung

Lade Protokoll...

Benutzerverwaltung

Neuen Benutzer anlegen

Bestehende Mitglieder

Lade Benutzer...

Datei-Verwaltung (Assets)

Hier sehen Sie eine Liste aller hochgeladenen Bilder und Dokumente. Sie können nicht mehr benötigte Dateien hier endgültig löschen.

Lade alle Dateien...

🔥 Firebase Projekt

Projekt-IDvwbusclub-webseite
Projekt-Nummer422043806194
Hosting URLhttps://vwbusclub-webseite.web.app
Admin URLhttps://vwbusclub-webseite.web.app/admin.html
Firebase Konsoleconsole.firebase.google.com
Storage Bucketvwbusclub-webseite.firebasestorage.app
Auth Domainvwbusclub-webseite.firebaseapp.com
SuperAdmin E-Mailsupport@mhwe.net
Firebase CLI Kontomhwe.services@gmail.com

📁 Firestore Collections

CollectionZweckWichtige Felder
boardMembersVorstandsrollen + FotosimageUrl, name, email, phone, photoId
internalPhotosInterne Galerie / VorstandsfotosimageUrl, storagePath, text, published
guestPhotosÖffentliche BullifotosimageUrl, storagePath, published
eventsTermine / Veranstaltungentitle, text, startDate, endDate, imageUrl, published
documentsDokumente (PDF)title, storagePath, coverUrl, coverSize, published
bulliMagPdfsBulli MAG Ausgaben (PDF)title, storagePath, coverUrl, coverSize, published
sponsorsSponsorendisplayName, logoUrl, sponsorUrl, published
pinnboardPostsPinnwand (Baum via parentId)type, title, content, imageUrl, parentId, public, locked, authorId
memberProfilesMitglieder-Profile (Doc-ID = uid)displayName, email, phone, bio, avatarUrl, emailNotify
chatMessagesGruppen- / Kanal-Nachrichtentext, authorId, authorName, authorAvatar, channel, imageUrl, createdAt
directMessages1-zu-1 Direktnachrichtentext, authorId, participants[2], createdAt, editedAt
chatReadsGelesen-Zeitstempel je Mitgliedgroup, dm_<uid> (ms-Zeitstempel)
dmReadsGelesen-Quittungen für DMsparticipants[2], <uid>: ms
presenceOnline-Status (Doc-ID = uid)lastActive, status, customStatus, typingIn
channelsChat-Kanälename, createdBy, createdAt
siteContentImpressum, SEO, RollenDocs: impressum, seo (inkl. chatUrl), boardRoleNames, boardRoleVisibility
userPermissionsZugriffsrechte je Benutzeremail, displayName, permissions {read, write je Bereich}
userRegistrationsSelbstregistrierungen (Freigabe-Queue)email, firstName, lastName, status (pending/approved)
eventRegistrationsTreffen-Anmeldungen (1 Datensatz je Teilnehmer & Treffen)firstName, lastName, email, busType, plate, persons, remark, eventId, eventTitle, eventDate, status, ip, ipCountry, updatedIp, cancelledIp
membershipApplicationsMitgliedschaftsanträgefirstName, lastName, birthDate, couple, Adresse, photoUrl, …
visitorLogBesucherprotokoll / Statistikip, country, browser, os, timestamp
mailConfig/smtpSMTP-Zugangsdaten (nur Admin)host, port, secure, user, pass, fromName, fromAddress, toAddress
mailLogMail-Versandprotokoll (nur Function schreibt)type, to, subject, status, error, response, createdAt

⚡ Cloud Functions

FunktionTriggerAufgabe
sharemetaHTTP GET /share/**Server-seitige Open-Graph-Tags für Social-Vorschau (Facebook, WhatsApp)
onNewRegistrationFirestore onCreate userRegistrations/{id}Benachrichtigungs-Mail an Admin bei neuer Mitgliederanmeldung
onRegistrationApprovedFirestore onUpdate userRegistrations/{id}Freischalt-Mail an Benutzer wenn status → approved
onDirectMessageFirestore onCreate directMessages/{id}E-Mail-Benachrichtigung bei neuer DM (Standard: an, Opt-out im Profil). Kein Mail wenn Empfänger Chat gerade aktiv liest (<30s).

Region: us-central1 · Runtime: Node.js 22 · Projekt: vwbusclub-webseite

🗂️ Storage Ordner

sponsorLogos/ eventImages/ documents/ bulliMagPdfs/ internalPhotos/ guestPhotos/ covers/ pinnboardImages/ avatars/ chatFiles/ appIcons/ ogImages/ images/

Bucket: vwbusclub-webseite.firebasestorage.app · CORS: GET/HEAD von allen Origins erlaubt (nötig für PDF-Anzeige auf iOS)

🔗 Externe Dienste & Links

Vereinspostvereinpost-446828451109.europe-west1.run.appCloud Run · Projekt: vereinpost-app
Externer Chatnicht konfiguriert
FormulareNative Firebase-Formulare (kein Cognito mehr): Treffen → eventRegistrations, Mitgliedschaft → membershipApplications, Konto → userRegistrations
Geo-IP Fallbackipwho.is → geojs.io → ipapi.co

⚙️ Deployment

# Alles deployen

firebase deploy --project vwbusclub-webseite

# Nur Hosting (index.html + admin.html)

firebase deploy --only hosting --project vwbusclub-webseite

# Nur Functions

firebase deploy --only functions --project vwbusclub-webseite

# Vereinspost (Cloud Run)

cd ~/Claude-Projekte/vereinpost

gcloud run deploy vereinpost --source . --region europe-west1 --project vereinpost-app

Vereinspost – Newsletter Manager

In neuem Tab öffnen ↗