Files
HiveGrid-Wireframes/05 HiveGrid Map/HiveGrid Map.canvas
T
davidandClaude Fable 5 ca078436df Plan Kern-Kette P6-P7 (Kontakte, Leads) + Datei-Teilen v1
- WF-P6 Kontakte und Organisationen: Kontaktmodell validiert (ein Datensatz,
  Kontaktart = Rolle der Verknuepfung, Shell-Prinzip), Karteikarte als
  Detailseiten-Muster (Zweispalter + Reiter)
- WF-P7 Leads: Triage-Inbox, Lead->Projekt als grosses Modal (+Bulk),
  CSV-Import-Wizard (Davids Delta/CR), Quellen + Spam-Schutz
- WF-P4 Dateien: Teilen/Freigeben in v1 (intern + Link, Preset Mit mir geteilt)
- Paket-Canvases auf Default-Kurven, MD-Verknuepfungen je Canvas

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 23:17:54 +02:00

862 lines
34 KiB
Plaintext

{
"nodes": [
{
"id": "904c5ece127e2e4c",
"type": "group",
"x": 5497,
"y": 3020,
"width": 1540,
"height": 1400,
"label": "VERWALTUNG (WORKSPACE-EINSTELLUNGEN)"
},
{
"id": "88792c50986c93db",
"type": "group",
"x": 1950,
"y": 960,
"width": 2587,
"height": 740,
"color": "2",
"label": "VERTRIEB — vom Anruf zum Auftrag"
},
{
"id": "77c19412215a977c",
"type": "group",
"x": 5037,
"y": 960,
"width": 2260,
"height": 740,
"color": "2",
"label": "AUFTRAG & BAUSTELLE"
},
{
"id": "41b8d85d3bb8d47d",
"type": "group",
"x": -160,
"y": 0,
"width": 1850,
"height": 740,
"color": "6",
"label": "BASIS — gilt für alle Features"
},
{
"id": "ca7223940f6e1d29",
"type": "group",
"x": 2520,
"y": 2080,
"width": 2317,
"height": 520,
"label": "TERMINE & FORMULARE"
},
{
"id": "e97e13901e405fcd",
"type": "group",
"x": 5037,
"y": 2080,
"width": 1540,
"height": 740,
"label": "KOMMUNIKATION"
},
{
"id": "8acc5d7d61317076",
"type": "group",
"x": 2110,
"y": 3020,
"width": 1450,
"height": 740,
"label": "AUTOMATIONEN"
},
{
"id": "070f258760fab4e9",
"type": "group",
"x": 760,
"y": 3020,
"width": 1190,
"height": 740,
"label": "AUFGABEN & DATEIEN — stecken in jedem Feature"
},
{
"id": "db7d9db3cd7939b0",
"type": "group",
"x": 3997,
"y": 0,
"width": 1040,
"height": 740,
"label": "SUCHE & DASHBOARD"
},
{
"id": "c3172228336521df",
"type": "group",
"x": 7197,
"y": 3020,
"width": 540,
"height": 1400,
"label": "PLATTFORM-ADMIN — unsere interne Verwaltung"
},
{
"id": "00d6b92d3845c185",
"type": "group",
"x": 1160,
"y": 2080,
"width": 1190,
"height": 520,
"label": "E-MAIL-MARKETING"
},
{
"id": "7a26f88c260892eb",
"type": "group",
"x": 1950,
"y": 0,
"width": 557,
"height": 740,
"color": "3",
"label": "WEBSITE 🌐"
},
{
"id": "2025c7621bb63c98",
"type": "group",
"x": 2737,
"y": 0,
"width": 540,
"height": 740,
"color": "4",
"label": "LOGIN & ZUGÄNGE"
},
{
"id": "3c6e5b1ea4a27913",
"type": "group",
"x": 7977,
"y": 3020,
"width": 540,
"height": 740,
"label": "HR (MITARBEITER)"
},
{
"id": "e21930b7073823f8",
"type": "text",
"text": "## Aufgaben\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/tasks` + überall als Reiter\n\n**Was drin ist:** Aufgaben-Liste (Meine / von mir erstellt / Alle), Aufgabe mit Frist, Priorität, Zuständigem (Person oder Gruppe), Beobachtern und Verknüpfung (Kontakt/Projekt/…)\n\n**So funktioniert's:** Einmal gebaut, überall eingebettet — jede Detailseite hat einen Aufgaben-Reiter. Aufgaben können auch aus Chat, Formularen oder Automationen entstehen (Herkunft sichtbar). Erinnerung vor/nach Frist.",
"x": 800,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "036e2a807223753d",
"type": "text",
"text": "## Dateien\n**Ticket:** `D-P4` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/files` + überall als Reiter\n\n**Was drin ist:** Datei-Übersicht (Tabelle oder Kacheln, Filter, Mehrfach-Aktionen inkl. ZIP), Upload per Drag&Drop (mehrere gleichzeitig, mit Fortschritt), Datei-Detail mit Vorschau\n\n**So funktioniert's:** Dateien hängen an Kontakten/Projekten/… mit Rolle (z. B. »Angebot«). iPhone-Fotos (HEIC) werden automatisch zu JPG. Versionen kommen in v2.",
"x": 1450,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "a1328943a7cef3b2",
"type": "file",
"file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas",
"x": 1450,
"y": 3500,
"width": 460,
"height": 220
},
{
"id": "98798c9044c1d4bc",
"type": "file",
"file": "02 Wireframes/P4 Aufgaben und Dateien/WF-P4 Aufgaben/WF-P4 Aufgaben.canvas",
"x": 800,
"y": 3500,
"width": 460,
"height": 220
},
{
"id": "8f3127f03a5bab96",
"type": "text",
"text": "## Automations-Baukasten (Flow-Editor)\n**Ticket:** `D-FLOW` · **Status:** ⬜ offen\n**Wo:** `/automations/:id/edit`\n\n**Was drin ist:** Zeichenfläche mit Bausteinen: Auslöser (neue Anfrage, Formular abgeschickt, Zeitplan …) und Aktionen (Aufgabe anlegen, Mail senden, Wenn-Dann, Warten …) per Ziehen verbinden\n\n**So funktioniert's:** Alles in verständlichem Deutsch beschriftet. Vor dem Aktivieren zeigt eine Probe-Vorschau »trifft X Datensätze« — erst bestätigen, dann läuft's. Warnt vor Endlos-Schleifen. **Aufwendigste UI der ganzen App.**",
"x": 2150,
"y": 3100,
"width": 460,
"height": 360,
"color": "1"
},
{
"id": "e6d8c36a0f89d954",
"type": "text",
"text": "## Automationen: Übersicht & Verläufe\n**Ticket:** `D-P12` · **Status:** ⬜ offen\n**Wo:** `/automations`\n\n**Was drin ist:** Liste aller Automationen (aktiv/pausiert/Entwurf), Lauf-Protokolle Schritt für Schritt in Klartext, Vorlagen-Katalog (SHK-Vorlagen + eigene)\n\n**So funktioniert's:** Jeder Lauf ist nachvollziehbar; 24 h lang rückgängig machbar (Countdown-Knopf), fehlgeschlagene Schritte neu anstoßen.",
"x": 3067,
"y": 3100,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "77ebfde5a3a05b8a",
"type": "text",
"text": "## Online-Terminbuchung 🌐\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** 🌐 Buchungslink + `/bookings`\n\n**Was drin ist:** 🌐 Buchungs-Seite für Kunden (freien Termin wählen → Formular → Bestätigung mit Kalender-Datei), intern: Buchungs-Liste (verschieben, stornieren, No-Show), Buchungsseiten-Editor, Verfügbarkeits-Zeiten\n\n**So funktioniert's:** Kunde bucht selbst, der erste freie Mitarbeiter bekommt den Termin, die Anfrage landet im Lead-Eingang. Muss am schönsten aussehen — ist öffentlich.",
"x": 3067,
"y": 2160,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "28bd46ecb4eaa069",
"type": "text",
"text": "## Kalender\n**Ticket:** `D-BOOK` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** `/calendar` + Einstellungen\n\n**Was drin ist:** Monats-/Wochen-Ansicht mit allen Terminen (Google-Kalender + Buchungen + Plantafel, je mit Herkunfts-Marker), Google-Kalender verbinden, Konflikt-Übersicht\n\n**So funktioniert's:** Läuft in beide Richtungen mit Google (Outlook kommt in v2). Fremde private Termine erscheinen nur als »belegt«.",
"x": 3837,
"y": 2160,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "b789fc765f833f45",
"type": "text",
"text": "## Digital unterschreiben (E-Signatur)\n**Ticket:** `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Angebot als PDF hochladen → Unterzeichner festlegen → Kunde unterschreibt per Link (mit SMS/Mail-Code) oder direkt auf dem Gerät → Status je Unterzeichner, Erinnerung, Widerruf\n\n**So funktioniert's:** Hängt direkt am Projekt (»Angebot zur Signatur senden«). Eigene Lösung, kein Pflicht-Drittanbieter.",
"x": 4337,
"y": 2160,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "6b8c7d3bc3ee7449",
"type": "text",
"text": "## Formulare (Baukasten) 🌐\n**Ticket:** `D-FORM` + `D-P16` (Teil) · **Status:** ⬜ offen\n**Wo:** `/forms` + öffentlicher Link\n\n**Was drin ist:** Formular-Baukasten (Felder per Ziehen anordnen, Wenn-Dann-Logik »zeige Feld X wenn …«, Live-Vorschau), 🌐 öffentliches Formular zum Teilen (Link, QR-Code, Einbetten), Antworten-Übersicht\n\n**So funktioniert's:** Was nach dem Absenden passiert, ist einstellbar: Anfrage/Aufgabe anlegen, Mail senden, Automation starten. Dieselben Formulare stecken auch in HR-Anträgen und der Terminbuchung.",
"x": 2560,
"y": 2160,
"width": 460,
"height": 360,
"color": "1"
},
{
"id": "ab16fe58ff28c0ac",
"type": "text",
"text": "## Kampagnen & Empfängerlisten\n**Ticket:** `D-KAMP` · **Status:** ⬜ offen\n**Wo:** `/email-marketing`\n\n**Was drin ist:** Kampagne erstellen in 6 Schritten (Absender → Inhalt → Empfänger → Test-Mail → Zeitpunkt → Check) · Empfängerlisten (Segmente) mit Filtern bauen\n\n**So funktioniert's:** Vor dem Versand prüft eine Checkliste alles Rechtliche (Domain bestätigt? Abmelde-Link? Impressum?) — bei Rot wird nicht gesendet.",
"x": 1200,
"y": 2160,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "4cce52e2e3bd8823",
"type": "text",
"text": "## Versand-Technik & Statistiken 🌐\n**Ticket:** `D-P14` · **Status:** ⬜ offen\n**Wo:** `/email-marketing` + Einstellungen\n\n**Was drin ist:** Eigene Absender-Domain einrichten (mit Copy-Paste-Anleitung), Kampagnen-Übersicht + Statistiken (zugestellt/geöffnet/geklickt), gesperrte Empfänger, Vorlagen, 🌐 Abmelde-Seite\n\n**So funktioniert's:** Mails an Kunden tauchen automatisch am Kontakt auf (BCC-Trick, kein Postfach-Anschluss nötig — der kommt in v2).",
"x": 1850,
"y": 2160,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "401d8270854bebac",
"type": "text",
"text": "## Team-Chat 📱\n**Ticket:** `D-CHAT` · **Status:** ⬜ offen\n**Wo:** `/chat`\n\n**Was drin ist:** Channel-Liste, Chat-Verlauf (Antwort-Threads, Emoji-Reaktionen, gelesen-von, Anhänge), Erwähnungen mit @, angepinnte Nachrichten, Suche, Direktnachrichten\n\n**So funktioniert's:** Jedes Projekt kann seinen eigenen Channel haben (Team wird automatisch synchron gehalten). Monteure: vereinfachte Handy-Ansicht mit Foto-Direktupload. Admin kann DMs nur mit Begründung einsehen.",
"x": 5077,
"y": 2160,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "5c72e7b04059503a",
"type": "text",
"text": "## Integrationen (Apps verbinden)\n**Ticket:** `D-P5` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/integrations`\n\n**Was drin ist:** App-Katalog (nach Kategorie, mit Status-Ampel), Verbindung einrichten per Schritt-für-Schritt-Assistent, Verbindungs-Zustand + Sync-Verlauf in Klartext\n\n**So funktioniert's:** Das gemeinsame Gerüst für alle Anbindungen — E-Mail, Telefonie, Kalender, Signatur nutzen alle dieselben Verbindungs-Karten.",
"x": 5537,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "b334f15bdd19d9ad",
"type": "text",
"text": "## Erste Schritte & Demo-Daten\n**Ticket:** `D-P20` (Teil) · **Status:** ⬜ offen\n**Wo:** `/onboarding` + Admin\n\n**Was drin ist:** Erste-Schritte-Checkliste (mit Direkt-Links, abhakbar, ausblendbar), Beispieldaten-Knopf (anlegen, zählen, wieder löschen, »Demo ausblenden«-Filter), Hell/Dunkel-Umschalter\n\n**So funktioniert's:** Kein Einrichtungs-Assistent — beim Registrieren wird alles SHK-typisch vorbefüllt, die Checkliste führt danach durch.",
"x": 5537,
"y": 3760,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "a-integrationen-pkg",
"type": "file",
"file": "02 Wireframes/P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas",
"x": 5537,
"y": 3500,
"width": 460,
"height": 220
},
{
"id": "29ca06733a9b243b",
"type": "text",
"text": "## Telefonie (Anrufe)\n**Ticket:** `D-P15` · **Status:** ⬜ offen\n**Wo:** `/calls` + Einstellungen\n\n**Was drin ist:** AirCall verbinden (Telefon-Nutzer zuordnen), Anruf-Liste + Detail (Notiz, Aufnahme), Anruf-Knopf direkt an Kontakt/Anfrage/Projekt\n\n**So funktioniert's:** Anrufe werden automatisch dem richtigen Kontakt zugeordnet. Unbekannte Nummer ruft an → wird automatisch eine Anfrage im Lead-Eingang.",
"x": 5577,
"y": 2160,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "0f6acf7087283c0c",
"type": "text",
"text": "## Aktivitäts-Protokoll (Audit-Log)\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/admin/audit`\n\n**Was drin ist:** Wer hat wann was geändert — als deutscher Klartext-Satz, mit Filter und Vorher/Nachher-Vergleich, Export mit Zweck-Angabe\n\n**So funktioniert's:** Der gleiche Verlauf ist auch an jedem Datensatz einblendbar (»Verlauf dieses Objekts«). Unterscheidet Mensch / Automation / Agent / Admin.",
"x": 6037,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "3864f1b74d665e1a",
"type": "file",
"file": "02 Wireframes/P3 Querschnitt/WF-P3 Audit Log/WF-P3 Audit Log.canvas",
"x": 6037,
"y": 3500,
"width": 460,
"height": 220
},
{
"id": "6533d410b309a48f",
"type": "text",
"text": "## Datenschutz (Export & Löschung)\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** `/admin/privacy` + Einstellungen\n\n**Was drin ist:** Daten-Export als ZIP (für einen Nutzer oder den ganzen Workspace), Workspace-Löschung (mehrstufig, 30 Tage Schonfrist, Passwort + 2FA), Konto-Löschung, Liste der Unterauftragsverarbeiter, AVV-Vertrag\n\n**So funktioniert's:** Letzter Baustein vor dem Launch. DSGVO-Auskunftsanfragen laufen in v1 als manuelle Anleitung, ohne eigenen Assistenten.",
"x": 6037,
"y": 3760,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "50945ed6e43505ce",
"type": "text",
"text": "## Benachrichtigungen\n**Ticket:** `D-P3` (Teil) · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** Glocke oben + Einstellungen\n\n**Was drin ist:** Glocke mit Ungelesen-Zähler + aufklappbare Liste (Klick springt zur Sache), eigene Seite mit allen Meldungen, Einstellungen: pro Ereignis-Typ wählen ob In-App und/oder E-Mail\n\n**So funktioniert's:** Wird von allen Features gespeist (neue Anfrage, Aufgabe fällig, Antrag genehmigt …). Master-Schalter »alle E-Mails aus«.",
"x": 6077,
"y": 2160,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "43a26561f03f72da",
"type": "file",
"file": "02 Wireframes/P3 Querschnitt/WF-P3 Benachrichtigungen/WF-P3 Benachrichtigungen.canvas",
"x": 6077,
"y": 2560,
"width": 460,
"height": 220
},
{
"id": "6b3c0929759a607b",
"type": "text",
"text": "## Abo & Rechnungen (für HiveGrid)\n**Ticket:** `D-P20` (Teil) · **Status:** ⚠️ Ticket braucht Recut\n**Wo:** `/admin/subscription`\n\n**Was drin ist:** Abo-Übersicht (Plan, Plätze, gebuchte Module, Test-Countdown), Verbrauchs-Balken (Automations-Läufe, Speicher), Rechnungen + Zahlungsstatus\n\n**Achtung:** Das Ticket wird gerade umgeschnitten (neuer Abrechnungs-Unterbau) — erst planen, wenn der Brief neu steht. Kein Selbst-Upgrade in v1.",
"x": 6537,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "db76161d24fb0c1d",
"type": "text",
"text": "## Feedback & Hilfe\n**Ticket:** `D-P21` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/help`\n\n**Was drin ist:** Schwebender Feedback-Knopf (Fehler melden / Idee / Frage, optional mit Screenshot), kleine FAQ-Seite\n\n**So funktioniert's:** Meldungen landen direkt in unserer Support-Inbox im Plattform-Admin.",
"x": 6537,
"y": 3760,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "c8d8914e45e1497e",
"type": "text",
"text": "## Plattform-Admin\n**Ticket:** `D-ADMIN` · **Status:** ⬜ offen\n**Wo:** admin.hivegrid.de\n\n**Was drin ist:** Eigener Login (2FA Pflicht), Übersichts-Dashboard (Kunden, Nutzer, Umsatz, System-Zustand), Kunden-Verwaltung (Module freischalten = Abo-Baukasten, Test verlängern, »als Kunde einloggen« mit Begründung), Nutzer-Hilfen (2FA-Reset), Feature-Schalter, Warteschlangen-Monitor, Support-Inbox, Protokoll\n\n**So funktioniert's:** Komplett eigene Welt für uns als Betreiber — Kunden sehen davon nichts. Muss funktionieren, nicht hübsch sein.",
"x": 7237,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "abf5f779c1463715",
"type": "text",
"text": "## Hinweis\nDieses eine Ticket enthält viele kleine Features (Kunden, Schalter, Support …).\n\nBeim atomaren Durchgehen behandeln wir es als eigenen Bereich und teilen es bei Bedarf in Unter-Pakete auf. Priorität liegt aber hinter der Vertriebs-/Auftrags-Kette.",
"x": 7237,
"y": 3760,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "d9868dadb782f253",
"type": "text",
"text": "## Kontakte & Organisationen\n**Ticket:** `D-CRM` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/contacts`\n\n**Was drin ist:** Kontakt-Liste, Organisations-Liste, Kontakt-Detailseite (die Vorlage für ALLE Detailseiten), eigene Felder, Tags, Duplikate zusammenführen\n\n**So funktioniert's:** Ein Kontakt ist Privatperson oder Organisation und hat einen Status (Kontakt → Kunde → Bestandskunde). Auf der Detailseite sieht man alles: Projekte, Mails, Anrufe, Aufgaben, Dateien, Notizen.",
"x": 3077,
"y": 1040,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "e10a35560a461111",
"type": "text",
"text": "## Kanban-Board & Pipelines (Projekte)\n**Ticket:** `D-P8` + `D-KANBAN` · **Status:** ⬜ offen\n**Wo:** `/projects` + Admin\n\n**Was drin ist:** Kanban-Board mit Spalten je Status (Karten ziehen = Status wechseln), Projekt-Liste, Projekt-Detailseite, Pipeline-Einstellungen (Spalten, Rechte, Pflichtfelder), Verlust-Gründe\n\n**So funktioniert's:** Ein Projekt wandert durch Boards — »Vertrieb« und »Auftrag« sind nur zwei Boards für denselben Datensatz. Gewonnen = wechselt aufs Auftrags-Board. Wer welche Felder sieht (z. B. Umsatz), ist einstellbar.",
"x": 4037,
"y": 1040,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "4bb807ef5e3c8dee",
"type": "text",
"text": "## Projekt-Akte (Auftrag) 📱\n**Ticket:** `D-P9` · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Reiter am Projekt: Team-Mitglieder, Termine, **Rechnungen (neu in v1)**, Checklisten & Mängel, Aufgaben, Dateien, Abnahmen · dazu Projekt-Vorlagen und Abnahme-Formular-Vorlagen\n\n**So funktioniert's:** Alles zum Auftrag an einem Ort. Am Handy reduziert: Stammdaten, heutige Aufgaben, Abnahme-Knopf, Foto direkt hochladen.",
"x": 5077,
"y": 1040,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "3f83fa1a16ae69df",
"type": "text",
"text": "## Plantafel (Einsatzplanung) 📱\n**Ticket:** `D-PLAN` · **Status:** ⬜ offen\n**Wo:** `/projects/plantafel`\n\n**Was drin ist:** Planungs-Raster: Zeilen = Mitarbeiter, Spalten = Zeit. Einsätze per Ziehen verschieben/verlängern, Klick auf freien Slot = neuer Einsatz\n\n**So funktioniert's:** Warnt bei Konflikten (doppelt verplant, Urlaub/krank, außerhalb Arbeitszeit) — zuweisen geht trotzdem. Monteure sehen am Handy »Meine Termine heute« mit Adresse + Navi, auch offline.",
"x": 5897,
"y": 1040,
"width": 460,
"height": 360,
"color": "1"
},
{
"id": "d9ad572ae83b4d0a",
"type": "text",
"text": "## Abnahme (Baustellen-Protokoll) 📱\n**Ticket:** `D-ABN` · **Status:** ⬜ offen\n**Wo:** im Projekt-Detail\n\n**Was drin ist:** Abnahme-Formular (Druckprobe, Funktionsprüfung, Zählerstände, übergebene Dokumente), Mängel mit Foto festhalten, Unterschrift Kunde + Monteur direkt am Handy, Liste aller Abnahmen je Projekt\n\n**So funktioniert's:** Nach dem Speichern unveränderbar (6 Jahre Aufbewahrung), PDF geht automatisch per Mail an den Kunden. Funktioniert offline, lädt später hoch. Mängel werden automatisch Aufgaben.",
"x": 6767,
"y": 1040,
"width": 460,
"height": 360,
"color": "1"
},
{
"id": "903e3384b0a5e623",
"type": "text",
"text": "**Detail-Flows:** 9 Wireframe-Pakete mit eigenen Canvases in `02 Wireframes/P2 Auth/` (Login, Signup, Reset, Set Password, 2FA, RBAC …) — siehe Tracker",
"x": 2777,
"y": 480,
"width": 460,
"height": 220
},
{
"id": "3e27875daca5713d",
"type": "text",
"text": "## Login, Registrierung & Workspace\n**Ticket:** `D-P2` · **Status:** ✅ validiert / in Subframe\n**Wo:** Login-Seiten + Einstellungen\n\n**Was drin ist:** Registrierung, Login + 2FA, Passwort vergessen/ändern, Workspace-Auswahl + neuer Workspace, Profil & Sicherheit, Mitarbeiter & Rollen (Admin)\n\n**Stand:** 9 Wireframe-Pakete fertig gebaut. Konto/Workspace löschen bewusst geparkt. → `02 Wireframes/P2 Auth/`",
"x": 2777,
"y": 80,
"width": 460,
"height": 360,
"color": "4"
},
{
"id": "89c0813f7e139a88",
"type": "text",
"text": "## Dashboard (Startseite)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** `/dashboard`\n\n**Was drin ist:** 3 feste Ansichten je Rolle: Chef (Umsatz, Projekte, Auslastung) · Büro (Projekte, Aufgaben, Anrufe) · Monteur 📱 (meine Termine, Projekte, Aufgaben)\n\n**So funktioniert's:** Kacheln mit Zahlen, Listen und Trend-Charts, live aktualisiert. Kein freies Umbauen in v1 — nur Filter/Zeitraum einstellbar.",
"x": 4037,
"y": 80,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "4a4e5be847a54e5f",
"type": "text",
"text": "## Suche (Cmd+K)\n**Ticket:** `D-DASH` (Teil) · **Status:** ⬜ offen\n**Wo:** überall + `/search`\n\n**Was drin ist:** Such-Fenster per Tastenkürzel: tippen, Treffer nach Typ gruppiert, mit Pfeiltasten navigieren · dazu große Such-Seite mit Filtern\n\n**So funktioniert's:** Findet Kontakte, Projekte, Dateien usw. — zeigt nur, was man sehen darf.",
"x": 4537,
"y": 80,
"width": 460,
"height": 360,
"color": "1"
},
{
"id": "ce5632682989a6ca",
"type": "text",
"text": "## Website (Landing & Demo-Anfrage)\n**Ticket:** `D-WEB` · **Status:** ⬜ offen\n**Wo:** 🌐 hivegrid.de\n\n**Was drin ist:** Startseite, Features-Seite, Preise-Teaser, Demo-Anfrage-Formular\n\n**Warum wichtig:** Der erste Eindruck nach außen. Farben/Schriften sind dieselben wie in der App. Demo-Anfragen landen im Lead-Eingang.",
"x": 2007,
"y": 80,
"width": 460,
"height": 360,
"color": "2"
},
{
"id": "c02969250252a3ab",
"type": "text",
"text": "## Feinschliff vor Launch\n**Ticket:** `D-POLISH` · **Status:** ⬜ offen\n**Wo:** 🌐 alles öffentlich Sichtbare\n\n**Was drin ist:** Letzter Polier-Durchgang: Terminbuchungs-Seite, öffentliche Formulare, Marketing-Mails · danach Screenshots als »So muss es aussehen«-Referenz einfrieren\n\n**Warum wichtig:** Kommt ganz am Ende, direkt vor dem Launch. Braucht Terminbuchung + Dashboard fertig.",
"x": 1190,
"y": 80,
"width": 460,
"height": 360,
"color": "3"
},
{
"id": "d48196ed3e229be5",
"type": "text",
"text": "**Standards:** `04 Standards/Subframe UI Standards/` — validierte Layout-Regeln",
"x": 690,
"y": 480,
"width": 460,
"height": 220
},
{
"id": "d53e7ea48a9b1e6c",
"type": "text",
"text": "## UI-Baukasten (Listen, Formulare, Modals …)\n**Ticket:** `D-D0b` · **Status:** ✅ validiert\n**Wo:** überall in der App\n\n**Was drin ist:** Fertige Bausteine: Listen mit Filter, Detail-Seiten, Formular-Felder (12 Typen), Dialoge/Wizards, Settings-Seiten, Leer-/Lade-/Fehler-Zustände + Kleinteile (Buttons, Tags, Charts, Unterschriften-Feld …)\n\n**Warum wichtig:** Einmal designen, überall wiederverwenden. Layout-Standards liegen in `04 Standards`. ✅ Bereits erledigt.",
"x": 690,
"y": 80,
"width": 460,
"height": 360,
"color": "4"
},
{
"id": "b3cad562971d30a5",
"type": "text",
"text": "## App-Gerüst (Sidebar, Topbar & Design)\n**Ticket:** `D-D0a` · **Status:** ✅ gebaut (David, in Subframe)\n**Wo:** überall in der App\n\n**Was drin ist:** Sidebar (Module ein-/ausblendbar je Abo, Handy-Variante 📱), Topbar (Workspace-Wechsler, Suche, Glocke, Profil-Menü), Breadcrumb, Warn-Banner (z. B. »Zahlung offen«), Erfolgs-/Fehlermeldungen\n\n**Stand:** Bereits gebaut und validiert. Der Rahmen, in dem jedes Feature steckt — inkl. Farben, Schriften, Hell/Dunkel.",
"x": -100,
"y": 80,
"width": 460,
"height": 360,
"color": "4"
},
{
"id": "8272764aa65537b0",
"type": "text",
"text": "## Lead-Eingang (Anfragen)\n**Ticket:** `D-P7` · **Status:** 🟡 vorgeplant (Screens validiert, Subframe offen)\n**Wo:** `/leads`\n\n**Was drin ist:** Eingangs-Liste aller Anfragen (mit Quelle, Spam-Verdacht, Duplikat-Hinweis), Anfrage-Detail, »Zu Projekt machen«, Statistiken, Quellen-Verwaltung, Spam-Schutz-Einstellungen\n\n**So funktioniert's:** Alle Anfragen (Website, Formulare, Anrufe, Buchungen) landen hier. Wer sie bearbeiten darf (Freigabe = ja), macht daraus ein Projekt und hängt den Kontakt dran.",
"x": 2007,
"y": 1040,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "03e8e03ef11606a0",
"type": "text",
"text": "## HR-Bereich 📱\n**Ticket:** `D-HR` · **Status:** ⬜ offen\n**Wo:** `/hr` + HR-Admin\n\n**Was drin ist:** Startseite (Ankündigungen, offene Anträge, wer ist heute da), Urlaub & Krankmeldung (mit Genehmigung), Lohnabrechnungen, Anträge (Spesen, Hardware …), Passwort-Safe, Umfragen, Mitarbeiter-Verzeichnis, Standorte, eigene Dokumente\n\n**So funktioniert's:** Mitarbeiter-Sicht und HR-Verwaltung sind strikt getrennt; sensible Daten verschlüsselt, jedes Aufdecken protokolliert. Urlaub/krank fließt direkt in die Plantafel-Konflikte.",
"x": 8017,
"y": 3100,
"width": 460,
"height": 360,
"color": "5"
},
{
"id": "d5d3db1765287eef",
"type": "text",
"text": "# 🗺 HiveGrid Feature Map (v1)\nJede Karte = **ein Feature**. Das Ticket steht nur als Referenz dran. Übergreifende Sachen (App-Gerüst, UI-Baukasten, Feinschliff) liegen unter **Basis**.\n\n**Farben:**\n🟢 fertig/validiert · 🔴 Sonder-UI, wird von Hand designt (Tage) · 🔵 wird aus dem UI-Baukasten zusammengesteckt (Stunden) · 🟠 Mischung aus beidem · 🟣 Basis · 🟡 Feinschliff\n\n**Marker:** 🌐 öffentlich sichtbar (höchster Anspruch) · 📱 Monteur-Handy, teils offline\n\n**Unter jeder Karte:** Slot für die verknüpften Paket-Canvases (Detail-Flows aus `02 Wireframes`) — Karte anklicken öffnet den Flow.\n\n**Pfeile:** orange = Hauptkette (Anfrage → Auftrag → Geld) · grau = klare Querverbindung. Gilt etwas für **alle** Features (Automationen, Aufgaben/Dateien, Benachrichtigungen, Verbindungs-Gerüst), steht es als Text auf der Karte statt als Pfeil.\n\nAbhaklisten & Details: [[HiveGrid Map]]",
"x": -163,
"y": -600,
"width": 1140,
"height": 380
},
{
"id": "a4f86f7bfc24194b",
"type": "text",
"styleAttributes": {
"border": "dashed"
},
"text": "# 📏 Canvas-Regelwerk\n**Karten:** 1 Karte = 1 Feature · Farbe = Aufwand/Status (siehe Legende links) · unter der Karte hängen die Paket-Canvases (Detail-Flows).\n\n**Verbindungen:**\n- 🟠 **durchgezogen** — Hauptkette: so fließt ein Auftrag durchs System\n- 🔵 **durchgezogen** — erzeugt Anfrage/Termin (Wege in den Lead-Eingang)\n- **grau, lang gestrichelt** — speist/beeinflusst (Daten fließen rüber)\n- **grau, kurz gestrichelt** — Werkzeug-Paar (gehört fachlich zusammen)\n- 🟣 **gepunktet** — Basis/Einstieg (Design-Grundlage, nach dem Login)\n- **kein Pfeil** — gilt für ALLE Features (steht als Text auf der Karte)\n\n**Pfadführung:** nur gerade (direkt) oder Standard-Kurve — keine verwinkelten Wege. Wenn ein ganzer Bereich zu einem anderen gehört, wird Gruppe↔Gruppe (oder Gruppe↔Karte) verbunden statt vieler Einzel-Pfeile.\n\n**Label-Regel:** Zwischen verbundenen Karten bleibt mindestens Label-Breite Platz (≈ 8 px pro Zeichen + Rand), sonst wird der Text abgeschnitten.",
"x": 1187,
"y": -640,
"width": 820,
"height": 420
},
{
"id": "md-hivegrid-map",
"type": "file",
"file": "05 HiveGrid Map/HiveGrid Map.md",
"x": -683,
"y": -600,
"width": 460,
"height": 300
},
{
"id": "a-kontakte-pkg",
"type": "file",
"file": "02 Wireframes/P6 Kontakte/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas",
"x": 3077,
"y": 1440,
"width": 460,
"height": 220
},
{
"id": "a-leads-pkg",
"type": "file",
"file": "02 Wireframes/P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas",
"x": 2007,
"y": 1440,
"width": 460,
"height": 220
}
],
"edges": [
{
"id": "4ab78034e8253353",
"styleAttributes": {
"path": "dotted",
"pathfindingMethod": "direct"
},
"fromNode": "b3cad562971d30a5",
"fromSide": "right",
"toNode": "d53e7ea48a9b1e6c",
"toSide": "left",
"color": "6",
"label": "Design-Grundlage"
},
{
"id": "493a2823934c45bb",
"styleAttributes": {
"path": "dotted",
"pathfindingMethod": "direct"
},
"fromNode": "3e27875daca5713d",
"fromSide": "right",
"toNode": "89c0813f7e139a88",
"toSide": "left",
"color": "6",
"label": "nach dem Login"
},
{
"id": "ec751d558a1aef74",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "8272764aa65537b0",
"fromSide": "right",
"toNode": "d9868dadb782f253",
"toSide": "left",
"color": "2",
"label": "Kontakt anlegen/verknüpfen"
},
{
"id": "154e632b2e5a645b",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "d9868dadb782f253",
"fromSide": "right",
"toNode": "e10a35560a461111",
"toSide": "left",
"color": "2",
"label": "Kontakt hängt am Projekt"
},
{
"id": "0c0d0ba4b21da4ee",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "e10a35560a461111",
"fromSide": "right",
"toNode": "4bb807ef5e3c8dee",
"toSide": "left",
"color": "2",
"label": "gewonnen → Auftrags-Board"
},
{
"id": "b43edef178d41dd6",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "4bb807ef5e3c8dee",
"fromSide": "right",
"toNode": "3f83fa1a16ae69df",
"toSide": "left",
"color": "2",
"label": "Termine einplanen"
},
{
"id": "c45adb9c0c551e38",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "3f83fa1a16ae69df",
"fromSide": "right",
"toNode": "d9ad572ae83b4d0a",
"toSide": "left",
"color": "2",
"label": "Ausführung → Abnahme"
},
{
"id": "47be96e20dcfa86a",
"styleAttributes": {
"pathfindingMethod": null
},
"fromFloating": false,
"fromNode": "d9ad572ae83b4d0a",
"fromSide": "bottom",
"toNode": "4bb807ef5e3c8dee",
"toSide": "bottom",
"color": "2",
"label": "Mängel → Aufgaben · dann Rechnung"
},
{
"id": "2ec97abebcf1dcce",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "ce5632682989a6ca",
"fromSide": "bottom",
"toNode": "8272764aa65537b0",
"toSide": "top",
"color": "5",
"label": "Demo-Anfrage"
},
{
"id": "4b89b1105393e48f",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"toFloating": false,
"fromNode": "6b8c7d3bc3ee7449",
"fromSide": "top",
"toNode": "8272764aa65537b0",
"toSide": "bottom",
"color": "5",
"label": "Formular → Anfrage"
},
{
"id": "bc139947ce483198",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromNode": "77ebfde5a3a05b8a",
"fromSide": "top",
"toNode": "8272764aa65537b0",
"toSide": "bottom",
"color": "5",
"label": "Buchung → Anfrage/Termin"
},
{
"id": "57a256b64d1a2d76",
"styleAttributes": {
"pathfindingMethod": "direct"
},
"fromFloating": false,
"fromNode": "29ca06733a9b243b",
"fromSide": "top",
"toNode": "8272764aa65537b0",
"toSide": "bottom",
"color": "5",
"label": "Anruf von unbekannt → Anfrage"
},
{
"id": "78fca84da3e723b6",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "00d6b92d3845c185",
"fromSide": "top",
"toNode": "d9868dadb782f253",
"toSide": "bottom",
"label": "E-Mails am Kontakt sichtbar (ganzer Bereich)"
},
{
"id": "8792d0c809babff2",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": null
},
"fromFloating": false,
"toFloating": false,
"fromNode": "03e8e03ef11606a0",
"fromSide": "top",
"toNode": "3f83fa1a16ae69df",
"toSide": "bottom",
"label": "Urlaub/krank → Konflikt-Warnung"
},
{
"id": "ce4441bfdc6a11cc",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "28bd46ecb4eaa069",
"fromSide": "top",
"toNode": "3f83fa1a16ae69df",
"toSide": "bottom",
"label": "Kalender-Abgleich"
},
{
"id": "77081523e546eebe",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromFloating": false,
"fromNode": "b789fc765f833f45",
"fromSide": "top",
"toNode": "4bb807ef5e3c8dee",
"toSide": "bottom",
"label": "hängt an der Projekt-Akte"
},
{
"id": "e6c0f9dda77f8d85",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "401d8270854bebac",
"fromSide": "top",
"toNode": "4bb807ef5e3c8dee",
"toSide": "bottom",
"label": "Projekt-Channel im Projekt"
},
{
"id": "65bd180bf263096e",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "e10a35560a461111",
"fromSide": "top",
"toNode": "89c0813f7e139a88",
"toSide": "bottom",
"label": "Zahlen fürs Dashboard"
},
{
"id": "dc15b80a5a4410c9",
"styleAttributes": {
"path": "long-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "db76161d24fb0c1d",
"fromSide": "right",
"toNode": "c8d8914e45e1497e",
"toSide": "left",
"label": "Feedback → Support-Inbox"
},
{
"id": "0bb07aa23fe6a9f2",
"styleAttributes": {
"path": "short-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "28bd46ecb4eaa069",
"fromSide": "left",
"toNode": "77ebfde5a3a05b8a",
"toSide": "right",
"label": "freie Zeiten"
},
{
"id": "cc8ccd69ae4f9435",
"styleAttributes": {
"path": "short-dashed",
"pathfindingMethod": "direct"
},
"fromNode": "8f3127f03a5bab96",
"fromSide": "right",
"toNode": "e6d8c36a0f89d954",
"toSide": "left",
"label": "Baukasten ↔ Übersicht"
}
],
"metadata": {
"version": "1.0-1.0",
"frontmatter": {}
}
}