Files
boc/landvex-quixzoom-cms/README.md
T
Bernt 6989a98d75 feat: Passwordless cross-device authentication
- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
2026-07-07 07:11:50 +00:00

243 lines
7.0 KiB
Markdown

# Global Content Network — Landvex/QuiXzoom Transcreation System
Ett komplett transcreation-system för globalt innehållshantering över 3 nivåer.
## Arkitektur
### Nivå 1 — Global "Source of Truth"
- **landvex.com** & **quixzoom.com**
- Amerikansk engelska
- All produktutveckling sker här först
- Kanonisk SEO-version
### Nivå 2 — Nationella sajter
- quixzoom.se, .de, .nl, .fr, .es, .it, .pl
- landvex.se, etc.
- **Transcreation** (inte ren översättning)
- Lokal valuta, exempel, kundcase, lagar, kontaktvägar
### Nivå 3 — Regionala hubbar
- quixzoom.asia, landvex.asia
- Flerspråkiga nav: /zh-cn/, /zh-tw/, /ja/, /ko/, /th/, /vi/, /id/, /ms/, /hi/
## Kom igång
### 1. Installation
```bash
cd landvex-quixzoom-cms
npm install
```
### 2. Konfiguration
```bash
cp .env.example .env
# Redigera .env med dina värden:
# - OPENAI_API_KEY (för AI-transcreation)
# - JWT_SECRET (för autentisering)
# - ADMIN_EMAIL / ADMIN_PASSWORD
```
### 3. Databas
```bash
# Skapa tabeller
npm run db:migrate
# Ladda exempeldata
npm run db:seed
```
### 4. Starta servern
```bash
# Utveckling
npm run dev
# Produktion
npm run build
npm start
```
Servern startar på `http://localhost:3000`
## API Endpoints
### Sidor
- `GET /api/pages` — Lista alla sidor
- `GET /api/pages/:id` — Hämta specifik sida
- `POST /api/pages` — Skapa ny sida
- `PUT /api/pages/:id` — Uppdatera sida (triggar transcreation-workflow)
### Översättningar
- `GET /api/pages/:id/translations` — Hämta översättningar för sida
- `POST /api/translations/:id/adapt` — Lokal anpassning
- `POST /api/translations/:id/approve` — Regional granskning
- `POST /api/translations/:id/publish` — Publicera
### Workflow
- `GET /api/pages/:id/workflow` — Se workflow-status
- `POST /api/pages/:id/translate` — Köa översättningar
- `POST /api/jobs/:id/process` — Bearbeta översättningsjobb
### SEO
- `GET /api/pages/:id/seo` — Generera SEO-headers
- `POST /api/pages/:id/seo/audit` — Kör SEO-granskning
- `GET /api/sitemap/:domain` — Generera sitemap.xml
- `GET /api/robots/:domain` — Generera robots.txt
### Analys
- `GET /api/analytics/translation-status` — Översättningsstatus
- `GET /api/analytics/seo-scores` — SEO-poäng
### Ordlista
- `GET /api/glossary` — Lista termer
- `POST /api/glossary` — Lägg till term
## CLI-skript
### Batch-översättning
```bash
# Köa alla föråldrade översättningar
npm run translate:batch
# Bearbeta direkt
npm run translate:batch -- --process
# Endast ett varumärke
npm run translate:batch -- --quixzoom --process
```
### Innehållssynk
```bash
# Synka ändringar senaste 24h
npm run content:sync
# Med automatisk köning
npm run content:sync -- --auto-queue
# Specifikt tidsintervall
npm run content:sync -- --hours=48 --auto-queue
```
### SEO-granskning
```bash
# Kör SEO-audit
npm run seo:audit
# Generera sitemaps
npm run seo:audit -- --sitemaps
# Endast specifikt språk
npm run seo:audit -- --lang=sv-SE
```
## Transcreation-Workflow
När en .com-sida ändras:
1. **Markera föråldrad** — Alla översättningar markeras som "outdated"
2. **AI-generering** — GPT-4o skapar nya förslag med kulturell anpassning
3. **Lokal anpassning** — Lokala redaktörer anpassar exempel, case, kontakter
4. **Regional granskning** — Godkännande av regional chef
5. **Publicering** — Live på respektive sajt
## Ordlista & Terminologi
Systemet har en central ordlista som säkerställer konsekvent översättning av:
- Produktnamn (QuiXzoom Pro, Landvex Enterprise)
- Tekniska termer
- Juridiska begrepp
- Marknadsföringstermer
Varje term har godkända översättningar per språk och varumärke.
## SEO-funktioner
- **hreflang-taggar** — Automatisk generering för alla språkversioner
- **Canonical URLs** — Korrekt canonicalisering per domän
- **Schema.org** — Strukturerad data på alla språk
- **Open Graph** — Sociala medier-anpassade taggar
- **Sitemaps** — XML-sitemaps med hreflang per domän
## Språkstöd
### Nationella (Tier 2)
| Språk | Domän | Valuta | Prompt |
|-------|-------|--------|--------|
| Svenska | .se | SEK | Informellt "du", svenska regler |
| Tyska | .de | EUR | Formellt "Sie", Tysk grundlighet |
| Nederländska | .nl | EUR | Direkt, rak kommunikation |
| Franska | .fr | EUR | Elegans, formellt "vous" |
| Spanska | .es | EUR | Värmefull, relationsskapande |
| Italienska | .it | EUR | Uttrycksfull, passionerad |
| Polska | .pl | PLN | Detaljerad, faktaspäckad |
### Regionala (Tier 3)
| Språk | Valuta | Kulturell kontext |
|-------|--------|-------------------|
| Förenklad kinesiska | CNY | Formell, respektfull |
| Traditionell kinesiska | TWD | Hökig, formell |
| Japanska | JPY | Keigo, extremt artig |
| Koreanska | KRW | Hierarkisk, respektfull |
| Thailändska | THB | Relation först, affärer sen |
| Vietnamesiska | VND | Värmefull, respektfull |
| Indonesiska | IDR | Vänlig, tillgänglig |
| Malajiska | MYR | Inkluderande, multikulturell |
| Hindi | INR | Hinglish för tech |
## Produktionsberedskap
### ✅ Vad som fungerar
- [x] Komplett databasschema med versionering
- [x] 3-nivå arkitektur (global/national/regional)
- [x] AI-transcreation med GPT-4o
- [x] Transcreation-workflow (5 steg)
- [x] SEO-hantering (hreflang, canonical, Schema.org)
- [x] Ordlista med språkspecifika termer
- [x] REST API för all hantering
- [x] Admin-dashboard (HTML/JS)
- [x] CLI-verktyg för batch-jobb
- [x] SEO-audit och rapportering
### ⚠️ Vad som saknas för produktion
- [ ] **Autentisering** — JWT-implementering är grundläggande
- [ ] **Användarhantering** — Registrering, roller, behörigheter
- [ ] **Redis/BullMQ** — Jobbköer (just nu synkron bearbetning)
- [ ] **Bildhantering** — Uppladdning, CDN, lokaliserade bilder
- [ ] **Preview-miljö** — Förhandsgranskning innan publicering
- [ ] **Webhook-stöd** — Notifieringar till externa system
- [ ] **Backup-strategi** — Databas-backuper
- [ ] **Övervakning** — Loggning, metrics, alerting
- [ ] **CDN-integration** — CloudFlare, Fastly, etc.
- [ ] **CI/CD** — Automatisk deployment
- [ ] **Tester** — Unit-tester, integrationstester
- [ ] **Dokumentation** — API-docs, användarguider
### 🔧 Rekommenderade förbättringar
1. **Cachning** — Redis för API-respons
2. **Rate limiting** — Skydd mot överbelastning
3. **Sök** — Elasticsearch för innehållssök
4. **Versionering** — Git-liknande historik för innehåll
5. **A/B-testning** — Olika versioner per marknad
6. **Feedback-loop** — Användardata förbättrar AI-översättningar
## Miljövariabler
| Variabel | Beskrivning | Standard |
|----------|-------------|----------|
| `DATABASE_URL` | SQLite-databasfil | `./data/content.db` |
| `OPENAI_API_KEY` | OpenAI API-nyckel | *(krävs)* |
| `JWT_SECRET` | Hemligt för JWT | *(krävs)* |
| `REDIS_URL` | Redis för köer | *(valfritt)* |
| `ADMIN_EMAIL` | Admin-e-post | `admin@landvex.com` |
| `ADMIN_PASSWORD` | Admin-lösenord | *(krävs)* |
| `RESEND_API_KEY` | E-postutskick | *(valfritt)* |
| `PORT` | Serverport | `3000` |
| `NODE_ENV` | Miljö | `development` |
## Licens
Proprietär — Landvex/QuiXzoom