222 lines
8.7 KiB
Markdown
222 lines
8.7 KiB
Markdown
# B2IN – Projekt-Entwicklungsstand
|
||
|
||
**Stand:** März 2026 · **Laravel** 12 · **Livewire** 4 · **Volt** · **Flux UI** (Pro)
|
||
|
||
---
|
||
|
||
## Projektübersicht
|
||
|
||
Die Anwendung ist eine **Multi-Domain-Laravel-Plattform** für Partner-Onboarding, Produkt- und Hub-Verwaltung, **öffentliche Marketing-Websites** (mehrere Marken/Domains) und **Digital Signage** (Cabinet/Displays). Das **Flux-CMS** (`packages/flux-cms`) ist als Paket eingebunden und steuert zunehmend **Content und Medien** für die Web-Auftritte; klassische Display-Verwaltung (Videos, Footer, Versionen) bleibt über **eigene Admin-Livewire-Komponenten** erreichbar.
|
||
|
||
---
|
||
|
||
## Wichtige ToDos
|
||
|
||
- **System-E-Mail / Zustellung:** Teilweise Ausfälle oder Blocklisten (z. B. Gmail mit SPF/DKIM-Themen bei united-domains). Langfristig: saubere Domain-Auth, Bounce-Handling, Monitoring.
|
||
- **Bestellsystem / Orders:** Berechtigungen sind im `RoleSeeder` vorbereitet (`view orders`, `manage orders`); fachliche Umsetzung und UI folgen.
|
||
|
||
---
|
||
|
||
## Kern-Technologien
|
||
|
||
| Bereich | Technologie |
|
||
|--------|-------------|
|
||
| Backend | Laravel 12, PHP ^8.2 (in der Praxis oft 8.4 in der Dev-Umgebung) |
|
||
| Frontend (Portal) | Livewire 4, Volt (Single-File-Komponenten), Flux UI Pro |
|
||
| Frontend (öffentliche Sites) | Livewire-Sections, Tailwind CSS 4, Alpine.js |
|
||
| Auth | Laravel Fortify, Sanctum (API), E-Mail-Verifizierung, 2FA möglich |
|
||
| Rechte | Spatie Laravel Permission |
|
||
| Tests | Pest, PHPUnit 11 |
|
||
| Assets | Vite (getrennte Builds z. B. Portal / Web) |
|
||
| Dev | Laravel Sail **oder** Dev Container – in `CLAUDE.md` sind direkte `php`/`composer`/`npm`-Kommandos beschrieben |
|
||
|
||
**Hinweis Volt + Livewire 4:** Funktionale Volt-Dateien sollten im PHP-Block **kein erstes `new …`** enthalten (Compiler-Einschränkung); objektorientierte Hilfsklassen liegen z. B. unter `app/Services/`.
|
||
|
||
---
|
||
|
||
## Rollen & Berechtigungen (Ist-Zustand)
|
||
|
||
Definiert u. a. in `database/seeders/RoleSeeder.php` (Namen exakt so in der Datenbank):
|
||
|
||
| Rolle | Kurzbeschreibung |
|
||
|-------|------------------|
|
||
| **Customer** | Endkunde, Produkt-/Order-sichtbar (eigene Orders) |
|
||
| **Estate-Agent** | Makler – Dashboard, Partner-Übersicht, Hubs einsehen |
|
||
| **Retailer** | Händler – eigene Produkte anlegen/bearbeiten, Miet-Optionen |
|
||
| **Manufacturer** | Hersteller – analog Retailer |
|
||
| **Admin** | Voller operativer Zugriff inkl. Partner, Hubs, **Produkt-Kuration**, User |
|
||
| **Super-Admin** | für erweiterte Systemzugriffe vorgesehen (Gate/Policy-Pattern) |
|
||
|
||
Die ältere Doku sprach teils von „Broker“ – im Code heißt die Rolle **Estate-Agent**.
|
||
|
||
---
|
||
|
||
## Entwickelte Module & Funktionen (Auswahl)
|
||
|
||
### 1. Multi-Domain-System
|
||
|
||
**Status:** produktiv genutzt
|
||
|
||
- Domains konfigurierbar (`config/domains.php`, siehe `dev/DOMAINS-CONFIG.md`)
|
||
- **Portal:** z. B. `portal.b2in.test` – Admin-Backend
|
||
- **Öffentliche Sites:** z. B. `b2in.test`, weitere Marken-Domains mit Theme-Wechsel
|
||
- **ThemeServiceProvider**, domainbezogene Vite-Build-Verzeichnisse
|
||
- Optional: Simulation einer Domain per `.env` für lokales Testen
|
||
|
||
---
|
||
|
||
### 2. Partner-Management & Onboarding
|
||
|
||
**Status:** stabil im Einsatz
|
||
|
||
- Einladungen (`PartnerInvitationMail`), Token, Ablauf
|
||
- **Partner-Setup-Wizard** (`EnsurePartnerSetupCompleted` – unvollständiges Setup leitet zum Wizard)
|
||
- Registrierung über Codes, rollenspezifische Landing-Routes (`/reg/...`)
|
||
- Hierarchien und Provisionen: **Datenmodell und Berechtigungen** vorhanden; Ausbaustufen für Abrechnung siehe Roadmap
|
||
|
||
---
|
||
|
||
### 3. Hub-Management
|
||
|
||
**Status:** CRUD und Verknüpfungen nutzbar
|
||
|
||
- Admin-Routen für Hubs und Standorte (`hub_locations`)
|
||
- Detailausbauten (Analytics, automatische Zuweisung) roadmap
|
||
|
||
---
|
||
|
||
### 4. Produkt-Management
|
||
|
||
**Status:** deutlich über „Grundgerüst“ hinaus
|
||
|
||
- Partner können u. a. **Standard-** und **Teaser-Produkte** anlegen/bearbeiten (Volt-Formulare)
|
||
- **Admin-Kuration:** Rolle `Admin`, Permission `curate products` – Freigabe/Status (Tests in `tests/Feature/ProductCurationTest.php`)
|
||
- Katalog-Modell: Produkte, Varianten, Kategorien, Marken, Tags, Logistik u. a.
|
||
|
||
---
|
||
|
||
### 5. Digital Signage (Cabinet / Displays)
|
||
|
||
**Status:** betrieben; technische Doku unter `dev/DISPLAY_CMS_README.md`, `dev/DISPLAY_SETUP_LIVE.md`
|
||
|
||
- Admin: Display-Versionen, Playlists, Footer-Links, Shortlink/Tracking (siehe bestehende README)
|
||
- Öffentliche/Showroom-Assets u. a. unter `public/_cabinet/`
|
||
- APIs z. B. Display-Konfiguration (`routes/domains.php`)
|
||
|
||
Parallel existiert die **Flux-CMS-Medienverwaltung** für Website-Assets – beide Welten können koexistieren (unterschiedliche Einsatzgebiete).
|
||
|
||
---
|
||
|
||
### 6. Flux CMS (Package-Integration)
|
||
|
||
**Status:** **eingebunden und im Portal bedienbar** – kontinuierliche Content-Pflege und Ausbau
|
||
|
||
- Paketpfad: `packages/flux-cms/` (`core`, `components`, `starter-components`)
|
||
- Composer: `flux-cms/core` (path repository)
|
||
- **Portal-Routen (Auszug):** u. a. `admin/flux-cms` (Dashboard), Content, Projekte, Medien, Artikel – Namen wie `cms.dashboard`, `cms.content.index`, …
|
||
- **App-Integration:** Hilfsfunktionen (`cms()`, `media_url()`, … in `app/helpers.php`), Models wie `CmsContent`, `CmsProject`, `CmsArticle` (Migrationen u. a. `cms_projects`, `cms_articles`)
|
||
- Architekturüberblick: `packages/flux-cms/ARCHITECTURE.md`
|
||
- **Ziel laut `dev/flux-cms/tasks.md`:** bestehende B2IN-Website schrittweise ins CMS überführen; weitere Subseiten später
|
||
|
||
---
|
||
|
||
### 7. Öffentliche Website & Content-Strategie
|
||
|
||
**Status:** laufende inhaltliche Ausrichtung
|
||
|
||
- Viele Seiten als **Livewire-Section-Komponenten** unter `app/Livewire/Web/Components/Sections/`
|
||
- **Immobilien-Fokus (Soft Launch):** strategische Ausrichtung und Text-Briefings liegen in `dev/12-03-2026/tasks.md` (Fokus Dubai/Immobilien, Möbel/Einrichtung zunächst nur Teaser; bestehende Inhalte konservieren, ggf. über ergänzende/„versteckte“ Pfade wie bei Theme-Demos)
|
||
- Routen u. a. `/immobilien`, `/immobilien/{slug}` – Sektionen u. a. über `cms_theme_section('…')` pro Theme-Key (siehe `resources/views/web/immobilien.blade.php`)
|
||
|
||
---
|
||
|
||
### 8. Authentifizierung & Einstellungen
|
||
|
||
**Status:** produktiv
|
||
|
||
- Fortify-Features (Login, Register, Reset, Verify, 2FA)
|
||
- Profil, Passwort, Erscheinungsbild (Volt)
|
||
|
||
---
|
||
|
||
### 9. Admin-Extras
|
||
|
||
- **Projekt-Dokumentation** im Portal: Route `admin/documentation` rendert diese Datei `dev/entwicklung.md` (Service `App\Services\ProjectDocumentationContent`)
|
||
- **Impersonation** für Admins
|
||
- **CMS/Display-Admin:** getrennte Oberflächen für Flux-CMS und klassische Display-Pflege (siehe Routen oben)
|
||
|
||
---
|
||
|
||
## Datenbank (Auszug)
|
||
|
||
Neben den Kern-Tabellen (User, Partner, Produkte, Hubs, Display-Tabellen, …) u. a.:
|
||
|
||
- **`cms_projects`**, **`cms_articles`** – projekt-/artikelbezogene CMS-Daten (App-Models)
|
||
- Flux-CMS-Paket kann je nach Migration weitere `flux_cms_*`-Tabellen mitbringen – bei Deploy/Tests Migrationen aus Core + App berücksichtigen
|
||
|
||
---
|
||
|
||
## Dokumentation im Repository
|
||
|
||
| Pfad | Inhalt |
|
||
|------|--------|
|
||
| `Readme.md` | Projektüberblick |
|
||
| `CLAUDE.md` | Dev-Container, Befehle, Tests (SQLite) |
|
||
| `dev/DOMAINS-CONFIG.md` | Domains & `.env` |
|
||
| `dev/LOCAL-DEVELOPMENT.md` | Lokales Setup |
|
||
| `dev/PARTNER-SETUP-WIZARD.md` | Partner-Wizard |
|
||
| `dev/DISPLAY_*.md` | Display/Cabinet |
|
||
| `dev/THEME-SWITCHING.md` | Themes |
|
||
| `dev/12-03-2026/tasks.md` | Aktuelle Web-/Immobilien-Briefings |
|
||
| `packages/flux-cms/ARCHITECTURE.md` | CMS-Architektur |
|
||
|
||
*(Es gibt kein `dev/HERO-ICONS-USAGE.md` mehr – Icons: Flux/Heroicons nach Projektstandard.)*
|
||
|
||
---
|
||
|
||
## Tests & Qualität
|
||
|
||
- **Pest**-Feature-Tests u. a. für Auth, Partner, Produkte, CMS-Admin, Display-APIs
|
||
- Vor Releases sinnvoll: `php artisan test` (bzw. im Container/Sail das Projekt-Äquivalent)
|
||
- **Laravel Pint** für PHP-Code-Stil
|
||
|
||
---
|
||
|
||
## Roadmap (Kurz)
|
||
|
||
**Kurzfristig**
|
||
|
||
- E-Mail-Zustellung / Domain-Reputation stabilisieren
|
||
- Immobilien- und Teaser-Content gemäß `dev/12-03-2026/tasks.md` weiterziehen
|
||
- Flux-CMS: bestehende Startseite/Kernseiten vollständig pflegbar machen
|
||
|
||
**Mittelfristig**
|
||
|
||
- Bestellprozess end-to-end
|
||
- Provisionslogik
|
||
- Reporting
|
||
|
||
**Langfristig**
|
||
|
||
- API-Erweiterungen, ggf. Mobile-Clients über Sanctum
|
||
- Internationalisierung dort, wo fachlich nötig
|
||
|
||
---
|
||
|
||
## Projektstatus – Kompakt
|
||
|
||
| Bereich | Einordnung |
|
||
|---------|------------|
|
||
| Multi-Domain & Themes | stabil |
|
||
| Auth & Rollen | stabil |
|
||
| Partner & Wizard | stabil |
|
||
| Produkte inkl. Kuration | weit fortgeschritten |
|
||
| Hubs | nutzbar, Ausbau möglich |
|
||
| Display/Cabinet | stabil |
|
||
| Flux CMS | **integriert**, Content-Ausbau läuft |
|
||
| Öffentliche Website | live-tauglich, Schwerpunkt Immobilien/Soft Launch |
|
||
| Bestellsystem | vorbereitet, nicht abgeschlossen |
|
||
|
||
---
|
||
|
||
*Diese Datei ist die Referenz für die interne Projekt-Dokumentation (`admin/documentation`) und soll bei größeren Meilensteinen angepasst werden.*
|