Files
company-tool/IMPLEMENTIERUNGSPLAN.md
Torsten Schulz (local) 0e539710c0 feat: Add password reset functionality with request and reset forms
feat: Implement price list import feature with preview and apply options

feat: Create price rules management page with CRUD operations

feat: Develop quotes management page with itemized quotes and status tracking

feat: Introduce organization registration page for new users

feat: Build suppliers management page with detailed supplier information

feat: Create users management page for inviting and managing roles

chore: Add TypeScript configuration for improved type checking

chore: Set up Vite configuration for development server and API proxy

chore: Add Vite environment type definitions for better TypeScript support
2026-06-02 15:28:38 +02:00

7.8 KiB

Implementierungsplan

Dieser Plan beschreibt die konkrete technische Umsetzung. Die fachlichen Grundentscheidungen stehen in PLANUNG.md; Installations- und Betriebsdetails stehen in INSTALL.md.

Leitlinien

  • Backend zuerst dort stabilisieren, wo mehrere Clients dieselben Funktionen nutzen.
  • Gemeinsame Datenverträge und Rechte werden vor UI-Komfortfunktionen umgesetzt.
  • Webclient und Desktopclient sollen dieselben Backend-Endpunkte verwenden.
  • Alles außer dem Dashboard wird in Fenstern bearbeitet.
  • Neue fachliche Funktionen bekommen eigene atomare Rechte.
  • Bestehende Firmenschemas müssen bei Backend-Start idempotent nachgezogen werden.
  • Benutzer sichtbare Texte verwenden echte Umlaute.

Phase 1: Fundament Stabilisieren

Ziel: Login, Firma, Benutzerrechte, Fensterkonzept und Live-Aktualisierung sind verlässlich testbar.

  • PostgreSQL-Grundschema und Firmenschema-Migrationen anlegen
  • Dev-Bootstrap für lokale Benutzer/Firma ohne E-Mail-Versand
  • Webclient auf Vue umstellen
  • Desktopclient-Konfiguration für Backend-URL
  • Logo in Webclient und Desktopclient verwenden
  • Benutzerrechte-Fenster im Webclient
  • Benutzerrechte-Fenster im Desktopclient
  • Rollenänderungen über Backend-Endpunkt speichern
  • Atomare Rechte initial anlegen
  • Bestehende aktive Firmenschemas beim Backend-Start nachziehen
  • Echte Session-/Auth-Tokens einführen statt temporärer User-ID im Header
  • Aktuelle Firma explizit auswählen und in Requests mitsenden
  • Backend-Rechteprüfung für jeden geschützten Endpunkt zentralisieren
  • Rollen auf Rechte abbilden und nicht nur Rollen anzeigen
  • Live-Events für Benutzer-/Rollenänderungen an alle Clients senden
  • Automatisierten API-Test für Rollenänderung ergänzen
  • Webclient-Build/Typprüfung für Benutzerrechte-Fenster ergänzen
  • Desktopclient-Build/Typprüfung für Benutzerrechte-Fenster ergänzen

Phase 2: Fenster- und Clientmodell

Ziel: Die Anwendung verhält sich konsequent fensterbasiert und aktualisiert offene Fenster bei Änderungen.

  • Webclient öffnet angemeldete Arbeitsbereiche als Fenster
  • Desktopclient öffnet Benutzerrechte als Fenster
  • Gemeinsames Fensterkonzept dokumentieren
  • Webclient-Fenster verschiebbar machen
  • Webclient-Fenstergröße änderbar machen
  • Webclient-Fensterstatus pro Benutzer lokal speichern
  • Desktopclient-Fenster für Firmendaten ergänzen
  • Desktopclient-Fenster für Freischaltung ergänzen
  • Einheitliche Fensteraktionen definieren: Öffnen, Schließen, Fokussieren, Aktualisieren
  • Live-Update-Store im Webclient für Stammdaten einführen
  • Live-Update-Store im Desktopclient für Stammdaten einführen
  • Konfliktverhalten bei paralleler Bearbeitung definieren

Phase 3: Stammdaten

Ziel: Kunden, Lieferanten, Artikel und Aktivitäten sind als erste fachliche Objekte vollständig nutzbar.

  • Datenmodell Kunden finalisieren
  • Migration Kunden erstellen
  • Backend-CRUD Kunden implementieren
  • Web-Fenster Kundenliste und Kundendetail implementieren
  • Desktop-Fenster Kundenliste und Kundendetail implementieren
  • Kundenrabatt und Skonto beim Kunden ablegen
  • Datenmodell Lieferanten finalisieren
  • Migration Lieferanten erstellen
  • Backend-CRUD Lieferanten implementieren
  • Lieferanten-Skonto ablegen
  • Datenmodell Artikel finalisieren
  • Migration Artikel erstellen
  • Backend-CRUD Artikel implementieren
  • Artikelpreise historisieren
  • Datenmodell Aktivitäten finalisieren
  • Migration Aktivitäten erstellen
  • Backend-CRUD Aktivitäten implementieren
  • Web-Fenster für Lieferanten, Artikel und Aktivitäten implementieren
  • Desktop-Fenster für Lieferanten, Artikel und Aktivitäten implementieren
  • Live-Events für Stammdatenänderungen senden

Phase 4: Angebote und Rechnungen

Ziel: Angebote und Rechnungen bilden den ersten produktiven Arbeitsablauf.

  • Nummernkreise für Angebote und Rechnungen produktionsreif machen
  • Nummernkreise für Kunden, Lieferanten, Artikel und Aktivitäten anbinden
  • Nummernkreis-Verwaltung im Webclient und Desktopclient bereitstellen
  • Datenmodell Angebote finalisieren
  • Backend-CRUD Angebote implementieren
  • Angebotspositionen nur aus vorhandenen Artikeln erlauben
  • Positionspreis pro Angebot individuell überschreibbar machen
  • Web-Fenster Angebot erstellen
  • Desktop-Fenster Angebot erstellen
  • Angebot zu Ausgangsrechnung umwandeln
  • Datenmodell Ausgangsrechnungen finalisieren
  • Rechnungspositionen nur aus vorhandenen Artikeln erlauben
  • Positionspreis pro Rechnung individuell überschreibbar machen
  • Kundenrabatt und Skonto automatisch vorschlagen
  • Rechnung revisionssicher abschließen
  • Storno-/Korrekturrechnung vorbereiten
  • Datenmodell Eingangsrechnungen finalisieren
  • Eingangsrechnungen Lieferanten zuordnen
  • Lieferanten-Skonto berücksichtigen
  • Web-Fenster Ausgangs- und Eingangsrechnungen erstellen
  • Desktop-Fenster Ausgangs- und Eingangsrechnungen erstellen

Phase 5: Import und Preisaktualisierung

Ziel: Artikellisten und externe APIs aktualisieren Preise nachvollziehbar.

  • Importformat CSV definieren
  • Importformat Excel prüfen und als spätere Erweiterung zurückstellen
  • Importvorschau im Backend vorbereiten
  • Preislistenimport mit Mapping speichern
  • Preisänderungen historisieren
  • Preisregeln je Lieferant/Quelle definieren
  • API-Connector-Grundstruktur anlegen
  • Externe Preis-API-Konfiguration verschlüsselt speichern
  • Manueller Preisabgleich
  • Geplanter Preisabgleich vorbereiten: Intervall und letzter Abgleich werden gespeichert
  • Live-Update an offene Angebots-/Rechnungsfenster senden
  • Native-Client-Fenster für Preislisten, Preis-APIs und Preisregeln anbinden

Phase 6: Kommunikation und Dokumente

Ziel: Kommunikation, Dokumente und Historie werden je Firma verwaltet.

  • Datenmodell Kommunikation finalisieren
  • Kommunikation Kunden/Lieferanten/Vorgängen/Rechnungen zuordnen
  • Dokumentenspeicher-Layout festlegen
  • Dokumenten-Metadaten verschlüsselt speichern
  • Upload-Endpunkt implementieren
  • Download-Endpunkt implementieren
  • Rechteprüfung für Dokumentzugriff
  • Audit-Log für Dokumentzugriffe
  • Web-Fenster für Kommunikation und Dokumente anbinden

Phase 7: Sicherheit und Betrieb

Ziel: Öffentlicher Server und lokale Installation sind trennbar und sicher betreibbar.

  • Produktives Authentifizierungskonzept implementieren
  • Passwort-Reset implementieren
  • Einladung mit sicherem Token statt Passwortanzeige implementieren
  • E-Mail-Outbox und produktiven Datei-Transport anbinden
  • Dev-Ausgabe für E-Mail-Inhalte klar vom Produktivbetrieb trennen
  • Mandantenschema-Erzeugung transaktional absichern
  • Verschlüsselungsschlüssel-Konzept für Betrieb dokumentieren
  • Schlüsselrotation planen
  • Backup/Restore je Firma dokumentieren
  • Docker-Setup für Backend erweitern
  • Reverse-Proxy/TLS-Beispiel bereitstellen
  • Installationsprogramm für lokale Einzelkunden-Version planen

Phase 8: Qualitätssicherung

Ziel: Kernabläufe sind reproduzierbar testbar.

  • API-Onboarding-Test erweitern: Registrierung, Freischaltung, Login, Rechteänderung
  • Kommunikationstest um Live-Events für fachliche Daten erweitern
  • Migrationstest für bestehende Firmenschemas
  • Rechteprüfung negativ testen
  • Webclient-Build und Typprüfung in Standardcheck aufnehmen
  • Desktopclient-Headless-Tests erweitern
  • Datenbank-Testsetup dokumentieren
  • Testdaten-Seed für lokale Entwicklung anlegen

Aktueller Nächster Schritt

  1. Optimierungen und Fehlerbehebungen priorisieren.
  2. Benutzereinstellungen für die Navigation sind umgesetzt: scrollbar, oder einklappbare Gruppen je Benutzer.