Files
LaunchPad/docs/ROADMAP.md

2.9 KiB
Raw Blame History

Roadmap

Geplante Reihenfolge der nächsten Commits, aufbauend auf dem lauffähigen Grundgerüst aus Commit 1.

Commit 2 — Geräte- & Dienste-API (erledigt)

  • REST-Endpunkte (Fastify) für GET/POST/PATCH/DELETE auf devices und services
  • Zod-Validierung der Request-Bodies (packages/shared/src/schemas.ts)
  • Repository-Layer über Drizzle (apps/backend/src/db/repositories)

Commit 3 — Suche im Frontend (erledigt)

  • Anbindung von rankServices aus packages/shared an echte Backend-Daten
  • TanStack Query für Datenhaltung (apps/frontend/src/hooks/useServices.ts)
  • Tastatur-Navigation (Pfeiltasten wählen, Enter öffnet Dienst in neuem Tab, Escape leert Suche)
  • Neue UI-Komponente ResultsList in packages/ui

TanStack Router wird bewusst erst mit dem Adminbereich (Commit 6) eingeführt, da es vorher keine zweite Route gibt, die er sinnvoll verwalten könnte.

Commit 4 — Kategorien & Favoriten (erledigt)

  • Kategorien-API: Erstellen, Umbenennen, Löschen, Bulk-Reorder (PATCH /api/categories/reorder)
  • Löschen einer Kategorie setzt category bei betroffenen Diensten auf null, löscht die Dienste aber nicht
  • Favoriten-Toggle direkt in der Trefferliste des Frontends (Stern anklicken, per useMutation + Cache-Invalidierung)

Die eigentliche Kategorien-Verwaltungsoberfläche (Erstellen/Umbenennen/ Drag & Drop in der UI) wandert in Commit 6 (Adminbereich) die Startseite bleibt bewusst die minimalistische Suche, kein Verwaltungs-UI dort.

Commit 5 — Scanner (erledigt)

  • apps/backend/src/scanner/: DNS-Kandidaten-Auflösung, TCP-Portscan (80, 443 + typische Ports), HTTP-Titel-/Favicon-Extraktion, Softwareerkennung per Signatur-Liste, FritzBox-TR-064-Client (inkl. selbst implementierter HTTP-Digest-Authentifizierung)
  • POST /api/scan/devices/:id und POST /api/scan/fritzbox ausschließlich manuell auslösbar, kein automatischer/zeitgesteuerter Scan
  • upsertDeviceFromScan / upsertServiceFromScan in den Repositories: garantiert, dass Benutzerfelder (displayName, category, favorite, order, alias, icon) bei erneuten Scans nie überschrieben werden End-to-End getestet (Service manuell umbenannt/kategorisiert/favorisiert, erneut gescannt, Werte blieben erhalten)

Alle Module wurden gegen echte, lokal gestartete Test-Server verifiziert (Port-Erkennung, Titel/Favicon-Parsing, Softwareerkennung, kompletter FritzBox-SOAP-/Digest-Auth-Ablauf inkl. Fehlerfall bei falschem Passwort). Ein Test gegen eine echte FritzBox war in dieser Umgebung nicht möglich.

Commit 6 — Adminbereich

  • Menüpunkte: Dashboard, Geräte, Dienste, Scanner, Kategorien, Plugins, Einstellungen, Logs

Commit 7 — PWA

  • Manifest, Service Worker, Offline-Grundfunktion, Installierbarkeit

Commit 8 — Plugin-System

  • Plugin-Schnittstelle zum Registrieren von Scannern, Import von Geräten, Erweitern von Menüs, Bereitstellen von Icons