148 lines
4.1 KiB
Markdown
148 lines
4.1 KiB
Markdown
|
|
# quiXzoom Academy — Komplett med Gemini-integration
|
||
|
|
|
||
|
|
> Datum: 2026-07-03 08:15 UTC
|
||
|
|
> Status: ✅ LIVE (med placeholder-bilder, redo för Gemini)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Vad som är klart
|
||
|
|
|
||
|
|
### 1. Academy Frontend (LIVE)
|
||
|
|
|
||
|
|
**URL:** https://quixzoom.com/academy
|
||
|
|
|
||
|
|
**Modul 2, Lektion 1 (med bilder):** https://quixzoom.com/academy/module2/lesson1
|
||
|
|
|
||
|
|
**Funktioner:**
|
||
|
|
- ✅ Progress-tracking (localStorage)
|
||
|
|
- ✅ Gamification (lås upp moduler i ordning)
|
||
|
|
- ✅ Quiz med direkt feedback
|
||
|
|
- ✅ Bildjämförelser (bra vs dålig kvalitet) — SVG-placeholder
|
||
|
|
- ✅ Tips- och varningsrutor
|
||
|
|
- ✅ Certifikat-preview
|
||
|
|
- ✅ Fullt responsiv
|
||
|
|
|
||
|
|
### 2. Gemini-integration
|
||
|
|
|
||
|
|
**Status:** 🔍 Hittad i AAMOS men nyckeln är suspend
|
||
|
|
|
||
|
|
**AAMOS Academy API:**
|
||
|
|
- Endpoint: `http://localhost:3100/api/aamos/academy`
|
||
|
|
- Har redan Gemini-integration i `routes.mjs`
|
||
|
|
- Nyckel: `AIzaSyANo7g3-EZTuH_VAw1ZRzW7n-A39ewIhqo` (suspend)
|
||
|
|
|
||
|
|
**Filer skapade:**
|
||
|
|
- `academy-gemini-bridge.py` — Koppling till AAMOS Academy API
|
||
|
|
- `academy-gemini-direct.py` — Direkt Gemini API-anrop
|
||
|
|
- `generate-academy-images.sh` — Backup med DALL-E (OpenAI)
|
||
|
|
|
||
|
|
### 3. LandveX Admin Backend
|
||
|
|
|
||
|
|
**Fil:** `landvex-admin/backend/app/api/academy.py`
|
||
|
|
|
||
|
|
**Endpoints:**
|
||
|
|
- `GET /api/academy/progress`
|
||
|
|
- `POST /api/academy/complete`
|
||
|
|
- `GET /api/academy/certificate`
|
||
|
|
- `GET /api/academy/stats`
|
||
|
|
|
||
|
|
### 4. LandveX Admin Frontend
|
||
|
|
|
||
|
|
**Fil:** `landvex-admin/frontend/src/pages/AcademyManagement.tsx`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🖼️ Bildgenerering
|
||
|
|
|
||
|
|
### Alternativ 1: Vänta på Gemini (Rekommenderat)
|
||
|
|
|
||
|
|
När Gemini-nyckeln återaktiveras:
|
||
|
|
```bash
|
||
|
|
# Generera alla bildbeskrivningar
|
||
|
|
python3 academy-gemini-direct.py --generate
|
||
|
|
|
||
|
|
# Generera bilder via AAMOS
|
||
|
|
python3 academy-gemini-bridge.py --generate
|
||
|
|
```
|
||
|
|
|
||
|
|
### Alternativ 2: OpenAI DALL-E (Backup)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Sätt API-nyckel
|
||
|
|
export OPENAI_API_KEY="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"
|
||
|
|
|
||
|
|
# Generera bilder
|
||
|
|
./generate-academy-images.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### Alternativ 3: Manuella bilder
|
||
|
|
|
||
|
|
1. Fotografera egna exempelbilder
|
||
|
|
2. Ladda upp till S3:
|
||
|
|
```bash
|
||
|
|
aws s3 cp min-bild.png s3://quixzoom-landing-prod/academy/images/m2l1.png --acl public-read
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 Filstruktur
|
||
|
|
|
||
|
|
```
|
||
|
|
academy/
|
||
|
|
├── index.html # Huvudsida (v2 med moduler)
|
||
|
|
├── api.json # API-specifikation
|
||
|
|
├── module1/
|
||
|
|
│ ├── lesson1/ # Välkommen till quiXzoom
|
||
|
|
│ ├── lesson2/ # Skapa ditt konto
|
||
|
|
│ ├── lesson3/ # Hitta ditt första uppdrag
|
||
|
|
│ └── lesson4/ # Ta dina första bilder
|
||
|
|
├── module2/
|
||
|
|
│ └── lesson1/ # AI-granskning (med bilder!)
|
||
|
|
│ └── index.html # Komplett lektion med placeholders
|
||
|
|
├── module3-6/ # (template-baserade)
|
||
|
|
└── images/ # Genererade bilder (kommer snart)
|
||
|
|
├── m1l1.png
|
||
|
|
├── m2l1.png
|
||
|
|
├── m2l2.png
|
||
|
|
└── ...
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Nästa steg
|
||
|
|
|
||
|
|
1. **Återaktivera Gemini-nyckel** — Kontakta Google Cloud support eller skapa ny nyckel
|
||
|
|
2. **Generera bilder** — Kör `academy-gemini-direct.py --generate`
|
||
|
|
3. **Ersätt placeholders** — Uppdatera lektionerna med riktiga bilder
|
||
|
|
4. **Koppla appen** — Lägg till "Starta Academy"-knapp i quiXzoom-appen
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔗 Viktiga URLer
|
||
|
|
|
||
|
|
| Resurs | URL |
|
||
|
|
|--------|-----|
|
||
|
|
| Academy | https://quixzoom.com/academy |
|
||
|
|
| Modul 2, Lektion 1 | https://quixzoom.com/academy/module2/lesson1 |
|
||
|
|
| API Spec | https://quixzoom.com/academy/api.json |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 Kommandon
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Uppdatera Academy
|
||
|
|
aws s3 cp academy-complete-with-images.html s3://quixzoom-landing-prod/academy/module2/lesson1/index.html --acl public-read
|
||
|
|
|
||
|
|
# Invalida CloudFront
|
||
|
|
aws cloudfront create-invalidation --distribution-id EE30B9WM5ZYM7 --paths "/academy/*"
|
||
|
|
|
||
|
|
# Generera bilder (när API fungerar)
|
||
|
|
python3 academy-gemini-direct.py --generate
|
||
|
|
./generate-academy-images.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Allt är klart!** Academy är live med placeholder-bilder. När Gemini är tillbaka kan vi generera riktiga bilder och ersätta placeholders. 🎓
|