Terminalhubben

Kundportal

Konfidentiell teknisk dokumentation.
Ange dina inloggningsuppgifter för att fortsätta.

Fel användarnamn eller lösenord.
Terminalhubben · Teknisk Briefing
Konfidentiell · Juni 2026
Tillbaka
Warehouse Operations Intelligence Platform

Terminalhubben

Ett hands-free, röststyrt verktygscentrum för svenska lager och terminaler. Byggt i ren JavaScript — inga ramverk, ingen native-app — ändå fullstack med AI-assistans, realtidskommunikation, röstplockning och Enterprise Intelligence Layer.

Kodbas
~79K
rader handskriven kod
Moduler
8+
verktyg i en plattform
AI-tier
3-lager
lokal → regler → GPT-4.1
Latens
~80ms
för 80–90% av alla frågor
Terminalhubben AB Konfidentiell Teknisk Dokumentation Plattformsversion — Juni 2026
01

PlattformsöversiktVad är Terminalhubben?

Terminalhubben är ett internt warehouse operations-system byggt specifikt för svenska lager och terminaler. Det samlar röststyrda verktyg, AI-assistans, realtidskommunikation och ett Enterprise Intelligence Layer i ett enda, PWA-baserat gränssnitt — utan att kräva native-appar, Citrix eller tunga WMS-klientinstallationer.

Systemet designades kring en kärnprincip: händerna ska alltid vara fria. Allt från plockbekräftelse till priskalkyler och driftnoteringar sker via röst, haptisk feedback och minimal visuell interaktion.

Plattformens verktyg
🌌
Galaxy Hybrid Operator
Röststyrt WMS-gränssnitt med 3-stegs checksifferprotokoll (VDP) och integrerad AI-assistent för orderfrågor.
Röst · AI
📦
Galaxy Plock
Plockrunde-tracker med prestation, statistik, 7-dagars historik och röstfeedback efter varje runda.
Prestation
🧮
Kalkylator
Röststyrd priskalkylator med talsyntes, svenska talord, decimaler och multipla röstinmatningssätt.
Röst
📡
Driftinfo
Realtidsnoteringar, kritiska larm, gruppriktade meddelanden med auto-poll och push-bannrar.
Realtid
🤖
AI Frågor
GPT-4.1-mini chat med lagerkontext, orderhistorik och röstsvars-stöd via ElevenLabs.
GPT-4.1
📷
Scanner AI
Kamera-baserad streckkodstolkning med OCR (Tesseract.js) och AI-produktsökning.
OCR
🏢
Enterprise AI
Intelligence Dashboard med KPI-analys, prognoser, autonomous AI-agenter och dokumentexpert.
Enterprise
🧹
Lokalvård
Städrapportering med statusflöde (obehandlad→pågår→klar), gruppfiltrering och bilduppladdning.
Workflow
📊
Utlast
Utlastningsöversikt med kundspecifika checksiffror, zon-mappning och avleveransschema.
Logistik
02

Teknisk StackHur är det byggt?

Terminalhubben är byggd på ett pnpm monorepo med Node.js 24 och TypeScript 5.9. Frontend är ren HTML/CSS/JavaScript utan SPA-ramverk — ett medvetet val för att maximera prestanda, tillgänglighet och enkel felsökning av röst-API:er i Chrome/Edge.

Kärnteknik
Node.js 24 TypeScript 5.9 HTML / CSS / JS Vite 6 Express 5 PostgreSQL Drizzle ORM GPT-4.1-mini ElevenLabs React 19 Recharts Web Speech API Tesseract.js PWA / Service Worker
Arkitekturval — varför inga ramverk i PWA?
Web Speech API
Kräver noggrann kontroll av SpeechRecognition-livscykeln. Ramverk-state-updates kan trigga re-renders som avbryter aktiva SR-sessioner i Chrome.
SpeechSynthesis
TTS och SR konkurrerar om ljudenheten. Utan ramverk kan vi direkt koordinera pause/resume utan ytterligare rendering-lager.
Haptisk feedback
navigator.vibrate() används istället för AudioContext-pip — skapar inte WebAudio-instanser som kan abort:a SR-sessionen.
Laddningstid
En enda HTML-fil med inline CSS/JS — startar direkt även på 3G, kritiskt i frys- och kylzoner med svag signalstyrka.
Enterprise-lager
React + Recharts används för Enterprise AI-dashboarden där komplex datavisualisering motiverar ett komponent-ramverk.
Multi-page arkitektur
/ — Landing page med plattformspresentation
/app — PWA (Terminalhubben), kräver inloggning
/login — Inloggningssida
/enterprise — Enterprise AI Dashboard (React)
/customers — Teknisk briefing (denna sida)
/api/* — REST API (Express 5, separat artifact)
03

Galaxy Hybrid OperatorVoice-Directed Picking med inbyggd AI

Galaxy Hybrid Operator är Terminalhubbbens mest avancerade modul — ett fully hands-free WMS-gränssnitt inspirerat av industristandarden Vocollect/Honeywell Voice. Det kombinerar deterministisk Voice-Directed Picking (VDP) med en kontextmedveten AI-assistent som svarar på fritext-orderfrågor på under 100 ms utan att avbryta plockflödet.

Tekniska nyckeltal
Igenkänningsmotor
Web Speech API — SpeechRecognition, sv-SE, continuous: true, maxAlternatives: 3
Grammatiktips
SpeechGrammarList med JSGF-grammatik för checksiffror och kommandon (om webbläsaren stödjer det)
Tier 1 — kontextfrågor
~80 ms · 0 API-anrop · 16 RegExp-mönster mot normaliserad transkription
Tier 2 — regelmotor
~80 ms · 0 API-anrop · 5 WAREHOUSE_RULES matchas med nyckelordssökning
Tier 3 — AI-eskalering
~1–2 s · GPT-4.1-mini via /api/hybrid/ask · ElevenLabs TTS (fallback: speechSynthesis)
Tier 1/2-täckning
80–90 % av alla frågor besvaras lokalt utan nätverksanrop
Fuzzy-matchning
Levenshtein-avstånd max 2 — fångar missigenkänningar på checksiffror och kommandon
VDP-tillstånd
4 steg: IDLE → WAIT_LOC_CHECK → WAIT_QTY_CONFIRM → WAIT_BUR_CHECK
Ordergenerator
Slumpmässig plockrunda per session — stad, kund, burar, rader, avgångstid, checksiffror
3-lagers svarsarkitektur
Tier 1~80 ms0 API-ANROP
ContextEngine.classify() NativeTTS
16 RegExp-mönster körs mot normaliserad text. Svarar direkt ur sessionsminnet: nästa rad, kund, avgångstid, progress, checksiffra, tungt gods, frysvaror, rad/timme, sessionstid.
Tier 2~80 ms0 API-ANROP
WAREHOUSE_RULES lookup NativeTTS
5 inbyggda operativa regler (REGEL-001–005): mellanlägg vid delad bur, tungt gods i botten, fryshantering, delarposition, utlast-checksiffror per stad. Matchas med nyckelordssökning.
Tier 3~1–2 sAPI-ANROP
GPT-4.1-mini ElevenLabs TTS
Eskaleras när Tier 1/2 returnerar null. Skickar ContextEngine.snapshot() (order, position, progress, historik) + 6 konversationsturns. ElevenLabs läser upp svaret med hög röstprecision.
VDP State Machine — 4 tillstånd
IDLE
Inget aktivt plock. Systemet lyssnar på startkommando eller AI-fråga.
WAIT_LOC_CHECK
System presenterade platsbeteckning (ex. "A12 03"). Väntar på operatörens lokations-checksiffra.
WAIT_QTY_CONFIRM
Lokation bekräftad. System läste upp plockinstruktion. Väntar på antal-bekräftelse.
WAIT_BUR_CHECK
Antal bekräftat. System säger "Checksiffra". Väntar på bur-checksiffra → rad markeras klar.
Plockprotokoll — 3 röstbekräftelser per rad
System → WAIT_LOC_CHECK
"A12 03" (platsbeteckning uppläst)
Operatör
Säger lokations-checksiffra ✓ Levenshtein-validerad
System → WAIT_QTY_CONFIRM
"Tre kartonger till bur ett" (plockinstruktion)
Operatör
Bekräftar antal ✓ numerisk matchning
System → WAIT_BUR_CHECK
"Checksiffra"
Operatör
Bur-checksiffra ✓ fuzzy-matchad
Rad bekräftad
Nästa rad aktiveras automatiskt. Mellanläggsnotis ges vid delad bur (REGEL-001).
WAREHOUSE_RULES — de 5 operativa reglerna
REGEL-001
Mellanlägg vid delad bur — om en bur innehåller produkter för flera kunder krävs mellanlägg. Systemet ger signal automatiskt baserat på dividerAfterRows.
REGEL-002
Tungt gods i botten — produkter med viktklass heavy läggs alltid in först, aldrig ovanpå lätt eller medeltungt.
REGEL-003
Temperaturhantering fryst — frysta produkter hanteras snabbt och läggs in sist för att minimera exponeringstid i rumstemperatur.
REGEL-004
Delarposition — mellanläggets position beräknas från dividerAfterRows, inte burets fysiska halva.
REGEL-005
Utlast-checksiffror — kundspecifika koder: Norrköping utlast 2-4 (checksiffra 25), Stockholm utlast 7-10 (18), Jönköping utlast 11-13 (27).
ContextEngine — sessionsminnets innehåll
user / displayName
Inloggad operatör och visningsnamn
role / group
Roll och avdelning — styr behörigheter och AI-svar
shiftStart
Skiftstart (Date) — beräknar total skifttid
rowIdx / rowStarted
Aktuell rad och när den presenterades
confirmed (Map)
rowIdx → tidsstämpel för bekräftade rader
sessionStart
Rundestart — bas för rader/timme-beräkning
history[]
Ringbuffer (max 10) av de senaste kommandona
mode / prevMode
voice | calc — växlas med "räkna"-kommandot
pickHistory[]
Bekräftade plock denna runda — visas i Historik-vyn
calcResult
Senaste kalkylatorresultat, exponeras i AI-snapshot
Nyckelmoduler
ContextEngine
IIFE-singleton — håller all operativ sessionsminneet. Exponerar snapshot() med fullständig orderkontexts till Tier 3 AI-lagret.
ListeningManager
Kontinuerlig SpeechRecognition med watchdog-timer, auto-restart (150 ms) och automatisk SR-paus/återstart runt TTS-uppläsning.
VDP State Machine
4-stegs deterministisk maskin: IDLE → WAIT_LOC_CHECK → WAIT_QTY_CONFIRM → WAIT_BUR_CHECK. Automatisk mellanläggsnotis vid delad bur.
IntentClassifier
Tier 1/2/3-klassificering av varje yttrande. Levenshtein-fallback (max distans 2) fångar missigenkänningar på checksiffror och kommandon.
CommandRouter
Normaliserar transkription (fillerord, extra mellanrum) och dispatchar till rätt subsystem beroende på ContextEngine.mode.
CalcSM
Inbyggt kalkylatorläge — aktiveras med "räkna" mitt i plockning. Hanterar svenska talord, decimaler, Levenshtein-kommandon och vibrationsfeedback.
NativeTTS
window.speechSynthesis wrapper med sv-SE, köhantering och automatisk SR-paus under uppläsning.
AI Layer — Galaxy WMS Agent
GPT-4.1-mini med system-prompt, full ContextEngine.snapshot() och 6 turns konversationshistorik. ElevenLabs-röst för naturligt flytande svar.
Ordergeneratorn — dynamisk per session

Varje session genererar en slumpmässig plockrunda: stad (Norrköping, Stockholm eller Jönköping), kunder, burar med checksiffror, radantal, viktklass per produkt och avgångstid. Det gör att operatörer aldrig memorerar checksiffror utan måste hantera dem via röst — precis som i verkligheten.

Fully hands-free — inga knappar krävs

Hela plockflödet — orderstart, platsbekräftelse, mängdbekräftelse, AI-frågor, kalkylator, feedback och nästa runda — sker via röst. Haptisk feedback (vibration) bekräftar varje inmatning utan att operatören behöver titta på skärmen.

04

Galaxy PlockPrestation & plockrundor

Galaxy Plock är ett prestation-spårningssystem för plockrundor. Operatören startar en runda, systemet mäter tid och rader, och efter avslutad runda samlar systemet röstfeedback — automatiskt, hands-free — som AI-taggeras och sparas i databasen.

Rundflöde
Välj stad och utlast — stad (t.ex. Göteborg) och utlastnummer väljs i starten
Timer startar — kan döljas för att minska stress; rader uppdateras med +/− eller direktinmatning
Runda avslutas — duration, rader, rader/timme beräknas och sparas via POST /api/prestation/rounds
Röstfeedback — systemet startar automatiskt SR, operatören talar fritt; stoppar vid "klar/färdig"
AI-taggning — kommentaren skickas till GPT som extraherar taggar: kö, frys, mellanlägg, tungt gods m.fl.
Statistikvyer
Idag
Totala rader + genomsnittlig rader/timme för dagens rundor
7 dagar
Aggregerat per dag med Canvas-stapeldiagram (ingen biblioteksberoende)
30 dagar
Trendanalys och total prestation senaste månaden
Historik
Komplett lista över alla rundor med tid, rader, rader/timme och datum

Varje användare ser bara sina egna rundor — filtrerat via JWT-token på serversidan. Administratörer kan se aggregerad data via Enterprise AI-lagret.

05

Röststyrd KalkylatorPrissummering hands-free

Kalkylatorn är systemets ursprungsmodul — ett röststyrt verktyg för att summera priser utan att ta av handskar eller titta bort från varorna. Den hanterar svenska talord, decimalkomman, siffersekvenser och multipla röstinmatningssätt parallellt.

Röstparser — vad systemet förstår
Svenska talord
ett, två, tre … tjugo, hundra — inkl. komposita tal "tjugo fyra" → 24
Decimalkomma
"två komma trettiotre" → 2.33, "nitton och femtio" → 19.50
Arabiska siffror
"42", "2,36", "2.36" — både komma och punkt accepteras
Siffersekvenser
"4 8 2" → 482 (enstaka siffror konkateneras)
Plus-separering
"tio plus femton plus tjugo" → [10, 15, 20]
5 alternativ
SpeechRecognition returnerar upp till 5 tolkningar per yttrande — parsern provar alla och väljer bäst
!
Varför vibration istället för pip-ljud?

Att skapa en ny AudioContext mitt i en aktiv SpeechRecognition-session kan abort:a mikrofonen i Chrome utan synlig felindikator. Lösningen: navigator.vibrate() ger haptisk bekräftelse utan att röra WebAudio-stacken.

06

Driftinfo & NotiserRealtidskommunikation för terminalen

Driftinfo är ett realtids-notifieringssystem med 7 kategorier, gruppriktning och push-bannrar. Det ersätter WhatsApp-grupper och anslagstavlor för driftkritisk kommunikation.

Kategorier
🔴 Kritisk
Omedelbara driftstörningar — röd pulsande banner till alla inloggade
🟠 Viktig
Viktig information som kräver åtgärd inom kort
🔵 Information
Allmän driftinformation utan akut åtgärd
👥 Arbetsgrupp
Gruppriktad kommunikation till specifik avdelning
📅 Möte
Mötesnotiser och schemaändringar
⚠️ Plockfel
Felrapporter kopplade till plockarbetet
⚙️ Driftmeddelande
Teknisk driftpersonal — violett tema; skapar egna meddelanden
🧹 Lokalvård
Städrapporter med statusflöde: obehandlad → pågår → klar
Realtids-push-mekanismus
Auto-poll var 30:e sekund — setInterval(fetchVarningar, 30_000) startar vid login
Ny-post-detektering — varnLastMaxId spårar högsta DB-ID; nytt inlägg triggar banner
Push-banner — fixed-position bannern visas med ikon, titel och "Visa"-knapp; autodismiss 8s
Gruppriktning — icke-admins ser bara inlägg för sin grupp eller alla; admins ser allt
Rollbaserad åtkomst
user
Läser driftinfo för sin grupp
driftpersonal
Skapar driftmeddelanden
admin
Full CRUD, alla kategorier
superadmin
Admin + användarhantering
07

Enterprise AIIntelligence Layer för driftledare

Enterprise AI är ett separat React-baserat dashboard för driftledare och management. Det kombinerar realtidsdata från databasen med GPT-genererade insikter, prognoser och en autonom AI-agent som självständigt analyserar terminalen var 15:e minut.

Komponenter
📊
Instrumentpanel
KPI-grid med throughput, kapacitet, aktiva operatörer och incidenttrend. Realtidsdata från analytics-tabeller.
Realtid
🔮
Forecast Engine
7-dagars kapacitets- och produktivitetsprognoser genererade av GPT-4.1 med Reality Validation Engine som filtrerar osäkra insikter.
GPT-4.1
🤖
Autonomous Intelligence
AI-agent som körs var 15:e minut. Genererar rekommendationer baserade på aktuell data — driftstörningar, bemanningsbrist, kapacitetsrisker.
Autonom
📈
Productivity Intelligence
Djupanalys av operatörsprestanda, plockrunde-trender och kohortjämförelser för teamleaders.
Analytics
📄
Dokumentexpert AI
GPT-assistent med uppladdade verksamhetsdokument (PDF/DOCX). Svarar på frågor baserade på faktisk dokumentation.
RAG
🔍
Operativt Flöde
Live-vy av aktiva ordrar, truckar, incidents och gångblockering med filterbart timeline-flöde.
Live
Reality Validation Engine

Alla AI-genererade insikter passerar en validering som kontrollerar konsistens mot faktisk data. En insikt om "bemanningsbrist" filtreras bort om aktiva operatörer = 0 (ingen grund). Insikter nedgraderas från critical → high om datakällor är otillräckliga. Conf-score under 55% suppressas helt.

08

Auth & SäkerhetAutentisering och åtkomstkontroll

Autentisering sköts via ett internt token-system baserat på HMAC-SHA256 med SESSION_SECRET. Lösenord hashas med Node.js inbyggda crypto.scrypt — inga externa auth-bibliotek.

Token-struktur
Algoritm
HMAC-SHA256 signerat med SESSION_SECRET
Payload
{u: username, r: role, d: displayName, g: group, exp: expiry}
Lösenord
crypto.scrypt + salt — inga externa beroenden (bcrypt/argon2)
Transport
Authorization: Bearer <token> på alla skyddade API-anrop
Validering
GET /api/auth/verify — kontrolleras vid varje app-start och sidnavigering
Rollar
superadmin
Full åtkomst + användarhantering + systemkonfiguration
admin
Driftinfo full CRUD + rapporter + Enterprise AI
driftpersonal
Kan skapa driftmeddelanden — begränsad till kategorin driftmeddelande
user
Standard lageroperatör — alla verktyg, läsrättigheter på driftinfo
Grupper
Alla Utlast Kyl Kolonial Mejeri Frys Drift Lokalvård

Grupp-tillhörighet styr synlighet i Driftinfo och Galaxy Plock. Teamleader-fältet möjliggör teamstrukturering i adminpanelen — varje teamleader får en expanderbar sektion med eget färgtema.

09

API-arkitekturREST-gränssnitt

API-servern körs som en separat Express 5-process på samma domän via path-baserad proxy-routing. Alla skyddade routes kräver giltigt Bearer-token.

Autentisering
POST/api/auth/loginValidera credentials, returnera HMAC-token
GET/api/auth/verifyVerifiera token-giltighet
Driftinfo
GET/api/varningarHämta inlägg (filtrerat per grupp/roll)
POST/api/varningarSkapa nytt inlägg (admin/driftpersonal)
PATCH/api/varningar/:id/statusUppdatera Lokalvård-status
POST/api/varningar/lokalvardSnabb städrapportering (alla användare)
Galaxy Hybrid & Plock
POST/api/hybrid/askAI-orderfråga (GPT-4.1-mini + context snapshot)
POST/api/hybrid/feedbackSpara röstfeedback + AI-taggning
POST/api/prestation/roundsSpara avslutad plockrunda
GET/api/prestation/roundsHämta egna rundor (auth-filtrerat)
GET/api/prestation/statsStatistik: idag / 7d / 30d
Enterprise AI
GET/api/insightsHämta validerade AI-insikter
GET/api/analyticsKPI-data: throughput, kapacitet, operatörer
POST/api/chatEnterprise AI chat med dokumentkontext
POST/api/plock/feedbackAI-taggning av plockfeedback
10

Databas & SchemaPostgreSQL med Drizzle ORM

Alla operativa data lagras i en PostgreSQL-databas hanterad av Drizzle ORM. Databasen seadas automatiskt vid cold start med superadmin-användaren om den är tom.

Huvudtabeller
users
id, name, username, password_hash, role, group_name, team_leader, is_locked, created_at
varningar
id, title, message, category, group_name, priority, status, created_at, updated_by
prestation_rounds
id, username, display_name, start_time, end_time, duration_seconds, rows, rows_per_hour, created_at
galaxy_plock_feedback
id, username, stad, utlast, checksiffra, rader, burar, duration_seconds, rows_per_hour, comment, ai_tags (text[]), created_at
analytics_*
Precomputed KPI-tabeller — uppdateras var 5:e minut av bakgrundsjobb
insights
AI-genererade insikter med confidence-score, kategori och reality-validation-flaggor
Analytics-motor

En bakgrundsprocess i API-servern kör var 5:e minut och precompute:ar KPI-data (throughput, rader/timme, incident-trend) in i analytics-tabeller. Enterprise dashboarden läser dessa tabeller direkt — inga tunga aggregeringsfrågor vid varje sidladdning.

11

PWA & DeploymentOffline-kapabilitet och produktion

Terminalhubben är en Progressive Web App (PWA) med Service Worker, offline-cache och installationsbart gränssnitt. Den körs i produktion på Azure App Service under domänen terminalhubben.com, med källkod hanterad i GitHub och automatiserad driftsättning via GitHub Actions.

Deploy-flöde
Källkod i GitHub — all kod versionshanteras i ett privat GitHub-repo; varje push till main triggar CI/CD-pipeline
GitHub Actions — kör pnpm run build:azure, paketerar dist/-mappen och deplojar till Azure App Service via Azure Web Apps Deploy-action
Azure App Service — Node.js-runtime kör Express-servern som servar statiska filer + API-routes; TLS/HTTPS hanteras av Azure
Miljövariabler — SESSION_SECRET, OPENAI_API_KEY, ELEVENLABS_API_KEY konfigureras som App Settings i Azure Portal
Databas
Leverantör
Neon — serverless PostgreSQL med automatisk skalning och connection pooling
ORM
Drizzle ORM med schema-migrations — tabeller för users, varningar, prestation_rounds, galaxy_plock_feedback m.fl.
Anslutning
DATABASE_URL-miljövariabel i Azure App Settings; poolas via Neons inbyggda connection pooler
PWA-egenskaper
Service Worker
Cachai app-shell, ikoner och statiska resurser. Uppdateras vid varje deploy via injicerat build-timestamp.
Offline-boot
Appen startar offline med cachad version — kritiskt i frys/kyl-zoner med svag signal
Installerbar
Web App Manifest med ikoner (192px + 512px), theme-color och display:standalone
iOS-stöd
apple-touch-icon, apple-mobile-web-app-capable, viewport-fit:cover (Dynamic Island)
Vibration API
Haptisk feedback på Android/iOS Chrome för mic-start/stopp och plock-bekräftelse
Webbläsarkrav
  • Chrome / Edge (Desktop + Android) — full stöd inkl. Web Speech API och Vibration API
  • Safari (iOS) — PWA-stöd, men Web Speech API saknas (röstfunktioner ej tillgängliga)
  • Firefox — fungerar för icke-röst-verktyg; Web Speech API stöds ej
12

Framtid & SkalningRoadmap och integrationer

Terminalhubben är designad för att skalas horisontellt och integreras med externa WMS/ERP-system. Nuvarande version använder inbyggd ordergenerering och statiska produktdatabaser — dessa är utformade för att enkelt ersättas med live WMS-anrop.

Planerade integrationer
WMS-integration
REST/SOAP-koppling mot externt WMS (Astro, Consafe, SAP EWM) för live-orderdata istället för genererade testordrar.
ERP-koppling
SAP/Dynamics-integration för produktstamdata, lagersaldo och orderbekräftelse i realtid.
SSO / Active Directory
LDAP/Azure AD-inloggning för enterprise-miljöer — ersätter internt auth med SAML/OIDC.
Multi-terminal
Stöd för flera terminaler med separata datasilos, rollkonfigurationer och KPI-dashboards per terminal.
Truck-integration
Bluetooth/WiFi-koppling mot truck-terminaler (Zebra, Honeywell) för direkt handscan utan telefon.
Avancerad AI-agent
Fullständig autonom driftledare-AI som kan schemalägga, omdisponera resurser och larma vid prognostiserade avvikelser.
Skalningsarkitektur
Stateless API
API-servern håller inget state — kan skalas horisontellt med load balancer utan sessionsdelning
PostgreSQL
Produktionsdatabas med connection pooling; analysjobb körs asynkront och påverkar inte request-latens
PWA-cache
App-shellen cachas lokalt — minskar serverbelastning vid hög concurrent användning
AI-kostnader
80-90% av frågor besvaras av Tier 1/2 (0 API-anrop) — GPT-kostnader begränsas till genuina edge-cases
Terminalhubben är redo för enterprise-deployment

Systemet körs idag i produktion med riktiga användare. Arkitekturen är designad för att byta ut komponenter (WMS-källa, auth-provider, AI-modell) utan att riva om hela stacken. Kontakta oss för en teknisk deep-dive eller pilotupplägg.