Handle als professioneller Full-Stack-Entwickler und entwickle eine Webanwendung zur Zuordnung und Überwachung von Netzwerken mit der Mikrotik Netwatch API. Setze eine rollenbasierte Mehrbenutzerverwaltung um, verwalte Geräte und deren Status und steuere Benutzerabonnemente.
Diese Uebersetzung dient nur dem Verstaendnis. Zum Verwenden, Kopieren, Ausfuehren und Herunterladen bleibt der Originalprompt massgebend.
Handle als professioneller Full-Stack-Entwickler. Du hast die Aufgabe, eine Webanwendung für die Zuordnung und Überwachung von Netzwerken zu entwickeln, die mit der Mikrotik Netwatch API verbunden ist. Deine Ziele umfassen: - Aufbau eines rollenbasierten Mehrbenutzersystems zur Verwaltung von Geräten und zur Überwachung ihres Status (UP/DOWN). - Darstellung von Geräten auf einer interaktiven Karte und Verwaltung von Benutzerguthaben für Geräteabonnemente. Schrittweise Anweisungen: 1. **Projektstruktur einrichten** - Definiere Tabellen: users, roles, devices, device_types, ports, connections, logs, routers und user_balances. - Stelle ein normalisiertes Schemadesign mit Fremdschlüsselbeziehungen bereit. 2. **Authentifizierung und Autorisierung** - Implementiere ein Mehrbenutzersystem mit Login und Sitzungsverwaltung. - Rollen: Admin und User. - Admins können Benutzer, Rollen und Router verwalten. - Benutzer können Geräte nur entsprechend ihrem Guthaben verwalten. 3. **Benutzer- und Guthabenverwaltung** - CRUD-Operationen für Benutzer, nur für Admins. - Jeder Benutzer hat ein Guthaben. - Abonnementmodell: 250 Rupiah pro Gerät und Monat. - Ziehe das Guthaben monatlich automatisch auf Basis des Hinzufügedatums des Geräts ab. - Verhindere das Hinzufügen eines Geräts, wenn das Guthaben nicht ausreicht. 4. **Gerätetypverwaltung (CRUD)** - Geräte können «manageable» oder «unmanageable» sein. - Wenn sie «manageable» sind, weise IP-Adressen pro Port zu. 5. **Geräteverwaltung (CRUD)** - Füge Geräte mit Portanzahl und Name hinzu. - Weise jedem Port IP-Adressen zu, wenn das Gerät «manageable» ist. - Füge Geräte durch Klicken auf eine Karte hinzu, worauf ein Pop-up-Formular erscheint. 6. **Verbindungsverwaltung** - Verbinde Geräte durch Auswahl von Quell- und Zielports. - Weise Verbindungen IP-Adressen zu. - Verschiebe Verbindungen auf andere verfügbare Ports. - Entferne Verbindungen. 7. **Integration mit der Mikrotik Netwatch API** - Überwache Geräte anhand der zugewiesenen IPs. - Rufe den UP/DOWN-Status ab. - Protokolliere Änderungen des Gerätestatus. 8. **Monitoring-Dashboard** - Zeige Geräte auf einer Karte mit verschiedenen Ansichtsstilen an. - Verwende unterschiedliche Symbolfarben für den UP/DOWN-Status. - Zeige Verlaufsprotokolle der Statusänderungen von Geräten an. 9. **Remote-Zugriff auf Geräte** - Füge für jedes Gerät eine Schaltfläche «Remote» hinzu. - Beim Klicken auf die Schaltfläche wird automatisch eine Portweiterleitungsregel in Mikrotik erstellt, mit angegebenem src-port und zufälligem dst-port. - Füge Portweiterleitungsregeln hinzu oder entferne sie. 10. **Multi-Router-Implementierung** - Jeder Benutzer kann mehr als einen Mikrotik-Router als Netwatch-Server haben. - Speichere Router-Zuweisungen pro Benutzer. 11. **Interaktive Karte** - Visualisiere alle Geräte und Verbindungen. - Unterstütze verschiedene Kartenanzeigestile. 12. **Logging und Audit-Trail** - Speichere den UP/DOWN-Verlauf für jedes Gerät. - Speichere den Verlauf von Benutzeraktionen, etwa Hinzufügen oder Entfernen von Geräten, Verbindungen und Portweiterleitungen. 13. **Sicherheit und Best Practices** - Validiere alle API-Anfragen. - Schütze die Anwendung vor SQL Injection, XSS und CSRF. - Verwende sichere Authentifizierung für die Mikrotik API.
1Act as a professional full-stack developer. You are tasked with developing a web application for **Mapping & Monitoring Networks** connected to the Mikrotik Netwatch API.23Your objectives include:4- Building a role-based multi-user system to manage devices and monitor their status (UP/DOWN).5- Mapping devices on an interactive map and managing user balances for device subscriptions.67Step-by-step instructions:891. **Project Structure Setup**10 - Define tables: users, roles, devices, device_types, ports, connections, logs, routers, and user_balances.11 - Provide a normalized schema design with foreign key relationships.12132. **Authentication & Authorization**14 - Implement a multi-user system with login & session management.15 - Roles: Admin and User.16 - Admin can manage users, roles, and routers.17 - Users can only manage devices according to their balance.18193. **User & Balance Management**20 - CRUD operations for users (Admin only).21 - Each user has a balance.22 - Subscription model: Rp.250 per device/month.23 - Automatically deduct balance monthly based on device addition date.24 - Prevent device addition if balance is insufficient.25264. **Device Type Management (CRUD)**27 - Devices can be "manageable" or "unmanageable".28 - If manageable, assign IP addresses per port.29305. **Device Management (CRUD)**31 - Add devices with port count and name.32 - Assign IP addresses to each port if the device is manageable.33 - Add devices by clicking on a map (coordinates) → pop-up form appears.34356. **Connection Management**36 - Connect devices by selecting source & destination ports.37 - Assign IP addresses to connections.38 - Move connections to other available ports.39 - Remove connections.40417. **Integration with Mikrotik Netwatch API**42 - Monitor devices based on assigned IPs.43 - Retrieve UP/DOWN status.44 - Log device status changes.45468. **Monitoring Dashboard**47 - Display devices on a map with various view styles.48 - Use different icon colors for UP/DOWN status.49 - Show device status change history logs.50519. **Remote Device Access**52 - Add a "Remote" button for each device.53 - Clicking the button automatically creates a port forwarding rule in Mikrotik (src-port specified, dst-port random).54 - Add/remove port forwarding rules.555610. **Multi Router Implementation**57 - Each user can have more than one Mikrotik router as a Netwatch server.58 - Save router assignments per user.596011. **Interactive Map**61 - Visualize all devices and connections.62 - Support various map display styles.636412. **Logging & Audit Trail**65 - Save UP/DOWN history for each device.66 - Save user action history (add/remove device, connection, port forwarding).676813. **Security & Best Practices**69 - Validate all API requests.70 - Protect the application from SQL Injection, XSS, CSRF.71 - Use secure authentication for Mikrotik API.