diff --git a/.env.development b/.env.development index bb135866c..a6a81d484 100644 --- a/.env.development +++ b/.env.development @@ -25,4 +25,4 @@ NEXT_PUBLIC_USE_MOCKS=true NEXT_PUBLIC_BASE_PATH=/talas5 # Oder leer lassen für direkten Zugriff -> NEXT_PUBLIC_BASE_PATH= # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.277 +NEXT_PUBLIC_APP_VERSION=1.1.278 diff --git a/.env.production b/.env.production index 20a52e4a4..6b1494b69 100644 --- a/.env.production +++ b/.env.production @@ -26,4 +26,4 @@ NEXT_PUBLIC_BASE_PATH=/talas5 # Oder leer lassen für direkten Zugriff -> NEXT_PUBLIC_BASE_PATH= # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.277 \ No newline at end of file +NEXT_PUBLIC_APP_VERSION=1.1.278 \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index ae12a69bc..e7a7f1894 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,14 +1,87 @@ -# Entwickler-Dokumentation +# 🚀 NodeMap – Einstieg für Entwickler -Willkommen in der technischen Dokumentation von NodeMap. +Willkommen in der NodeMap-Welt – einer Offline-Kartenanwendung zur Verwaltung von POIs und +Gerätestatus für TALAS.web. -📂 Wichtige Themen: +--- -- Webservices: `api/webservices.md` -- Redux / Fetch-Logik: `redux/api/fromWebService.md` -- Konfigurationsschema: `env/env.local.schema.md` -- Deployment: `deployment.md` +## 📚 Kapitelübersicht -Diese Doku ist für Entwickler, die an diesem Projekt mitarbeiten oder übernehmen. +- [🚀 NodeMap – Einstieg für Entwickler](#-nodemap--einstieg-für-entwickler) + - [📚 Kapitelübersicht](#-kapitelübersicht) + - [1. Was ist NodeMap?](#1-was-ist-nodemap) + - [2. Lokale Entwicklung](#2-lokale-entwicklung) + - [3. Systemübersicht](#3-systemübersicht) + - [4. Datenflüsse \& API](#4-datenflüsse--api) + - [5. Tipps](#5-tipps) + - [6. Deployment](#6-deployment) + +--- + +## 1. Was ist NodeMap? + +NodeMap ist ein Offline-Kartensystem auf Basis von Leaflet, React & Next.js, das über ein iFrame in +TALAS eingebettet wird. + +📷 Beispielansicht: +![Kartenansicht](/docs/screenshots/overview1.png) + +➡️ [Mehr erfahren...](/docs/guide/project-structure.md) + +--- + +## 2. Lokale Entwicklung + +👉 [Setup-Anleitung](docs/guide/setup-dev.md) + +- `git clone …` +- `npm install` +- `npm run dev` +- `.env.local` konfigurieren + +👨‍💻 Wenn du das Projekt starten kannst → bist du bereit für Schritt 3! + +--- + +## 3. Systemübersicht + +🔁 Was lädt die Karte? + +- POIs, Linien, Geräte, Rechte +- Datenquellen: Webservices (Port 80), eigene API (Port 3000) + +🧠 Architektur-Doku: +➡️ [devices & Layerstruktur](docs/architecture/device-layer-connection-final.md) + +--- + +## 4. Datenflüsse & API + +📦 Die wichtigsten Schnittstellen: + +- [Webservices (TALAS)](docs/guide/webservices.md) +- [Datenbankzugriff (Next.js)](docs/services/database/README.md) +- [Redux Struktur](docs/guide/redux-zustand.md) + +--- + +## 5. Tipps + +- 🔍 Häufige Fehler: [FAQ & Troubleshooting](docs/guide/faq.md) +- 🔄 Version wird automatisch über Git erhöht +- 🔐 `.env.production` nie ins Git committen! + +--- + +## 6. Deployment + +📤 Anleitung: +➡️ [Deployment-Guide](docs/guide/deployment.md) + +- ZIP bauen +- Dienst starten oder `npm run start` +- Test via: `http:///talas5/...` + +--- diff --git a/docs/architecture.md b/docs/architecture.md index 2eaecc008..77041ac2a 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -72,14 +72,14 @@ sequenceDiagram ## 📁 Schlüsselfunktionen & Module -| Bereich | Datei/Modul | Aufgabe | -| ------------- | ----------------------------------------------- | ---------------------------------------- | -| Kartenlogik | `MapComponent.js` | Zentrale Initialisierung und Layer-Logik | -| Webservices | `services/webservice/` | Kommunikation mit TALAS V5 Webservice | -| Datenbank | `services/database/` | Zugriff auf lokale Next.js-API & DB | -| POIs | `AddPOIModal.js`, `PoiUpdateModal.js` | UI für POI-Erstellung & -Bearbeitung | -| Redux | `redux/slices/`, `redux/thunks/`, `redux/store` | Globaler State, API-Steuerung | -| Konfiguration | `.env.local`, `config.js`, dynamic URLs | IP, basePath, Ports | +| Bereich | Datei/Modul | Aufgabe | +| ------------- | --------------------------------------------------------------- | ---------------------------------------- | +| Kartenlogik | `MapComponent.js` | Zentrale Initialisierung und Layer-Logik | +| Webservices | `services/webservice/` | Kommunikation mit TALAS V5 Webservice | +| Datenbank | `services/database/` | Zugriff auf lokale Next.js-API & DB | +| POIs | `AddPOIModal.js`, `PoiUpdateModal.js` | UI für POI-Erstellung & -Bearbeitung | +| Redux | `redux/slices/`, `redux/thunks/`, `redux/store` | Globaler State, API-Steuerung | +| Konfiguration | `.env.development`,`.env.production`, `config.js`, dynamic URLs | IP, basePath, Ports | --- @@ -99,10 +99,7 @@ sequenceDiagram ## 📦 Versionierung & Builds -- Version ist in `appVersion.js` definiert → wird über `NEXT_PUBLIC_APP_VERSION` eingeblendet -- Build erfolgt via `npm run build`, Auslieferung über `.next/` -- Nicht benötigte Dateien wie `__tests__`, `docs/`, `scripts/` etc. werden nicht in den Build - aufgenommen +- Version wird mit Husky Bibliothek automatisch erhöhert in `scripts/bumpVersion.js` --- diff --git a/docs/guide/webservices.md b/docs/guide/webservices.md index 825b65d75..0be856ef9 100644 --- a/docs/guide/webservices.md +++ b/docs/guide/webservices.md @@ -15,15 +15,15 @@ http://localhost/talas5/ClientData/WebServiceMap.asmx ### Verfügbare Methoden (Auszug): -| Endpunkt | Zweck / Datenquelle | -| --------------------------- | ------------------------------------------ | -| `CablesStatic` | Liste aller Stränge | -| `GetIconsStatic` | Liste aller Icons | -| `GisLinesStatus` | Liste aller Status der Linien | -| `GisStationsMeasurements` | Liste aller Messungen der Geräte | -| `GisStationsStaticDistrict` | Liste aller Geraete einer bestimmten Karte | -| `GisStationsStatusDistrict` | Liste aller Statis der Geräte | -| `GisSystemStatic` | Liste aller angezeigten Systeme | +| Endpunkt | Zweck / Datenquelle | +| --------------------------- | ----------------------------------------- | +| `CablesStatic` | Liste aller Stränge | +| `GetIconsStatic` | Liste aller Icons | +| `GisLinesStatus` | Liste aller Status der Linien | +| `GisStationsMeasurements` | Liste aller Messungen der Geräte | +| `GisStationsStaticDistrict` | Liste aller Geräte einer bestimmten Karte | +| `GisStationsStatusDistrict` | Liste aller Statis der Geräte | +| `GisSystemStatic` | Liste aller angezeigten Systeme | Die Webservices liefern JSON und werden im Frontend über `services/*.js` abgefragt. Die Daten werden verarbeitet, zwischengespeichert und z. T. über Redux in der Karte dargestellt. diff --git a/docs/nssm-exe-installation.md b/docs/nssm-exe-installation.md index b03858905..3b39c73e8 100644 --- a/docs/nssm-exe-installation.md +++ b/docs/nssm-exe-installation.md @@ -1,6 +1,7 @@ ````markdown +- Sicherstellen, dass `nssm.exe` in `C:\inetpub\wwwroot\talas5\nodeMap\` vorhanden ist - Als Administrator Eingabeaufforderung oder PowerShell öffnen - Navigiere zu dem NodeMap Projekt Verzeichnis: @@ -9,17 +10,18 @@ ``` ```` -- Befehl zum Erstellen eines Dienstes: - Führen Sie den folgenden Befehl aus, um einen neuen Dienst zu erstellen: +- Befehl zum Erstellen eines Dienstes: Führen Sie den folgenden Befehl aus, um einen neuen Dienst zu + erstellen: ```shell - nssm.exe install NodeMapService + .\nssm.exe install NodeMapService ``` Nachdem Sie diesen Befehl ausgeführt haben, öffnet sich ein NSSM-Dialogfenster. - **Dienstkonfiguration:** - In dem geöffneten NSSM-Dialogfenster müssen Sie einige Parameter angeben: + ![NSSM service editor](/docs/screenshots/nssm-service-editor.png) + + **Dienstkonfiguration:** In dem geöffneten NSSM-Dialogfenster müssen Sie einige Parameter angeben: - **Path:** Der Pfad zur ausführbaren Datei, die der Dienst ausführen soll. ```shell @@ -31,10 +33,13 @@ ``` - **Arguments:** kann leer gelassen werden. -- Dienst starten: - Sobald der Dienst erstellt wurde, können Sie ihn starten. - Das können Sie entweder über die Eingabeaufforderung oder über die Diensteverwaltung von Windows tun. +- Dienst starten: Sobald der Dienst erstellt wurde, können Sie ihn starten. Das können Sie entweder + über die Eingabeaufforderung oder über die Diensteverwaltung von Windows tun. + + ![nodeMap Dienst](/docs/screenshots/Dienst-beenden.png) + Um den Dienst über die Eingabeaufforderung zu starten, verwenden Sie den folgenden Befehl: + ```shell nssm.exe start DienstName ``` diff --git a/docs/screenshots/nssm-service-editor.png b/docs/screenshots/nssm-service-editor.png new file mode 100644 index 000000000..c92f7717b Binary files /dev/null and b/docs/screenshots/nssm-service-editor.png differ diff --git a/package-lock.json b/package-lock.json index f959d4531..53ca7036e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nodemap", - "version": "1.1.277", + "version": "1.1.278", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nodemap", - "version": "1.1.277", + "version": "1.1.278", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", diff --git a/package.json b/package.json index 8e1383175..063533ea2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nodemap", - "version": "1.1.277", + "version": "1.1.278", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0",