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:
| Component | Beschrijving | Technologie |
|---|---|---|
| Frontend (Admin Portal) | Beheerinterface voor brandweermedewerkers | Vue 3 + Nuxt 3 |
| Frontend (User Dashboard) | Publieke viewer voor burgers | Vue 3 + Nuxt 3 |
| Backend API | REST API voor databeheer | Node.js + Express + TypeScript |
| Database | Geografische dataopslag | PostgreSQL + PostGIS |
Voor een volledig overzicht van het project, zie:
2. Benodigde Software
Zorg dat de volgende software geïnstalleerd is voordat u begint:
Verplicht
| Software | Versie | Download |
|---|---|---|
| Node.js | 18.0.0 of hoger | nodejs.org |
| pnpm | 8.0 of hoger | npm install -g pnpm |
| Git | 2.30+ | git-scm.com |
| Docker Desktop | Laatste versie | docker.com |
Aanbevolen
| Software | Doel |
|---|---|
| VS Code | Code editor met goede TypeScript support |
| DBeaver | Database management tool |
| Postman | API testing tool |
3. Project Openen & Lezen
3.1 Repository Klonen
git clone <repository-url>
cd wildfire-management-system3.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/ # Projectdocumentatie3.3 Belangrijke Bestanden
| Bestand | Locatie | Doel |
|---|---|---|
compose.yml | back-end/project/containers/ | Docker services configuratie |
init.sql | back-end/project/containers/db/ | Database schema |
.env | back-end/project/containers/ | Environment variabelen |
package.json | Diverse locaties | Dependencies per project |
Voor meer details over de frontend structuur, zie: Frontend Structuur
4. Project Bewerken
4.1 Dependencies Installeren
# Frontend dependencies
cd frontend-monorepo
pnpm install
# Backend dependencies
cd ../back-end/project/containers/backend
pnpm install4.2 Code Bewerken
Aanbevolen workflow:
Maak een nieuwe branch voor wijzigingen:
bashgit checkout -b feature/mijn-wijzigingOpen het project in VS Code:
bashcode .Maak wijzigingen en test lokaal (zie sectie 5)
Commit en push wijzigingen:
bashgit add . git commit -m "Beschrijving van wijziging" git push origin feature/mijn-wijziging
4.3 Broncode Locaties
| Onderdeel | Pad | Beschrijving |
|---|---|---|
| Admin Portal | frontend-monorepo/projects/adminportal/ | Vue/Nuxt admin interface |
| User Dashboard | frontend-monorepo/projects/userdashboard/ | Vue/Nuxt publieke viewer |
| Shared Components | frontend-monorepo/shared/ | Gedeelde Vue componenten |
| Backend API | back-end/project/containers/backend/src/ | Express API routes & services |
| Database Schema | back-end/project/containers/db/init.sql | PostgreSQL tabelstructuur |
Zie ook:
5. Project Starten (Development)
5.1 Snelstart met Docker (Aanbevolen)
De eenvoudigste manier om het volledige systeem te starten:
# Navigeer naar containers folder
cd back-end/project/containers
# Start alle services
docker compose up --buildNa het opstarten zijn de services beschikbaar op:
| Service | URL |
|---|---|
| Backend API | http://localhost:3000 |
| API Health Check | http://localhost:3000/health |
| Swagger Docs | http://localhost:3000/docs |
5.2 Handmatig Starten (Development Mode)
Terminal 1 - Database:
cd back-end/project/containers
docker compose up dbTerminal 2 - Backend:
cd back-end/project/containers/backend
pnpm run devTerminal 3 - Admin Portal:
cd frontend-monorepo
pnpm run dev -w adminportal
# Beschikbaar op http://localhost:3001Terminal 4 - User Dashboard:
cd frontend-monorepo
pnpm run dev -w userdashboard
# Beschikbaar op http://localhost:30025.3 Testaccounts
Na de eerste start zijn de volgende testaccounts beschikbaar:
| Rol | Wachtwoord | |
|---|---|---|
| Admin | admin@admin.com | Azerty123! |
| Member | test@test.com | Azerty123! |
6. Project Bouwen (Build)
6.1 Frontend Build
cd frontend-monorepo
# Bouw alle applicaties
pnpm run build
# Output locaties:
# - dist/adminportal/
# - dist/userdashboard/6.2 Backend Build
cd back-end/project/containers/backend
# Compileer TypeScript naar JavaScript
pnpm run build
# Output in dist/6.3 Docker Images Bouwen
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
# Bouw staging images
cd back-end/project/containers
docker compose -f compose.yml build
# Start in staging mode
NODE_ENV=staging docker compose up -d7.2 Production Deployment
Stap 1: Configureer production environment
# Kopieer en pas .env aan voor production
cp .env .env.production
# BELANGRIJK: Wijzig alle secrets en wachtwoorden!Stap 2: Bouw production images
docker build -t wildfire-backend:production -f Dockerfile.production .Stap 3: Deploy naar server
# Op de productieserver
docker compose -f docker-compose.production.yml up -dVoor 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/:
# ===========================================
# 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):
VITE_API_URL=
VITE_APP_TITLE=
VITE_LOG_LEVEL=User Dashboard (frontend-monorepo/projects/userdashboard/.env):
VITE_API_URL=
VITE_APP_TITLE=8.3 Belangrijke Opmerkingen
Beveiliging
- Commit NOOIT echte waarden naar versiebeheer
- Genereer een sterke
JWT_SECRETmet: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
cd back-end/project/containers
docker compose up -d db9.2 Database Backup Maken
# 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.gz9.3 Database Herstellen
# Vanuit backup bestand
cat backup.sql | docker exec -i db psql -U postgres gisdb9.4 Database Toegang
# Directe toegang tot PostgreSQL CLI
docker exec -it db psql -U postgres gisdb10. Veelvoorkomende Problemen
Database niet bereikbaar
Probleem: "connect ECONNREFUSED"
Oplossing:
# Controleer of database draait
docker compose ps db
# Herstart database
docker compose restart db
# Bekijk logs
docker compose logs dbCORS Errors
Probleem: Frontend kan niet verbinden met backend
Oplossing:
- Controleer
ALLOWED_ORIGINSin.env - Voeg frontend URL toe aan de lijst (komma-gescheiden)
Poorten Bezet
Probleem: "Port already in use"
Oplossing:
# Windows - vind proces op poort 3000
netstat -ano | findstr :3000
# Stop het proces of wijzig PORT in .env11. Handige Commando's
Docker
# 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 -vDevelopment
# Frontend linting
cd frontend-monorepo && pnpm lint
# Backend tests
cd back-end/project/containers/backend && pnpm test
# Type checking
pnpm run type-check12. Verdere Documentatie
Voor meer gedetailleerde informatie, raadpleeg:
Technische Documentatie
- Backend Setup - Gedetailleerde backend configuratie
- Backend API - Volledige API documentatie
- Frontend Setup - Frontend installatie
- Frontend Structuur - Codebase structuur
Deployment & Infrastructure
- Deployment Guide - Volledige deployment handleiding
- Infrastructure - Infrastructuur overzicht
Project Informatie
- Project Overview - Projectachtergrond
- Technisch Plan - Architectuur beslissingen
- Voor Opdrachtgever - Snelstartgids
Afspraken & Conventies
- Branching Strategie - Git workflow
- Definities - Terminologie
- MVP - Minimum Viable Product scope
13. Support & Contact
Bij vragen of problemen:
- Raadpleeg eerst deze documentatie
- Bekijk de Deployment Guide voor troubleshooting
- Controleer de API Documentatie voor endpoint details
- Neem contact op met het development team
Document versie: 1.0
Laatst bijgewerkt: 18 januari 2026
Status: Actief