Skip to content

Overdrachtsdocument - WildFire Management System

Dit document is bedoeld voor de opdrachtgever om het WildFire Management System (WMS) zelfstandig te kunnen openen, bewerken, bouwen en uitvoeren. Het bevat alle praktische informatie die nodig is om het project succesvol over te nemen.


Inhoudsopgave


1. Projectoverzicht

Het WildFire Management System is een moderne webapplicatie voor het beheren en visualiseren van natuurbranden in België. Het systeem bestaat uit drie hoofdcomponenten:

ComponentBeschrijvingTechnologie
Frontend (Admin Portal)Beheerinterface voor brandweermedewerkersVue 3 + Nuxt 3
Frontend (User Dashboard)Publieke viewer voor burgersVue 3 + Nuxt 3
Backend APIREST API voor databeheerNode.js + Express + TypeScript
DatabaseGeografische dataopslagPostgreSQL + PostGIS

Voor een volledig overzicht van het project, zie:


2. Benodigde Software

Zorg dat de volgende software geïnstalleerd is voordat u begint:

Verplicht

SoftwareVersieDownload
Node.js18.0.0 of hogernodejs.org
pnpm8.0 of hogernpm install -g pnpm
Git2.30+git-scm.com
Docker DesktopLaatste versiedocker.com

Aanbevolen

SoftwareDoel
VS CodeCode editor met goede TypeScript support
DBeaverDatabase management tool
PostmanAPI testing tool

3. Project Openen & Lezen

3.1 Repository Klonen

bash
git clone <repository-url>
cd wildfire-management-system

3.2 Projectstructuur

Na het klonen vindt u de volgende mappenstructuur:

wildfire-management-system/
├── frontend-monorepo/           # Frontend applicaties
│   ├── projects/
│   │   ├── adminportal/        # Admin interface
│   │   └── userdashboard/      # Publieke viewer
│   └── shared/                 # Gedeelde componenten
├── back-end/                   # Backend API
│   └── project/
│       └── containers/
│           ├── backend/        # API broncode
│           ├── db/             # Database configuratie
│           └── compose.yml     # Docker configuratie
└── documentation/              # Projectdocumentatie

3.3 Belangrijke Bestanden

BestandLocatieDoel
compose.ymlback-end/project/containers/Docker services configuratie
init.sqlback-end/project/containers/db/Database schema
.envback-end/project/containers/Environment variabelen
package.jsonDiverse locatiesDependencies per project

Voor meer details over de frontend structuur, zie: Frontend Structuur


4. Project Bewerken

4.1 Dependencies Installeren

bash
# Frontend dependencies
cd frontend-monorepo
pnpm install

# Backend dependencies
cd ../back-end/project/containers/backend
pnpm install

4.2 Code Bewerken

Aanbevolen workflow:

  1. Maak een nieuwe branch voor wijzigingen:

    bash
    git checkout -b feature/mijn-wijziging
  2. Open het project in VS Code:

    bash
    code .
  3. Maak wijzigingen en test lokaal (zie sectie 5)

  4. Commit en push wijzigingen:

    bash
    git add .
    git commit -m "Beschrijving van wijziging"
    git push origin feature/mijn-wijziging

4.3 Broncode Locaties

OnderdeelPadBeschrijving
Admin Portalfrontend-monorepo/projects/adminportal/Vue/Nuxt admin interface
User Dashboardfrontend-monorepo/projects/userdashboard/Vue/Nuxt publieke viewer
Shared Componentsfrontend-monorepo/shared/Gedeelde Vue componenten
Backend APIback-end/project/containers/backend/src/Express API routes & services
Database Schemaback-end/project/containers/db/init.sqlPostgreSQL tabelstructuur

Zie ook:


5. Project Starten (Development)

5.1 Snelstart met Docker (Aanbevolen)

De eenvoudigste manier om het volledige systeem te starten:

bash
# Navigeer naar containers folder
cd back-end/project/containers

# Start alle services
docker compose up --build

Na het opstarten zijn de services beschikbaar op:

ServiceURL
Backend APIhttp://localhost:3000
API Health Checkhttp://localhost:3000/health
Swagger Docshttp://localhost:3000/docs

5.2 Handmatig Starten (Development Mode)

Terminal 1 - Database:

bash
cd back-end/project/containers
docker compose up db

Terminal 2 - Backend:

bash
cd back-end/project/containers/backend
pnpm run dev

Terminal 3 - Admin Portal:

bash
cd frontend-monorepo
pnpm run dev -w adminportal
# Beschikbaar op http://localhost:3001

Terminal 4 - User Dashboard:

bash
cd frontend-monorepo
pnpm run dev -w userdashboard
# Beschikbaar op http://localhost:3002

5.3 Testaccounts

Na de eerste start zijn de volgende testaccounts beschikbaar:

RolEmailWachtwoord
Adminadmin@admin.comAzerty123!
Membertest@test.comAzerty123!

6. Project Bouwen (Build)

6.1 Frontend Build

bash
cd frontend-monorepo

# Bouw alle applicaties
pnpm run build

# Output locaties:
# - dist/adminportal/
# - dist/userdashboard/

6.2 Backend Build

bash
cd back-end/project/containers/backend

# Compileer TypeScript naar JavaScript
pnpm run build

# Output in dist/

6.3 Docker Images Bouwen

bash
cd back-end/project/containers/backend

# Development image
docker build -t wildfire-backend:dev -f Dockerfile.dev .

# Staging image
docker build -t wildfire-backend:staging -f Dockerfile.staging .

# Production image
docker build -t wildfire-backend:production -f Dockerfile.production .

7. Staging & Production Deployment

7.1 Staging Omgeving

bash
# Bouw staging images
cd back-end/project/containers
docker compose -f compose.yml build

# Start in staging mode
NODE_ENV=staging docker compose up -d

7.2 Production Deployment

Stap 1: Configureer production environment

bash
# Kopieer en pas .env aan voor production
cp .env .env.production
# BELANGRIJK: Wijzig alle secrets en wachtwoorden!

Stap 2: Bouw production images

bash
docker build -t wildfire-backend:production -f Dockerfile.production .

Stap 3: Deploy naar server

bash
# Op de productieserver
docker compose -f docker-compose.production.yml up -d

Voor uitgebreide deployment instructies, zie: Deployment Guide


8. Environment Variabelen (.env)

Hieronder vindt u alle environment variabelen die geconfigureerd moeten worden. Let op: dit zijn alleen de variabele namen, niet de waarden. Vul uw eigen veilige waarden in!

8.1 Backend Environment Variables

Maak een .env bestand in back-end/project/containers/:

bash
# ===========================================
# DATABASE CONFIGURATIE
# ===========================================
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=

DB_HOST=
DB_USER=
DB_PASSWORD=
DB_NAME=
DB_PORT=

# ===========================================
# SECURITY & AUTHENTICATIE
# ===========================================
JWT_SECRET=
JWT_EXPIRES_IN=
REFRESH_TOKEN_EXPIRES_DAYS=
BCRYPT_COST=

# ===========================================
# APPLICATIE INSTELLINGEN
# ===========================================
NODE_ENV=
RUN_SECURITY_AUDIT_ON_STARTUP=
IMPORT_MODE=
CENTROID_NOISE=

# ===========================================
# CORS & FRONTEND URLs
# ===========================================
FRONTEND_URL=
ALLOWED_ORIGINS=

# ===========================================
# EMAIL CONFIGURATIE (SMTP)
# ===========================================
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
SMTP_FROM=

8.2 Frontend Environment Variables

Admin Portal (frontend-monorepo/projects/adminportal/.env):

bash
VITE_API_URL=
VITE_APP_TITLE=
VITE_LOG_LEVEL=

User Dashboard (frontend-monorepo/projects/userdashboard/.env):

bash
VITE_API_URL=
VITE_APP_TITLE=

8.3 Belangrijke Opmerkingen

Beveiliging

  • Commit NOOIT echte waarden naar versiebeheer
  • Genereer een sterke JWT_SECRET met: openssl rand -hex 32
  • Gebruik sterke wachtwoorden (minimaal 12 karakters)
  • Gebruik verschillende waarden voor development, staging en production

9. Database Beheer

9.1 Database Starten

bash
cd back-end/project/containers
docker compose up -d db

9.2 Database Backup Maken

bash
# Handmatige backup
docker exec db pg_dump -U postgres gisdb > backup_$(date +%Y%m%d).sql

# Gecomprimeerde backup
docker exec db pg_dump -U postgres gisdb | gzip > backup_$(date +%Y%m%d).sql.gz

9.3 Database Herstellen

bash
# Vanuit backup bestand
cat backup.sql | docker exec -i db psql -U postgres gisdb

9.4 Database Toegang

bash
# Directe toegang tot PostgreSQL CLI
docker exec -it db psql -U postgres gisdb

10. Veelvoorkomende Problemen

Database niet bereikbaar

Probleem: "connect ECONNREFUSED"

Oplossing:

bash
# Controleer of database draait
docker compose ps db

# Herstart database
docker compose restart db

# Bekijk logs
docker compose logs db

CORS Errors

Probleem: Frontend kan niet verbinden met backend

Oplossing:

  • Controleer ALLOWED_ORIGINS in .env
  • Voeg frontend URL toe aan de lijst (komma-gescheiden)

Poorten Bezet

Probleem: "Port already in use"

Oplossing:

bash
# Windows - vind proces op poort 3000
netstat -ano | findstr :3000

# Stop het proces of wijzig PORT in .env

11. Handige Commando's

Docker

bash
# Start alle services
docker compose up -d

# Stop alle services
docker compose down

# Bekijk logs
docker compose logs -f

# Herstart specifieke service
docker compose restart backend

# Verwijder volumes (clean start)
docker compose down -v

Development

bash
# Frontend linting
cd frontend-monorepo && pnpm lint

# Backend tests
cd back-end/project/containers/backend && pnpm test

# Type checking
pnpm run type-check

12. Verdere Documentatie

Voor meer gedetailleerde informatie, raadpleeg:

Technische Documentatie

Deployment & Infrastructure

Project Informatie

Afspraken & Conventies


13. Support & Contact

Bij vragen of problemen:

  1. Raadpleeg eerst deze documentatie
  2. Bekijk de Deployment Guide voor troubleshooting
  3. Controleer de API Documentatie voor endpoint details
  4. Neem contact op met het development team

Document versie: 1.0
Laatst bijgewerkt: 18 januari 2026
Status: Actief

Fire Management System Documentation