docs
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -24,9 +24,10 @@ trace
|
||||
|
||||
# Ignore specific Next.js build files
|
||||
pages-manifest.json
|
||||
nodeMap für 13 am 16.07.2024.zip
|
||||
Lastenheft.js
|
||||
# Dendron-Verzeichnis ignorieren
|
||||
/draw.io/
|
||||
|
||||
# Ignore docs.zip
|
||||
docs.zip
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
// /config/appVersion
|
||||
export const APP_VERSION = "1.1.189";
|
||||
export const APP_VERSION = "1.1.190";
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- /docs/README.md -->
|
||||
|
||||
# Entwickler-Dokumentation
|
||||
|
||||
Willkommen in der technischen Dokumentation von NodeMap.
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
<!-- /docs/architecture.md -->
|
||||
|
||||
# 🧠 Architekturübersicht – NodeMap
|
||||
|
||||
Dieses Dokument beschreibt die technische Gesamtarchitektur des Projekts **NodeMap**, einer kartenbasierten Webanwendung zur Anzeige, Bearbeitung und Verwaltung von GIS-Daten, POIs und Gerätestatus.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Technologie-Stack
|
||||
|
||||
| Komponente | Beschreibung |
|
||||
| --------------------- | ---------------------------------------------------------------------- |
|
||||
| **Frontend** | React 18 + Next.js (App Router) |
|
||||
| **State-Management** | Redux Toolkit mit zentralem Store, Thunks & Slices |
|
||||
| **UI** | Tailwind CSS + Leaflet + React-Icons |
|
||||
| **Backend-Anbindung** | Webservices via `WebServiceMap.asmx` (IIS) + lokale Next.js API für DB |
|
||||
| **Datenbank** | MySQL (Produktiv & Entwicklung, z. T. via Docker) |
|
||||
| **Deployment** | Windows Server (IIS), optional per `nssm` als Dienst |
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Architekturüberblick
|
||||
|
||||
```
|
||||
+------------------+ +------------------+ +------------------+
|
||||
| Leaflet Map | <---> | Redux Store | <---> | Webservices |
|
||||
| (Interaktivität) | | (Status & Data) | | (IIS, .asmx) |
|
||||
+------------------+ +------------------+ +------------------+
|
||||
^
|
||||
|
|
||||
v
|
||||
+------------------+ +------------------+ +-------------------+
|
||||
| POI-Komponenten | <---> | Redux Slices | <---> | Next.js API-Routen|
|
||||
| (Add/Edit) | | (z. B. poiSlice) | | (Datenbank) |
|
||||
+------------------+ +------------------+ +-------------------+
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Datenfluss (Beispiel: POI anzeigen)
|
||||
|
||||
1. Leaflet-Karte lädt bei `MapComponent` Mounting
|
||||
2. Redux-Thunk `fetchPoiMarkersThunk` wird ausgelöst
|
||||
3. Thunk ruft `fetchPoiDataService.js` (DB) oder Webservice (IIS) auf
|
||||
4. Ergebnisse werden im Slice `readPoiMarkersStoreSlice` gespeichert
|
||||
5. Komponenten lesen POI-Daten über `useSelector(...)` aus dem Store
|
||||
6. POIs werden als Marker in Leaflet gesetzt
|
||||
|
||||
---
|
||||
|
||||
## 📁 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 |
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Besonderheiten
|
||||
|
||||
- **Konfigurierbarer basePath:**
|
||||
Pfad wie `/talas5` ist optional und kann per `NEXT_PUBLIC_BASE_PATH` in `.env.local` gesetzt werden.
|
||||
- **Rechteabhängige UI:**
|
||||
Funktionen (z. B. POI bearbeiten) basieren auf Benutzerrechten (`IdRight`) vom Server.
|
||||
- **Zentrale Komponentensteuerung:**
|
||||
Komponenten wie `MapLayersControlPanel` oder `CoordinatePopup` kontrollieren Layer & Interaktion.
|
||||
- **Kontextmenü-Logik:**
|
||||
Marker & Polylinien besitzen eigene Kontextmenüs – dynamisch zusammengesetzt und verwaltet.
|
||||
|
||||
---
|
||||
|
||||
## 📦 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
|
||||
|
||||
---
|
||||
|
||||
## 📚 Weiterführende Dokumentation
|
||||
|
||||
- [`build-and-deploy.md`](./build-and-deploy.md)
|
||||
- [`env.local.schema.md`](./env.local.schema.md)
|
||||
- [`redux/slices/`](./redux/slices/)
|
||||
- [`services/webservice/`](./services/webservice/)
|
||||
|
||||
46
docs/build-and-deploy.md
Normal file
46
docs/build-and-deploy.md
Normal file
@@ -0,0 +1,46 @@
|
||||
<!-- /docs/build-amddeploy.md -->
|
||||
|
||||
# 🛠 Deployment & Build-Verhalten (Next.js)
|
||||
|
||||
Diese Datei beschreibt, welche Projektdateien in den Build (`.next/`) aufgenommen werden und welche nicht.
|
||||
Ziel: Klarheit für Onboarding, Deployment-ZIP-Erstellung oder CI/CD.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Wird beim `npm run build` in `.next/` gespeichert
|
||||
|
||||
| Inhalt | Beschreibung |
|
||||
| ---------------------- | -------------------------------------------------- |
|
||||
| Kompilierte Seiten | Alle unter `/pages/` |
|
||||
| API-Routen | Alles aus `pages/api/` |
|
||||
| Assets aus `public/` | Werden im Build nicht verändert, aber ausgeliefert |
|
||||
| CSS-Dateien (Tailwind) | Werden gebundelt und minimiert |
|
||||
| `.env.local` | Wird eingelesen, aber nicht exportiert |
|
||||
| JS/TS-Quellcode | Wird zu Client- und Server-Bundles kompiliert |
|
||||
|
||||
---
|
||||
|
||||
## 🧹 Wird **nicht** in `.next/` aufgenommen
|
||||
|
||||
| Ordner/Datei | Zweck / Grund |
|
||||
| --------------------------- | -------------------------------------------- |
|
||||
| `__tests__`, `__mocks__` | Nur lokal für Tests, nicht im Build |
|
||||
| `cypress/` | End-to-End-Tests, nur für lokale Entwicklung |
|
||||
| `scripts/` | Hilfsskripte, nicht für Runtime relevant |
|
||||
| `docs/` | Dokumentation, nur für Entwickler |
|
||||
| `README.md`, `CHANGELOG.md` | Doku – nicht erforderlich zur Laufzeit |
|
||||
| `Jenkinsfile`, `.github/` | CI/CD – wird vom Buildsystem verwendet |
|
||||
|
||||
---
|
||||
|
||||
## 📂 Empfohlene Struktur für Deployment (z. B. ZIP-Upload auf Server)
|
||||
|
||||
Nur folgende Dateien/Ordner übertragen:
|
||||
|
||||
```bash
|
||||
.next/
|
||||
public/
|
||||
package.json
|
||||
package-lock.json
|
||||
.env.local
|
||||
```
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- /docs/checklist.md -->
|
||||
|
||||
# 🧾 Projektpflege-Checkliste
|
||||
|
||||
Diese Datei dient als persönliche Gedächtnisstütze bei der Entwicklung und Pflege des Projekts.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- /docs/env.local -->
|
||||
|
||||
### /docs/env.local.schema.md
|
||||
|
||||
- `NEXT_PUBLIC_API_HOST` → Webservice-DNS oder IP
|
||||
@@ -1,16 +1,21 @@
|
||||
```markdown
|
||||
- Als Administrator Eingabeaufforderung oder PowerShell öffnen
|
||||
<!-- /docs/nssm-exe-installation.md -->
|
||||
|
||||
````markdown
|
||||
- Als Administrator Eingabeaufforderung oder PowerShell öffnen
|
||||
|
||||
- Navigiere zu dem NodeMap Projekt Verzeichnis:
|
||||
```shell
|
||||
C:\Users\Administrator>cd C:\inetpub\wwwroot\talas5\nodeMap
|
||||
```
|
||||
````
|
||||
|
||||
- Befehl zum Erstellen eines Dienstes:
|
||||
Führen Sie den folgenden Befehl aus, um einen neuen Dienst zu erstellen:
|
||||
|
||||
```shell
|
||||
nssm.exe install NodeMapService
|
||||
```
|
||||
|
||||
Nachdem Sie diesen Befehl ausgeführt haben, öffnet sich ein NSSM-Dialogfenster.
|
||||
|
||||
**Dienstkonfiguration:**
|
||||
@@ -25,7 +30,7 @@
|
||||
C:\inetpub\wwwroot\talas5\nodeMap
|
||||
```
|
||||
- **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.
|
||||
@@ -45,4 +50,7 @@
|
||||
nssm.exe remove NodeMapService confirm
|
||||
```
|
||||
dauert bis 1 Minute
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user