---
title: VSM IT-Plattform (MZ4) — Reverse-Engineering Brain (Master-Index)
date: 2026-06-30
status: aktiv
type: project
tags: [reverse-engineering, vsm, mz4, interligent, bmw, supplierpulse, dokumentation]
---

# VSM IT-Plattform „MZ4" — Reverse-Engineering „Brain" (Master-Index)

**Auftrag (Kais 2026-06-30):** vollständige funktionale/technische/visuelle Doku von
`https://mz4-bmw.interligent.com/`, so dass die App *funktional identisch* nachgebaut werden kann.
Kontext: BMW-Make-Entscheidung **SupplierPulse (APP-48999)** — MZ4 ist der abzulösende Bestand.
**Keine Quellcode-/IP-Kopie** — nur Funktionalität/UI/Produktlogik.

## Was die App ist
**MZ4 = Einsatz-/Kapazitätsplanung für BMW-Berater** (Supplier Development, Teams MO-2/22/23/24 u. a.).
Plant Berater-Einsätze (Termine/Aufträge), verwaltet Projekte & Lieferanten, liefert Reporting/KPIs
und Kundenzufriedenheits-Tracking. BMW+MINI-Branding, BMWGroup-Font. PHP/jQuery/Bootstrap, AnyChart.

## Status: Doku v1 + v2 ABGESCHLOSSEN ✅
- [x] Login, 12 Module + Sub-Pages gecrawlt (raw/), authentifizierte Screenshots (screenshots/)
- [x] Technik/Architektur, Designsystem, App-Map, konsolidiertes Datenmodell
- [x] Alle Module tief dokumentiert (modules/01–08) — Felder, Filter, Tabellen, Workflows
- [x] **v2:** AJAX-/JS-Contracts (09) — alle Endpunkte + Payload-Felder aus Calendar.js/Project.js etc.
- [x] **v2:** Live-Capture (10) — Termin-Dialog (komplett), Nav-Menübaum, Mobile-Ansicht, Händlerportal-Detail
- [ ] Rest-Feinschliff (optional): edit-Dialog visuell, weitere Händlerportal-Tabs echter Lieferanten,
      exakte KPI-Berechnungsformel (Struktur in 09 dokumentiert)

## Notes-Index
**Übergreifend:**
- `10-app-map.md` — Zweck, Top-Nav, Modul-Inventory, Endpunkte
- `11-tech-architektur.md` — Stack (PHP/Apache, jQuery/Bootstrap/AnyChart/flatpickr), Routing, Auth, Libs
- `20-datenmodell.md` — konsolidierte Entitäten & Beziehungen
- `90-designsystem-preauth.md` / `91-designsystem.md` — Designsystem (CSS + Live-UI)

**Pro Modul (modules/):**
- `01-einsatzplanung.md` — Kalender-Grid (Berater × Tage), Termin-CRUD, 5 Terminarten, AJAX-Endpunkte
- `02-projekte.md` — Projektliste, 5 Filter, 6-Stufen-Status-Workflow, Sub-Views overview/projectdata/kpi
- `03-capacity-reporting.md` — Arbeitstage- & Mitarbeiter-Pivot, 7/5 Filter, server-persistierter Filter-State
- `04-kpi-reporting.md` — KPI-Charts (AnyChart, 10 Boards) + KPI-Export (excel_func.php/pdf.php)
- `05-kuzu-auswertung.md` — Kundenzufriedenheits-Tracking (2460 Projekte, 3 KuZu-Daten)
- `06-lieferanten.md` — DealerSelect (2073 Lieferanten) + Händlerportal-Detail
- `07-einstellungen-userverwaltung.md` — Config + User-Mgmt, **8 Rollen (RBAC)**
- `08-formulare-subpages.md` — alle Detail-/Create-Formulare feldgenau (Projekt 30+, User 19, Commodity 255 …)
- `09-ajax-js-contracts.md` — **alle AJAX-Endpunkte + Payload-Felder** (Termin create/edit/remove/duplicate/status,
  Autocomplete, filter_push, Excel-Export) aus den App-JS-Dateien (raw/js/)
- `10-v2-live-capture.md` — interaktiv erfasst: Termin-Dialog (Felder+Enums+Endpunkte), Nav-Menübaum, Mobile, Händlerportal

## Kern-Erkenntnisse (Kurz)
- **Routing:** Front-Controller `index.php?modul=X&aktion=Y&...&sessionkey=TOKEN`. AJAX via `ajaxloader.php`.
- **Entitäten:** Mitarbeiter/Berater, Abteilung/MO, Termin, Terminart, Projekt, Lieferant/Werk,
  KPI/Kapazität, Kundenzufriedenheit, Commodity, User/Rolle. (Details: 20-datenmodell.md)
- **Rollen (8):** Admin/Berater/Hauptabteilungsleiter/Abteilungsleiter/Backoffice/Diplomant/Praktikant/Archiv.
- **Auftragstyp (13)**, **Projekt-Status (6-stufig)**, **Terminart (5)** — zentrale Enums.
- **Export:** `excel_func.php` (Excel), `com/pdf.php` (wkpdf). **Charts:** AnyChart.js.
- **Multi-Region:** DE + UK + China/USA/Mexiko (Teams & KPI-Boards). **Mobile-View** vorhanden (mobile.js).

## Wichtigste offene Fragen (für v2)
1. Exaktes POST-Format `createAppointment`/`editAppointment` (Termin-Dialog) — Live-Klick nötig.
2. haendlerportal-Tabs außer Stammdaten (Detailfelder je Tab).
3. Mobile-Ansicht (Layout/Funktionsumfang).
4. Genaues Berechnungsmodell der KPIs/Auslastung (Zielband 55–65 %).
5. config=baseconfig vollständige Optionen (nur `lock_date` sichtbar, Rest JS/viewport).

## Quellen/Artefakte
- `raw/` — alle gecrawlten HTMLs (Module + Sub-Pages) + Login + Prompt-Bild
- `screenshots/` — authentifizierte Full-Page-Screenshots je Modul
- Zugang: `/root/.aria-secrets/mz4.env` (nie über Telegram). KAR-825.

Verknüpft: SupplierPulse-BMW-Kontext.md · SupplierPulse-App-Vision.md
