b2in/dev/entwicklung copy.md
2026-04-10 17:18:17 +02:00

222 lines
8.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.*