Portfolio-Projekt · April 2026

BeePortal

Eine vollständig integrierte Community-Management-Plattform für Imkervereine — gebaut mit Laravel 12, 37 Datenmodellen und 25 funktionalen Modulen.

Laravel 12 PHP 8.2 SQLite AES-256-CBC RBAC EasyVerein API ICS-Feed
0
Module
0
DB-Modelle
0
Migrationen
0
E-Mail-Typen

Eine Plattform.
Jede Funktion gedacht.

BeePortal entstand als Antwort auf die fragmentierten Werkzeuge, die Imkervereine typischerweise nutzen. Die Plattform fasst Mitgliederverwaltung, Lernplattform, Ressourcenbuchung, Kommunikation und Vereinsorganisation in einer einzigen, kohärenten Anwendung zusammen.

Besonderes Augenmerk wurde auf Datenschutz (DSGVO), Barrierefreiheit (WCAG), feingranulare Berechtigungen und eine reibungslose Integration mit dem externen Mitgliederverwaltungsdienst EasyVerein gelegt.

DSGVO-konform WCAG Barrierefreiheit Dunkel-/Hellmodus Hochkontrast-Modus 2FA (TOTP)
BeePortal / app / Models / User.php
// 37 Eloquent-Modelle · Kern: User
class User extends Authenticatable
{
  use HasRoles, TwoFactorAuthenticatable;
  // Genehmigungsstatus
  protected $casts = [
    'status' => UserStatus::class,
    'high_contrast' => 'boolean',
  ];
  // Persönlicher ICS-Kalender-Token
  // + E2E-verschlüsselter Mentor-Chat
  // + EasyVerein-Sync · 2FA · RBAC
}

Der Stack

🐘

Laravel 12

Haupt-Framework (MVC, Eloquent, Queue, Scheduler)

🔷

PHP 8.2

Laufzeitumgebung mit GD, PDO-SQLite, OpenSSL

🗄️

SQLite

Relationale Datenbank, dateibasiert, 60 Migrationen

🔐

Spatie / Permission

Feingranulares RBAC mit dynamischem Admin-Panel

🔑

Laragear 2FA

TOTP Zwei-Faktor-Authentifizierung, Pflicht für Admins

🎨

Blade

Laravel-Template-Engine, eigene CSS/JS-Module

📊

Chart.js

Datenvisualisierung im Admin-Dashboard

🔗

EasyVerein API

Bidirektionale Mitglieder-Synchronisation

🧪

PHPUnit

Unit- und Feature-Tests, CI-Integration

📅

ICS / RFC 5545

Persönlicher & öffentlicher Kalender-Feed

🔒

AES-256-CBC

Ende-zu-Ende-Verschlüsselung im Mentor-Chat

🐳

Laravel Sail

Docker-basierte Entwicklungsumgebung (optional)

25 Module. Ein System.

Von der Mitgliederregistrierung bis zum verschlüsselten Mentoring — alle Vereinsfunktionen in einer kohärenten Plattform.

🔒

Authentifizierung & Profile

Registrierung mit Admin-Genehmigung, Rate-Limiting, Passwort-Reset, TOTP 2FA, Dark/Light-Modus, Hochkontrast-Einstellung, Benachrichtigungspräferenzen.

Sicherheit
📚

Lernplattform (Learning Center)

4-stufige Hierarchie: Topics → Kapitel → Artikel → Blöcke. Block-Typen: Überschrift, Text, Bild, Video, Audio. Members-only-Inhalte, Bewertungsfunktion, Barrierefreiheitsfelder.

Kernmodul
📦

Ressourcen & Buchungen

Geräte- und Raumverwaltung mit flexiblen Preisregeln (Flatrate, pro Tag, pro Woche). Genehmigungsworkflow mit Kommentarfunktion und EasyVerein-Sync.

Buchungsystem
🐝

Imkerpate (Mentoring)

Paten-Neuling-Matching, beidseitige Annahme/Ablehnung, AES-256-CBC-verschlüsselter Chat mit Bildunterstützung (GD-Komprimierung, UUID-Benennung).

E2E-Verschlüsselt
👥

Mitgliederverwaltung

CRUD, Genehmigungs-/Ablehnungsworkflow, Rollenzuweisung, EasyVerein-ID-Verknüpfung, Datenexport (JSON/XML), Gruppenmanagement.

Administration
📅

Veranstaltungen & RSVP

Termine mit Sichtbarkeitskontrolle (öffentlich/intern), RSVP-Funktion (Zugesagt/Abgesagt/Vielleicht), Deadline, Absagen mit Begründung.

Terminverwaltung
📰

News-System

Beiträge mit Bildern, Emoji-Reaktionen (Toggle-Funktion, beliebig viele Emojis pro Nutzer und Beitrag, Unique-Constraint je Emoji).

Community
📆

Saisonkalender

CSS-Grid-basierte Jahresansicht imkerlicher Aktivitäten. Wiederkehrende und einmalige Einträge, HEX-Farbwahl, Verlinkung mit Lernartikeln.

Visualisierung
🗂️

Dokumentenmanagement

Dokumente in Kategorien, Download-Funktion, Kommentare je Dokument, Admin-Verwaltung.

Verwaltung

Imker:innen fragen (Q&A)

Internes Frage-Antwort-System nach Themen, Experten-Antwort-Markierung, Moderation (Verschieben, Zusammenführen, Löschen).

Wissensteilung
🛒

Secondhand-Marktplatz

Inserate mit mehreren Bildern, Als-verkauft-Markierung, Meldefunktion, vollständige Admin-Übersicht.

Mitglieder
🏪

Verkaufsstände

Anmeldung, Admin-Genehmigung, Schließen/Wiedereröffnen, Webhook-API für externe Einbindung.

Verwaltung
🌿

Beecatcher (Schwarmfänger)

Registrierung mit Standortdaten, Admin-Genehmigung, E-Mail-Benachrichtigungen, Webhook-API für öffentliche Darstellung.

Register

Aufgabenverwaltung

Aufgaben erstellen, Mitgliedern zuweisen, Statustracking (Offen → In Bearbeitung → Erledigt), Kommentarfunktion, EasyVerein-Sync.

Workflow
📣

Feedback-System

Mitglieder-Rückmeldungen mit Status-Workflow (Offen → In Bearbeitung → Geschlossen) und Admin-seitigen Bearbeitungsnotizen.

Community
⚖️

Rechtliche Dokumente

AGB, Datenschutz etc. mit Versionierung. Middleware erzwingt Zustimmung; Protokollierung mit Zeitstempel und IP-Adresse.

Compliance
🔎

Activity-Logging (Audit-Trail)

Zentraler ActivityLogger für alle sicherheitsrelevanten Aktionen. 5 Kategorien, 4 Level, filterbar/suchbar, Export-Funktion, kritische Logs als Nav-Badge.

Sicherheit
🔄

EasyVerein-Integration

Bidirektionale Mitglieder-Synchronisation, manuell oder per Scheduler. Vollständige und partielle Synchronisation, Anonymisierungs-Schalter.

Integration
🔑

Rollen- & Berechtigungen (RBAC)

22 granulare Berechtigungen, dynamisch im Admin-Panel verwaltbar. Standard-Rolle für neue Mitglieder, vollständiges Audit-Logging.

Sicherheit
📡

ICS-Kalender-Feed

Öffentlicher & persönlicher Feed (RFC 5545, TZID Europe/Berlin). RSVP-Präfix im Titel, Abgesagt-Status, Token-Regenerierung, 1h Auto-Refresh.

Integration
🔌

API-Keys & Webhooks

SHA-256-gehashte Keys mit definierten Abilities. 5 Webhook-Endpunkte: Scheduler, Queue, Termine, Verkaufsstände, Schwarmfänger.

API
📤

Datenexport

Benutzer, Assets, Buchungen, Verkaufsstände, Beecatcher, Datenbankdump — in JSON und XML.

Administration
📊

Admin-Dashboard

Zentraler Überblick mit Chart.js-Visualisierungen, kritische Log-Badges, schnelle Zugänge zu allen Verwaltungsbereichen.

Administration
🌙

Theme & Barrierefreiheit

Dark/Light-Modus pro Nutzer, Hochkontrast-Modus (WCAG), Alt-Texte, Gebärdensprach-Video-Felder, Transkript-Unterstützung je Block.

WCAG
✉️

E-Mail-Benachrichtigungen

36 Notification-Klassen: Registrierungsanfragen, Buchungsstatus, Veranstaltungsänderungen, Mentor-Matching, Aufgaben-Zuweisungen und mehr.

Kommunikation

Umfang auf einen Blick

0
Eloquent-Modelle
0
Controller
0
Datenbankmigrationen
0
E-Mail-Klassen
0
Funktionsmodule
0
RBAC-Berechtigungen
0
Webhook-Endpunkte
0
Bit AES-Verschlüsselung

Ende-zu-Ende-verschlüsselter
Mentor-Chat

Das Imkerpaten-System verbindet erfahrene Imker:innen (Paten) mit Einsteigern (Neulinge) — mit einem vollständig verschlüsselten Chat-Kanal.

Jede Paarung erhält einen eindeutigen AES-256-CBC-Schlüssel. Text-Nachrichten werden serverseitig ver- und entschlüsselt; der Schlüssel verlässt den Server nie.

  • 1Mitglied registriert sich als Pate oder Neuling
  • 2Automatisches Matching aus dem verfügbaren Pool
  • 3Beide Parteien bestätigen per E-Mail oder Portal
  • 4Eindeutiger AES-256-CBC-Schlüssel wird generiert
  • 5Alle Nachrichten werden verschlüsselt gespeichert
  • 6Bilder: clientseitig Canvas-vorkomprimiert, serverseitig via GD nochmals reduziert
  • 7Bildauslieferung nur über auth-gesicherte Route (nur Paarungsteilnehmer)
// MentorPairing.php
 
public function encryptMessage(
  string $plaintext
): array {
  $iv = random_bytes(16);
   AES-256-CBC
  $encrypted = openssl_encrypt(
    $plaintext,
    'AES-256-CBC',
    hex2bin($this->encryption_key),
    0, $iv
  );
  return [
    'content' => $encrypted,
    'iv' => bin2hex($iv),
  ];
}