- 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
6.2 KiB
quiXzoom — Launch Strategy 2026-06-04
Skapad av Bernt efter fullständig genomgång av kodbas, DB, nginx, infra.
Verklighetsläge (ärligt)
| Dimension | Nuläge |
|---|---|
| API-infra (Node + Rust) | ✅ Stabil, fixad, exponerad publikt |
| DB-schema | ✅ Väldesignat, 214 missions, rätt tabeller |
| Zoomer-auth (JWT RS256) | ✅ Funkar, ej enterprise |
| iOS-app | ⚠️ APNs mock, App Store ej submittat |
| Orderer/customer onboarding | ❌ Hårdkodad mock-data |
| Inbetalningar | ❌ Stripe mock (ingen live-nyckel) |
| Utbetalningar | ❌ Swish/Stripe Connect mock |
| KYC/BankID | ❌ Simulerad data |
| LandveX → quiXzoom koppling | ❌ Inte aktiv |
| Skalbarhet | ⚠️ Single EC2, ingen LB |
Strategi — 4 parallella spår
🔴 SPÅR 1 — iOS LAUNCH (deadline: 15 juni, 11 dagar)
Blockers som MÅSTE lösas innan App Store submission:
-
APNs Production Certificate —
push-notifications.mjsärMock APNs. Behövs:- Apple Developer Account → Certificates → APNs Auth Key (.p8)
KEY_ID,TEAM_ID,BUNDLE_ID→ in i ecosystem/env- Byt ut
sendMockAPNs()motnode-apn/@parse/node-apn - Deadline: 11 juni (2 dagar buffer för review)
-
App Store submission — deadline 13 juni
- Finns iOS-app byggd? Mac build server (AWS Mac EC2) — Xcode finns men act_runner ej registrerad
- Johan: tickets AMOS-51/52/53/66/67/68 blockerar CI/CD
- Alternativ: manuell build och upload via Transporter
-
Push notification live-test — testa mot riktiga device_tokens
Vem äger: Johan (CTO/Sven) + iOS-app-lagret. Bernt kan fixa APNs-integrationen i backend.
🟠 SPÅR 2 — BETALNINGAR (deadline: soft-launch, ~1 juli)
Minsta möjliga för att ta riktiga pengar:
Fas 2a — Inbetalningar (orderers betalar för missions):
- Behövs:
STRIPE_SECRET_KEY(live) + Stripe-konto aktiverat - Bygga: orderer checkout-flow (välj mission-typ, pris, betala)
- Prissättning finns i
pricing.mjs - DB:
orderer_profilesochorganizationsär tomma → orderer-onboarding
Fas 2b — Utbetalningar (zoomers får betalt):
- Swish Business API (kräver Swish-avtal med bank) ELLER
- Stripe Connect (kräver
stripe_account_idper zoomer, onboarding-flow) - Rekommendation: Swish först (enklare för svenska zoomers, snabbare onboarding)
- DB-schema är redo:
payouts.swish_number,profiles.swish_number - Behövs: Swish Business API-certifikat + Swish-handelscertifikat
Vem äger: Winston/Rufus för banker + avtal. Bernt bygger integrationen när nycklar finns.
🟡 SPÅR 3 — KYC + ENTERPRISE AUTH (deadline: ~1 juli)
Minsta möjliga för att lagligt betala ut till zoomers:
- BankID — krävs för utbetalning (skatteidentitet, F-skatt/A-skatt)
- Leverantör: Signicat, BankID On-File, Onfido SE
profiles.personal_number_hash+identity_verifiedfinns i DB ✅- Kostnader: ~1-3 kr/verifiering
- Orderer-autentisering — B2B-kunder
- Enklare: e-post + org.nr-verifiering (Bolagsverket API)
- Enterprise: SSO via SAML/OIDC
Vem äger: Dennis/Kjell (COO/Legal för avtal). Bernt bygger integrationen.
🟢 SPÅR 4 — LANDVEX → QUIXZOOM (deadline: ~15 juli)
Kopplingen som gör quiXzoom självdrivande:
Flödet som är designat men inte aktiverat:
LandveX detekterar anomali
→ auto_event_monitors triggas
→ event_template väljs (reward, radius, instruktioner)
→ mission skapas i quixzoom.missions
→ push till zoomers i närheten
Vad som behövs:
event_templatespopuleras med reella templates (livboj, brygga, sensor etc)- LandveX
engine.mjsPOST till/api/quixzoom/missionsvid anomali (istället för in-memory) auto_event_monitorsaktiveras per asset/sensor- Push till zoomers via APNs (kräver Spår 1)
Vem äger: Bernt kan bygga hela pipeline. LandveX-assets behöver vara live (ej hårdkodade).
Tidsplan
JUNI JULI
4 8 11 15 22 29 6 13
[SPÅR 1 — iOS]
──────────────┤APNs fix
│──────────────────App Store
├── LIVE 15/6
[SPÅR 2 — Betalningar]
[Winston/avtal]──────────────────────────────
[Bernt bygger]──────────────────
├── Swish live ~1/7
[SPÅR 3 — KYC]
[Dennis/avtal]──────────────────────────────
[Bernt bygger]──────────────
├── BankID live ~1/7
[SPÅR 4 — LandveX koppling]
[Bernt bygger]──────────────
├── Live ~15/7
Uppgiftsfördelning just nu
| Vem | Uppgift | Deadline |
|---|---|---|
| Johan/Sven | Registrera act_runner på Mac EC2 | 8 juni |
| Johan/Sven | Manuell iOS build + TestFlight | 10 juni |
| Bernt | APNs-integration (ersätt mock) | 9 juni |
| Bernt | Orderer onboarding-flow i DB | 12 juni |
| Winston/Rufus | Stripe-avtal + live-nycklar | 10 juni |
| Winston/Rufus | Swish Business-avtal | 15 juni |
| Dennis/Kjell | BankID-leverantörsavtal | 15 juni |
| Erik | Godkänn App Store-submission | 13 juni |
Nästa agent-tasks (Bernt kör direkt)
- TASK-QZ-001 APNs mock → live (
push-notifications.mjs) - TASK-QZ-002 Geo-filter missions (delvis klar via subagent)
- TASK-QZ-003 Orderer registration endpoint (DB-kopplat, ej mock)
- TASK-QZ-004
event_templatesseed-data + LandveX webhook-endpoint - TASK-QZ-005 Stripe onboarding-flow (när nyckel finns)
- TASK-QZ-006 Swish-integration (när certifikat finns)
Vad Bernt KAN köra utan att vänta på någon
- APNs backend-integration (ersätter mock, redo när Johan ger KEY_ID/TEAM_ID)
- Orderer onboarding-flow (register → org-profil → mission-beställning → RDS)
- LandveX webhook-endpoint + event_templates seed
- Missions geo-filter (nästan klar)
- Stripe checkout-flow (redo att aktivera när Winston ger live-nycklar)