54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# shape3d
|
|
|
|
Kurzbeschreibung
|
|
Diese App zeigt eine 3D-Druck-Materialmatrix: Welche Materialien laufen auf welchen Druckern, inkl. Eigenschaften, Anforderungen und Sicherheits-/Emissionsindikatoren. Die Oberfläche lädt Daten per API und rendert sie als Tabelle mit optionalem Drucker-Vergleich.
|
|
|
|
Was wird angezeigt
|
|
- Materialliste mit Metadaten (z. B. Eigenschaften, Tg, Düsen-/Plattenanforderung, Anwendung, Kinder-Sicherheit, Emission).
|
|
- Pro ausgewähltem Drucker eine Kompatibilitäts-Spalte (voll/teilweise/mit Zusatz/nicht unterstützt).
|
|
- Auswahl: Einzelansicht (ein Drucker) oder Vergleich (mehrere Drucker).
|
|
|
|
Datenquellen (flexibel gehalten)
|
|
Die App ist so aufgebaut, dass UI und Datenzugriff getrennt sind. Je nach Reimport/Neustrukturierung können Dateinamen und Pfade abweichen, solange die folgenden Rollen weiterhin existieren:
|
|
|
|
- Einstiegspunkt (z. B. `public/index.php`): Lädt eine Seite/Ansicht, die das Layout und die Matrix enthält.
|
|
- Matrix-Ansicht (z. B. `partials/landing/main/material-matrix.php`): Enthält das Markup + JS, das die Daten lädt und die Tabelle rendert.
|
|
- API-Endpoints (z. B. `/api/*` über das Routing): Stellen JSON bereit für
|
|
- Drucker-Liste
|
|
- Material-Liste
|
|
- Drucker-spezifische Material-Kompatibilität
|
|
- DB-Zugriff (z. B. `src/App/Database.php`): Baut eine DB-Verbindung und wird von den API-Endpunkten genutzt.
|
|
|
|
Aktuelle DB-Struktur (Schema-Orientierung)
|
|
Das Schema besteht aus drei Kern-Tabellen, die für die Materialmatrix benötigt werden:
|
|
|
|
1) materials
|
|
- Stammdaten der Materialien (Code/Name/Short-Desc, Eigenschaften, Tg, Anforderungen, Anwendung).
|
|
- Flags für Kinder-Sicherheit und Emission.
|
|
- `is_active` steuert Sichtbarkeit.
|
|
|
|
2) printers
|
|
- Stammdaten der Drucker (Name/Brand/Modell, Temperaturgrenzen, Bauvolumen, Notes).
|
|
- `is_active` steuert Sichtbarkeit.
|
|
|
|
3) printer_material_support
|
|
- Zuordnung Drucker ↔ Material (M:N).
|
|
- `support_level` beschreibt die Kompatibilität.
|
|
- `partial_reason` / `extra_info` liefern Detailhinweise.
|
|
|
|
Datenfluss (funktional)
|
|
1) UI lädt die Druckerliste.
|
|
2) Für den gewählten Drucker (oder mehrere) werden Materialien inkl. Support-Level geladen.
|
|
3) Die Tabelle rendert Materialinfos und pro Drucker eine Support-Badge-Zelle.
|
|
|
|
Hinweise für Reimport/Neuaufbau
|
|
- Die Datei-/Ordnernamen dürfen sich ändern, solange die Rollen (UI, API, DB-Zugriff) abgebildet sind.
|
|
- Die API muss weiterhin JSON liefern, das die Matrix-Ansicht erwarten kann:
|
|
- `printer`: Drucker-Datensatz
|
|
- `materials`: Liste der Materialien mit optionalem `support_level` + Zusatzinfos.
|
|
- Die Datenbank kann migriert werden, solange Material-, Drucker- und Zuordnungsdaten semantisch erhalten bleiben.
|
|
- Für DB-Zugriff muss `APP_DB_ENABLED` aktiviert sein; die Zugangsdaten sollten per ENV-Variablen kommen.
|
|
|
|
Sicherheit
|
|
- Zugangsdaten sollten nicht im Repo liegen. Nutze ENV-Variablen oder separate Configs pro Environment.
|