Files
boc/quixzoom-status.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

5.4 KiB

quiXzoom — End-to-End Test Resultat

Kört: 2026-06-13 21:36 UTC av Bernt

Testat flöde

Register → /me → Hämta missions (geo) → Claim → Submit → Signed URL → Stripe Connect → Payout


Resultat per steg

# Steg Status Notering
1 POST /register OK Token + user returneras korrekt, RS256 JWT
2 GET /me ⚠️ DELVIS Returnerar bara id/email/name/role — saknar credits, missions_completed, identity_verified, stripe_status
3 GET /missions?lat&lng&radius 🔴 BUG radius tolkas som METER men app skickar troligen KM → 0 results. radius=10000m → 76 missions
4 PATCH /missions/:id/claim OK Claim skapas, status=pending, expires 15min
5 POST /missions/:id/submit OK submissions_count=1, claim→submitted
6 POST /storage/signed-url OK S3 presigned PUT URL genereras korrekt
7 GET /storage/signed-url/* (GET) 🔴 BUG Returnerar GET-URL istället för PUT — appen kan inte uploada
8 GET /payments/wallet 🔴 BUG 404 — endpoint finns inte, appen kraschar
9 GET /payments/stripe-connect/status OK Returnerar onboarding_complete:false korrekt
10 POST /payments/stripe-connect OK Onboarding URL genereras (test-mode)
11 GET /payouts/history OK Tom men svarar
12 AI bildanalys 🔴 SAKNAS Ingen verifiering att bilden matchar uppdraget

Kritiska buggar (blockar smyglanseringen)

BUG-001 🔴 Geo-radius enhet fel

Symptom: Appen skickar radius i km → API tolkar som meter → 0 missions visas Fix: Antingen dokumentera att radius=meter och fixa appen, ELLER lägg km→m konvertering i API Fil: routes/missions.mjs rad ~285 Påverkan: Zoomer ser INGA uppdrag nära sig — blockar hela produkten

BUG-002 🔴 /payments/wallet finns inte

Symptom: GET /api/qz/payments/wallet → 404 Fix: Lägg till wallet-endpoint som returnerar credits_balance + total_earned från users-tabellen Fil: routes/payments.mjs Påverkan: Appen kan inte visa Zoomer-saldo → kassaflöde osynligt

BUG-003 🔴 /me returnerar för lite

Symptom: /me saknar credits_balance, missions_completed, stripe_onboarding_complete, identity_verified Fix: Joina users + profiles + wallets i /me-responsen Fil: routes/auth.mjs Påverkan: Appen vet inte om Zoomer är redo att ta uppdrag → onboarding kan inte guida rätt

BUG-004 🔴 AI bildanalys saknas helt

Symptom: Submit accepterar vilken URL som helst utan att verifiera bilden Fix: Lägg till Ollama vision-check på inkommande bilder mot mission-description Påverkan: Kvalitetskontroll omöjlig → dåliga bilder betalas ut

BUG-005 🟡 Stripe i test-mode

Symptom: Payouts fungerar inte med riktiga pengar Fix: Sätt STRIPE_SECRET_KEY=sk_live_... i .env Påverkan: Ingen riktig betalning möjlig till 1 aug

BUG-006 🟡 50 missions saknar description, 90 saknar instructions

Symptom: Zoomer ser uppdrag utan att förstå vad de ska göra Fix: Fyll i description + instructions på alla svenska missions Påverkan: Dålig användarupplevelse, felaktiga foton

BUG-007 🟡 Onboarding — identity_verified alltid null

Symptom: Ingen KYC/ID-verifiering implementerad end-to-end Fix: BankID-flöde eller Stripe Identity behöver kopplas in Påverkan: Kan inte verifiera att Zoomers är verkliga personer


Vad som faktiskt fungerar bra

  • Registrering och JWT-auth
  • Claim-flödet
  • Submit-flödet (tekniskt)
  • S3 presigned URLs
  • Stripe Connect onboarding URL
  • 214 svenska missions med koordinater
  • Rust engine (GPS fraud detection, port 3390)
  • Nginx routing api.quixzoom.com

Fix-prioritet mot 1 aug

Vecka 1 (nu): BUG-001 , BUG-002 , BUG-003 , BUG-004 — KLARA 2026-06-13 Nästa: BUG-005 (Stripe live), BUG-006 (missions content), BUG-007 (KYC/identity)

Session 2026-06-13 — del 2 (22:18 UTC)

Juridiska + branding-fixes (11 filer)

  • Swish borttaget från all Zoomer-UI → Stripe Connect
  • Skatteansvar: inga löften om A/F-skatt → "du ansvarar själv"
  • BankID-krav i terms/support → "foto-ID (pass/nationellt ID)"
  • Bolagsnamn: Wavult Group AB 559123-4567 → LandveX AB 559141-7042
  • Hårdkodade demo-belopp nollställda i zoomer-app + zoomer-earnings
  • requestPayout()-funktion: öppnar Stripe Connect-onboarding om ej klar
  • i18n.js tillagd i 7 filer; backend i18n middleware live (sv/en/th)
  • 9 frontend-filer fixade: gammal domän quixzoom-api.wavult.com → api.quixzoom.com

Röstguide

  • Bug fixad: systemPrompt undefined → VOICE_GUIDE_SYSTEM
  • Bug fixad: .buffer() → arrayBuffer() + Buffer.from()
  • Verifierat live: 140KB MP3, 4.7s, svenska navigationsguide

Bangkok-uppdrag live

  • 15 uppdrag inom 15km av Sukhumvit, närmaste 141m
  • Elledningar, vägskador, gatuliv, kanalinfrastruktur

Session 2026-06-13 — fixat

  • BUG-001: Geo radius km→meter auto-konvertering (routes/missions.mjs)
  • BUG-002: /payments/wallet endpoint tillagd (routes/payments.mjs)
  • BUG-003: /me returnerar 29 fält + onboarding-status objekt (routes/auth.mjs)
  • BUG-004: AI bildanalys med llava:7b via Ollama (routes/image-analysis.mjs + missions.mjs submit)
  • Ollama installerat: qwen2.5:7b + llava:7b (9.4GB total, CPU-only, gratis)
  • ai-gateway CHAINS: Groq/DeepSeek/Gemini first, Claude sista
  • 38 irrelevanta tjänster stoppade och disabled
  • Daglig AI-budget $2/dag hard cap aktiverad