Intelligent Carrier Matching
- Lokation (0-30p): Serviceområde og rutekorridor
- Kapacitet (0-25p): Ample/god/begrænset
- Service (0-20p): Express, tung, hazmat, køle
- Rating (0-15p): Stjerner, erfaring, verificering
- Pris (0-10p): Budgetudnyttelse
- Min. 40 point cutoff · 15 parallelle scoringer
Carrier Marketplace PRO+
- 5 visninger: Discover, Map, Analytics, Compare, Saved
- Favoritter, proximity matching, gemte søgninger
- PostgreSQL FTS med relevansscore
- Carrier profil: specialisering, forsikring, priskonfig
- Quote request til flere vognmænd
Marketplace Intelligence ADMIN
Temperatur
bids/job × fill_rate / time_to_first_bid
Match Efficiency
Final matches / candidates. 48-cyklus rolling.
Carrier Liquidity
Aktive vognmænd / aktive jobs. Healthy ≥ 2.0
Utilization
Vognmænd med matches / aktive. Target > 50%
Korridorprofit
Rute-specifikke margins og volumener
Budhastighed
Tid fra job til første bud
Demand Heatmap
Geografisk efterspørgsel, cellebaseret
Win-Rate
Accepterede / afgivne bud pr. vognmand
Flådestyring
- Reg.nr., VIN, fabrikat, model, Euro-klasse
- Kapacitet: vægt, volumen, dimensioner, aksler
- ADR farligt gods, compliance-udløb
- 5 statuser: Aktiv, Inaktiv, Vedligehold, Reparation, Solgt
Real-Time GPS & Geofencing
- Live position via SignalR (1 sek. throttle)
- Admin kontrolrum med live kort
- Geofence: pickup, levering, forbudt
- GeoJSON polygoner, ray-casting detektion
- Entry/exit-events med auto-varsler
Ruteoptimering PRO+
- Multi-stop, pris- eller tidsoptimering
- Omkostning: brændstof, chauffør, vejafgift
- ETA: trafik (+15% myldretid), køretøjstype
- Multi-job: op til 20 jobs pr. rute
- HERE Maps + Haversine fallback
Køretøjsopslag — Nummerplade & VIN
MotorAPI.dk (Danmark)
- Opslag via reg.nr. eller VIN (ISO 3779)
- 20+ felter: fabrikat, model, Euro-klasse, totalvægt
- Polly circuit breaker, Redis 24h cache
Global Readiness
- VIN er international (ISO 3779) — virker globalt
- Normaliseret output, provider-agnostisk resilience
- Udvidelse: GIBDD (RU), KBA (DE), eNaTIS (ZA), NHTSA (US)
AI Computer Vision
Chauffør fotograferer godset. llama3.2-vision:11b analyserer:
- Volumenestimering fra foto
- Vægtvurdering pr. godskategori
- Godsklassificering (type, tilstand)
- 100% lokal — nul data til cloud
ENTERPRISE
Intelligent Matching
100-point scoring i 5 dimensioner:
- Geospatial Proximity (30p)
- Kapacitetsanalyse (25p)
- Specialiseringsmatch (20p)
- Rating & Erfaring (15p)
- Prisoptimering (10p)
Prædiktiv Analytics
- ETA Prediction — trafik, vejr, køretøj
- Fuel Forecast — Brent/WTI → DKK
- Demand Heatmap — geografisk prognose
- Marketplace Temperature
- Corridor Profitability
Komplet AI/ML Capability Map
1. Computer Vision
Godsanalyse, Ollama lokal
2. Multi-Faktor Matching
100p scoring, parallel
3. Route Corridor
Geografisk korridormatch
4. Candidate Reduction
Pre-filtrering
5. ETA Prediction
Trafik, vejr, køretøj
6. Cost Optimization
Brændstof, chauffør, CO2
7. Demand Heatmap
Cellebaseret analyse
8. Fuel Forecast
Brent/WTI prognose
9. Behavioral Analysis
Cold/Warm/Hot konvertering
10. A/B Experiments
Upgrade prompt-varianter
11. Marketplace Intel
8 sundhedsmålinger
12. GreenScore
11 køretøjstyper × CO2
13. Proximity Match
Geo-nærhed, kapacitet
14. Full-Text Search
FTS, relevansscore
15. Anomaly Detection
Misbrug-detektion
16. Geofence Detection
Ray-casting realtid
Al AI kører lokalt via Ollama. Ingen data til OpenAI, Google eller andre cloud-tjenester. Fuld datakontrol, EU-compliance, ingen leverandør-lock-in.
Hetzner Dedicated Server — Faktisk Hardware
64 GB
RAM
AMD Ryzen 5 3600 · 55 GB ledig
12
CPU Tråde
6-Core @ 3.6 GHz
464 GB
NVMe SSD
291 GB ledig (35% brugt)
Nuværende Forbrug vs. Kapacitet
| Container | RAM Allokeret | RAM Brugt | Udnyttelse |
| Backend (prod) | 8 GB | 249 MB | 3% |
| Frontend (prod) | 4 GB | 107 MB | 3% |
| PostgreSQL | 8 GB | 252 MB | 3% |
| PostgreSQL Replica | 4 GB | 53 MB | 1% |
| PgBouncer | 256 MB | 3 MB | 1% |
| Redis | 1 GB | 10 MB | 1% |
| Supabase GoTrue | 2 GB | 20 MB | 1% |
| Supabase PostgREST | 2 GB | 171 MB | 8% |
| Kong API Gateway | 2 GB | 1.2 GB | 60% |
| Prometheus | 2 GB | 158 MB | 8% |
| Grafana | 1 GB | 111 MB | 11% |
| Loki + Tempo | 4 GB | 119 MB | 3% |
| Fuel Scraper | 1 GB | 113 MB | 11% |
| Staging (backend+frontend) | 6 GB | 269 MB | 4% |
| Total allokeret | ~46 GB af 64 GB | ~4% gns. |
Opskaleringsmuligheder
Vertikal Skalering (Nuværende Server)
- 55 GB RAM ledig — backend kan opskaleres fra 8→32 GB uden hardware-ændring
- 291 GB disk ledig — plads til yderligere databaser og logs
- Gennemsnitlig container-udnyttelse: ~4% — massiv headroom
- Hetzner AX41-NVMe kan opgraderes til 128 GB RAM
- Backend container bruger 249 MB af 8 GB — kan håndtere 10-20x nuværende load
- PostgreSQL bruger 252 MB af 8 GB — klar til millioner af rækker
- Redis bruger 10 MB af 1 GB — 99% kapacitet tilgængelig
Horisontal Skalering (Fremtidig)
- Docker Swarm / Kubernetes — containere kan replikeres
- PostgreSQL read replicas — allerede konfigureret (replica kører)
- PgBouncer connection pooling — allerede aktiv
- Redis cluster — kan opgraderes fra standalone
- CDN / Cloudflare — frontend allerede CDN-klar (static export)
- Flere Hetzner servere — Tailscale VPN til cluster
- Load balancer — Caddy understøtter upstream balancing
App-Niveau Grænser (Kode)
Kestrel Server
- Max forbindelser: 1.000
- Max brugere: 10.000
- Max req/s: 1.000
- Thread pool: 50–500
- Emergency throttle: 95%
Database Pools
- DB pool: 2–50 conn.
- Observability pool: 2–20
- Redis: 1 GB max (LRU)
- Timeout: 30s std, 300s GDPR
Alle grænser er konfigurerbare
- Kestrel: via appsettings.json
- DB pool: via connection string
- Rate limits: via Redis config
- Docker: via compose limits
- Nul kodeændringer for opskalering
1.677 Tests
1.133
Backend Unit
50 filer · xUnit
506
E2E Playwright
52 filer · 14 kat.
20
Integration
Auth, Search, Stripe
22 Baggrundsjob
Real-Time (5–15 min)
- Bid velocity: 5 min
- Job escalation: 5 min
- Dashboard refresh: 5 min
- Marketplace temp.: 10 min
- Match efficiency: 10 min
- GreenScore: 15 min
Periodisk (30 min–24h)
- Carrier liquidity: 30 min
- Demand heatmap: 30 min
- Sessionsrydning: 1 time
- Kreditoptankning: dagligt 03:00
- GDPR-oprydning: dagligt
Public Pages

Landing PageMarketing site with pricing and features

AuthenticationGlassmorphism design with gradient CTA
Administrator — Core

DashboardKPIs, charts, volume, user distribution

Platform Analytics248 jobs, DKK 4.5M value, performance metrics

Transport Jobs530 jobs, DKK 8M total value, status filtering

Bid AdministrationTotal bids, value, acceptance/rejection rates
Administrator — User Management

User Management24 users, 4 roles, CRUD, export

User VerificationPending registrations, approval workflow

Audit LogsImmutable activity trail and compliance
Administrator — Finance & Fees

Payments & BillingDKK 9,700 revenue, fee per transaction

Invoice ManagementDKK 16,500, tax, status, PDF export

Fee ManagementCarrier 5%, FF 3%, Driver 2%, calculator

Credit AdministrationPer-user credit balance management

Subscription ManagementMRR, tier distribution, Stripe integration

Fee DashboardFee overview from admin dashboard
Administrator — System

System Settings9 tabs: settings, fees, notifications, health

SustainabilityCO2 tracking and GreenScore overview
Carrier Role

Carrier Dashboard487 transports, fuel prices, Brent/WTI

Fleet ManagementScania R 500, MAN TGX, ADR certified, APK/insurance

Driver ManagementAssign drivers to vehicles and tasks

Carrier AnalyticsPerformance, distance, earnings
Driver Role

Driver DashboardActive task with complete delivery flow

GPS NavigationFullscreen cockpit with live map and route

Driver TasksTask list with status and actions
Freight Forwarder Role

FF Dashboard34 jobs, Black Channel transport, DKK budgets
Feature Gating & Subscription

Feature Gating — BidsLocked overlay: Required Starter to access

Feature Gating — RoutesLocked overlay: Required Pro with blur effect

Feature Gating — MarketplaceLocked overlay: Required Pro with blur effect
Profile

User ProfilePersonal info, documents, subscription tabs