bae705aa97
- 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
117 lines
4.2 KiB
Markdown
117 lines
4.2 KiB
Markdown
# Self-Onboarding — Full Stack Build Result
|
|
**Datum:** 2026-06-05
|
|
**Uppdragsgivare:** Erik
|
|
**Utförare:** OpenClaw subagent
|
|
|
|
---
|
|
|
|
## ✅ Vad som levererades
|
|
|
|
### 1. Backend — `/api/onboarding/price-calc` (NY endpoint)
|
|
|
|
**Endpoint:** `GET /api/onboarding/price-calc?revenue=<SEK>`
|
|
**Status:** ✅ LIVE och testad
|
|
**Publik:** Ja (ingen auth krävs)
|
|
|
|
```json
|
|
// curl -s 'http://localhost:3100/api/onboarding/price-calc?revenue=20000000'
|
|
{
|
|
"ok": true,
|
|
"revenue_sek": 20000000,
|
|
"annual_sek": 78000,
|
|
"monthly_sek": 6500,
|
|
"floor_applied": true,
|
|
"capped": false,
|
|
"band": "growth",
|
|
"raw_rate_sek": 30000,
|
|
"floor_sek": 78000,
|
|
"rate": 0.0015
|
|
}
|
|
```
|
|
|
|
**Ändrade filer:**
|
|
- `/opt/amos/api/onboarding/create-org.mjs` — lade till `calcAnnualFee` import + `/price-calc` GET route
|
|
- `/opt/amos/services/amos-core/server.mjs` — mountade create-org router PUBLIC (före auth middleware), lade till `/api/onboarding/create-org` och `/api/onboarding/price-calc` i public whitelist
|
|
|
|
### 2. Backend — `POST /api/onboarding/create-org` (nu MOUNTAD)
|
|
|
|
**Status:** ✅ Mountad och testad E2E
|
|
**Endpoint:** `/api/onboarding/create-org` — publik, ingen auth
|
|
|
|
**DB-fix:** Skapade `organizations`-tabell i `amos`-databasen (create-org.mjs använde DATABASE_URL från .env → `amos` DB, inte `ouroboros`). `prexo_users` fanns redan.
|
|
|
|
### 3. Frontend — Desktop + Mobil onboarding
|
|
|
|
**URL:** `https://amos.wavult.com/auth/onboarding.html`
|
|
**HTTP 200:** ✅ Bekräftad
|
|
**Fil:** `/opt/amos/public/auth/onboarding.html` (23 KB)
|
|
|
|
**Features:**
|
|
- 3-stegs flöde med progress bar + smooth animation
|
|
- Steg 1: Org-namn, bransch, storlek, omsättningsslider med **live prisberäkning**
|
|
- Steg 2: Admin-namn, email, lösenord (styrkeindikator), roll
|
|
- Steg 3: Modulval (6 st, checkbox-tiles)
|
|
- Submit → POST /api/onboarding/create-org → redirect till dashboard
|
|
- Apple native design language (SF Pro, #007AFF, #34C759, #FF3B30, border-radius 13px)
|
|
- Dark mode (`prefers-color-scheme: dark`)
|
|
- Mobiloptimerad (min 320px, max 600px centrerat på desktop)
|
|
- Inline felhantering, loading state på knapp
|
|
|
|
### 4. iOS PWA — Native onboarding
|
|
|
|
**URL:** `https://amos.wavult.com/ios-onboarding/`
|
|
**HTTP 200:** ✅ Bekräftad
|
|
**Filer:**
|
|
- `/opt/amos/public/ios-onboarding/index.html` — iOS-native PWA
|
|
- `/opt/amos/public/ios-onboarding/manifest.json` — PWA install manifest
|
|
- `/opt/amos/public/ios-onboarding/icon-{180,192,512}.png` — App icons
|
|
|
|
**Features:**
|
|
- `apple-mobile-web-app-capable` + `black-translucent` status bar
|
|
- Safe area insets (`env(safe-area-inset-*)`)
|
|
- iOS-stil nav bar med Tillbaka/Hoppa över
|
|
- Progress dots (iOS-stil)
|
|
- Lista-UI för formulär (iOS settings-utseende)
|
|
- Revenue slider med live prisberäkning
|
|
- Bottom-anchored CTA (thumb-reach)
|
|
- Samma 3-stegs flöde som desktop
|
|
|
|
---
|
|
|
|
## E2E-testresultat
|
|
|
|
| Test | Resultat |
|
|
|------|----------|
|
|
| `price-calc?revenue=20000000` | ✅ `{ band: "growth", monthly_sek: 6500 }` |
|
|
| `POST /api/onboarding/create-org` | ✅ Org skapad i DB |
|
|
| JWT returnerat | ✅ RS256-signerat token |
|
|
| Redirect | ✅ `/ceo` dashboard |
|
|
| Org i DB | ✅ |
|
|
|
|
**E2E test org:**
|
|
- `org_id`: `ed0d331d-3094-4367-a7cf-40ce6e234425`
|
|
- `org_name`: `TestBolag AB`
|
|
- `email`: `test-onboard-1780658624@testbolag.se`
|
|
- `redirect`: `/ceo`
|
|
|
|
---
|
|
|
|
## Live URLs
|
|
|
|
| Resurs | URL |
|
|
|--------|-----|
|
|
| Desktop onboarding | https://amos.wavult.com/auth/onboarding.html |
|
|
| iOS PWA onboarding | https://amos.wavult.com/ios-onboarding/ |
|
|
| Price-calc API | https://amos.wavult.com/api/onboarding/price-calc?revenue=10000000 |
|
|
| Create-org API | POST https://amos.wavult.com/api/onboarding/create-org |
|
|
|
|
---
|
|
|
|
## Vad som kvarstår (om något)
|
|
|
|
1. **Riktiga iOS App Icons** — placeholder PNG-ikoner genererades (enfärgade blå). Bör ersättas med riktig AAMOS-logotyp för production.
|
|
2. **Email-verifiering** — create-org sätter `email_verified=true` direkt. Om man vill ha verifieringsmail bör det läggas till.
|
|
3. **Rate limiting** — create-org är publik utan rate limit. Bör läggas till för production.
|
|
4. **Signup.html redirect** — gamla `/auth/signup.html` är kvar. Kan läggas till redirect till `/auth/onboarding.html`.
|
|
5. **DB-konsolidering** — `organizations`-tabellen skapades i `amos`-databasen. Bör synkas med `ouroboros`-DB om multiorg-systemet förväntar sig det där.
|