feat: Implement initial application structure with network view and SVG editor

- Added network-view.js for visualizing network topology with devices and connections.
- Introduced svg-editor.js for managing ports on device types with drag-and-drop functionality.
- Created bootstrap.php for application initialization, including configuration and database connection.
- Established config.php for centralized configuration settings.
- Developed index.php as the main entry point with module-based routing.
- Integrated _sql.php for database abstraction.
- Added auth.php for single-user authentication handling.
- Included helpers.php for utility functions.
- Created modules for managing connections, device types, devices, and floors.
- Implemented database schema in init.sql for locations, buildings, floors, rooms, network outlets, devices, and connections.
- Added Docker support with docker-compose.yml for web and database services.
- Documented database structure and UI/UX concepts in respective markdown files.
This commit is contained in:
Troy Grunt
2026-02-05 23:41:54 +01:00
parent 13995695db
commit 5066262fca
39 changed files with 1829 additions and 0 deletions

250
README.md
View File

@@ -1,2 +1,252 @@
# netwatch
### Stockwerksplan (SVG)
- Pro Stockwerk ein SVG
- Enthält:
- Räume (benennbar, nummerierbar)
- Netzwerkdosen (frei platzierbar)
- Elemente sind:
- Verschiebbar
- Nachträglich anpassbar
- Eindeutig referenzierbar
### Netzwerkdose
- Name / Nummer
- Raum
- Anzahl Ports
- Porttypen (z. B. RJ45, Glasfaser, BNC)
- Ports sind vollständig normale Ports im System
---
## Gerätetypen
### Gerätetyp
Definiert das **Aussehen und die Port-Geometrie** eines Geräts.
**Attribute**
- Name
- Kategorie:
- Switch
- Server
- Patchpanel
- Sonstiges
- Darstellung:
- SVG **oder**
- JPG/PNG
### Portdefinition im Bild
Beim Anlegen eines Gerätetyps:
- Bild wird angezeigt
- Ports werden per Klick gesetzt:
- X/Y relativ zum Bild
- Portname
- Porttyp
- Diese Portdefinition ist die Vorlage für alle Geräte dieses Typs
---
## Geräte
### Gerät
Instanz eines Gerätetyps.
**Attribute**
- Name
- Gerätetyp
- Standort / Rack / Stockwerk
- Position im Rack:
- Start-HE
- Höhe in HE
- Seriennummer (optional)
- Kommentar
Ports werden automatisch aus dem Gerätetyp erzeugt.
---
## Switches & Ports
### Ports
- Name / Nummer
- Porttyp (frei definierbar)
- Geschwindigkeit(en)
- Status (aktiv / deaktiviert)
- VLAN-Zuweisung
- Modus:
- Access
- Trunk
- Hybrid
- Custom (Freitext)
---
## Module (z. B. SFP, Spezialkarten)
### Modul
Eigenständige Komponente, die in einen Port eingesetzt wird.
**Eigenschaften**
- Name
- Typ (z. B. SFP, QSFP, BNC-Modul)
- Kompatible Porttypen
- Eigene Ports (z. B. LC Duplex)
### Logik
```
Switch-Port → Modul → Modul-Port → Verbindung
```
Module können selbst Ports besitzen und sind vollwertige Verbindungspartner.
---
## Verbindungstypen
### Verbindungstyp (frei definierbar)
- Name
- Medium:
- Kupfer
- Glasfaser
- Koax
- Sonstiges
- Duplex:
- Half
- Full
- Custom
- Max. Geschwindigkeit (optional)
- Darstellung:
- Farbe
- Linientyp (durchgezogen, gestrichelt)
Beispiele:
- RJ45 Cat6
- LC-LC Singlemode
- BNC Token Ring
- Proprietär XYZ
---
## Verbindungen
### Verbindung
- Port A ↔ Port B
- Verbindungstyp
- VLAN(s)
- Modus
- Kommentar
Verbindungen werden:
- logisch gespeichert
- grafisch in allen relevanten SVGs dargestellt
---
## Grafische Ansichten
### Rack-Ansicht (SVG)
- Frontansicht mit HE-Raster
- Geräte:
- korrekt skaliert
- drag & drop
- Kabel:
- Linien zwischen Portpunkten
- Farbe gemäß Verbindungstyp
- Hover zeigt Details
---
### Netzwerkansicht (Graph)
- Geräte als Nodes
- Verbindungen als Edges
- Ports optional sichtbar
- Layout:
- automatisch (Force-Layout)
- manuell verschiebbar
- Filter:
- VLAN
- Verbindungstyp
- Standort
---
### Stockwerks- & Raumansicht
- SVG-Plan pro Stockwerk
- Netzwerkdosen:
- anklickbar
- Ports sichtbar
- Verbindungen zu Racks / Switches darstellbar
---
## Datenbank (konzeptionell)
### Zentrale Tabellen
- `locations`
- `buildings`
- `floors`
- `rooms`
- `floor_svgs`
- `network_outlets`
- `device_types`
- `device_type_ports`
- `devices`
- `device_ports`
- `modules`
- `module_ports`
- `connection_types`
- `connections`
- `vlans`
- `racks`
Custom-Eigenschaften werden teilweise als JSON gespeichert, um Erweiterungen
ohne Schema-Brüche zu ermöglichen.
---
## Erweiterbarkeit
Geplant, aber nicht initial:
- Mehrbenutzerfähigkeit
- Historisierung / Änderungsverlauf
- Rechte & Rollen
- Export (JSON, CSV, PDF)
- Theming / Design-System
- API
---
## Projektphasen
### Phase 1 Fundament
- Docker Compose
- Basisdatenbank
- CRUD für:
- Verbindungstypen
- Gerätetypen
- Standorte
### Phase 2 Grafik & Geräte
- Gerätetyp-Editor mit Port-Klick
- Rack-Ansicht
- Geräteplatzierung
### Phase 3 Verkabelung
- Verbindungslogik
- Module
- VLANs
- Visuelle Kabeldarstellung
### Phase 4 Gebäudepläne
- Stockwerks-SVG
- Räume
- Netzwerkdosen
- Verknüpfung mit Geräten
---
## Zielzustand
Ein zuverlässiges, verständliches und visuell präzises Werkzeug zur
Netzwerkdokumentation, das **nicht einschränkt**, sondern reale,
auch unkonventionelle Infrastrukturen korrekt abbilden kann.