This commit is contained in:
ISA
2025-06-03 06:53:51 +02:00
parent 34ca809ede
commit f133add7fb
3 changed files with 733 additions and 552 deletions

115
README.md
View File

@@ -41,12 +41,125 @@ npm run dev
## 🔄 Wie funktioniert das System?
1. TALAS ruft die App mit URL auf: `http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`
1. TALAS ruft die App mit URL auf: `http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`
2. Die App liest `m` und `u` aus der URL
3. `MapComponent` lädt POIs, Linien, Rechte entsprechend
4. API-Endpunkte kommunizieren lokal mit Datenbankserver (MySQL)
5. Interaktive Bearbeitung (POI hinzufügen, verschieben, löschen) ist möglich
---
## 📦 Drittanbieter-Abhängigkeiten
| Paket / Bibliothek | Version | Zweck / Verwendung | Speicherort / Modul |
| ------------------------------- | ----------------- | ---------------------------------------------- | ------------------------------------- |
| `react` | ^18.3.1 | UI-Framework | `/components`, `/pages` |
| `next` | ^14.2.5 | SSR, Routing, Build, API-Routen | Root |
| `redux`, `@reduxjs/toolkit` | ^5.0.1, ^2.5.1 | Zustandverwaltung (statt Recoil) | `/redux/`, `store.js` |
| `leaflet` | ^1.9.4 | Interaktive Kartenvisualisierung | `MapComponent.js`, Marker, Polylinien |
| `leaflet-contextmenu` | ^1.4.0 | Kontextmenüs in Leaflet | Kontextmenü auf Karte |
| `leaflet-control-geocoder` | ^3.1.0 | Geokoordinaten / Adresssuche | optionales Widget |
| `tailwindcss` | ^3.4.7 | CSS-Utility-Framework | `styles/`, UI-Komponenten |
| `react-toastify` | ^10.0.5 | Benachrichtigungen im UI | z.B. bei Fehlern |
| `overlapping-marker-spiderfier` | ^0.2.7 | Marker-Darstellung bei Überlappung | `useCheckOverlappingMarkers` |
| `mysql`, `mysql2` | ^2.18.1 / ^3.11.0 | MySQL-Kommunikation in API | `pages/api/`, `services/database/` |
| `ws` | ^8.18.0 | WebSocket-Schnittstelle für Live-Daten | optional |
| `http-proxy-middleware` | ^3.0.0 | API-Proxying für dev ↔ prod | `pages/api/[...path].js` |
| `nssm.exe` | 2.24 | Windows-Service zur Ausführung von `npm start` | für Serverbetrieb |
| `WebService TALAS` | intern | Datenquelle für GIS- und Geräteinformationen | `services/webservice/`, IIS-Aufruf |
→ vollständige Liste: siehe `package.json`
---
## 🧰 Erstinstallation auf Server (z.B. Windows IIS)
### Voraussetzungen
- Windows Server mit IIS
- Node.js & npm installiert (z.B. v1820)
- MySQL (lokal oder erreichbar)
- Port 3000 freigegeben (Firewall)
- IIS-Datei `mapTypC.aspx` vorhanden
### Schritt-für-Schritt Anleitung
1. **Projekt lokal klonen und bauen:**
```bash
git clone <repo-url>
cd nodeMap
npm install
npm run build
```
2. **ZIP-Paket vorbereiten (lokal):**
- `.next/`, `public/`, `node_modules/`
- `.env.local`, `package.json`
- optional: `nssm.exe`, `StartNodeApp.bat`, `Start-Dev.ps1`
3. **Auf Server kopieren nach:**
```
C:\inetpub\wwwroot alas5
odeMap
```
4. **Kartenmaterial hinzufügen (optional):**
```
C:\inetpub\wwwroot alas5\TileMap
```
5. **Konfiguration `.env.local` anpassen:**
```env
NEXT_PUBLIC_BASE_PATH=/talas5
NEXT_PUBLIC_APP_VERSION=1.1.216
NEXT_PUBLIC_API_PORT_MODE=prod
```
6. **Optional: Dienst registrieren**
- Mit `nssm.exe` Windows-Dienst „nodeMapService“ erstellen
- Ziel: `StartNodeApp.bat`
7. **Starten:**
```bash
npm start
```
oder Dienst starten
8. **Im Browser testen:**
```
http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484
```
---
## 🔁 Update-Richtlinien
| Art | Voraussetzung | Ersetzte Dateien | Bemerkung |
| ------------------ | ---------------------------------- | ---------------------------------- | ---------------------------- |
| **Kleines Update** | gleiche Hauptversion (z.B. 1.1.x) | `.next/`, `.env.local` | `node_modules` nicht nötig |
| **Großes Update** | neue Hauptversion (z.B. 1.2.x) | alle Dateien (wie Neuinstallation) | Dienst ggf. neu registrieren |
### Empfohlener Ablauf für kleines Update:
1. `.next/` und `.env.local` vom neuen Build kopieren
2. Dienst oder `npm start` neu starten
3. Im Browser testen: `?m=...&u=...`
### Kompatibilitätsregel:
- Solange `1.1.x` bleibt, ist einfaches Update möglich
- Ab `1.2.0` vollständige Neuinstallation empfohlen (z.B. bei neuen Verzeichnisstrukturen)
---
### 🔧 Konfigurierbarer Basispfad (basePath)
Standardmäßig wird angenommen, dass die Anwendung unter einem Unterverzeichnis wie `/talas5` läuft.