6989a98d75
- 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
127 lines
2.8 KiB
Markdown
127 lines
2.8 KiB
Markdown
# Landvex - AI-driven marknadsintelligens
|
|
|
|
Ett komplett system för automatisk generering av marknadsintelligensrapporter.
|
|
|
|
## Funktioner
|
|
|
|
- ✅ Produktinput-formulär
|
|
- ✅ Datainsamling (Google Trends, Statista, quiXzoom, web scraping)
|
|
- ✅ AI-analys (OpenAI GPT-4)
|
|
- ✅ Rapportgenerering (Markdown/HTML med grafer)
|
|
- ✅ Kundportal (beställning, status, rapportvisning)
|
|
- ✅ Adminpanel (beställningar, statistik, rapporter)
|
|
- ✅ E-postnotifieringar
|
|
- ✅ Kö-system för asynkron bearbetning
|
|
|
|
## Snabbstart
|
|
|
|
### 1. Konfiguration
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# Redigera .env med dina API-nycklar
|
|
```
|
|
|
|
### 2. Databas
|
|
|
|
```bash
|
|
# Skapa PostgreSQL-databas
|
|
createdb landvex
|
|
|
|
# Synkronisera modeller
|
|
npm run db:sync
|
|
```
|
|
|
|
### 3. Redis (för kö-system)
|
|
|
|
```bash
|
|
# Installera och starta Redis
|
|
redis-server
|
|
```
|
|
|
|
### 4. Starta applikationen
|
|
|
|
```bash
|
|
# Utveckling
|
|
npm run dev
|
|
|
|
# Produktion
|
|
npm start
|
|
```
|
|
|
|
### 5. Skapa admin-användare
|
|
|
|
```bash
|
|
curl -X POST http://localhost:3000/api/admin/users \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username":"admin","email":"admin@landvex.ai","password":"ditt-losenord","role":"admin"}'
|
|
```
|
|
|
|
## API-endpoints
|
|
|
|
### Beställningar
|
|
- `POST /api/orders` - Skapa ny beställning
|
|
- `GET /api/orders/:id` - Hämta beställning
|
|
- `GET /api/orders/track?email=` - Spåra via e-post
|
|
- `GET /api/orders` - Lista alla (admin)
|
|
- `PATCH /api/orders/:id/status` - Uppdatera status (admin)
|
|
|
|
### Rapporter
|
|
- `GET /api/reports/:id` - Hämta rapport
|
|
- `GET /api/reports/:id/html` - Hämta HTML-version
|
|
- `GET /api/reports/order/:orderId` - Hämta via order
|
|
- `GET /api/reports` - Lista alla (admin)
|
|
|
|
### Admin
|
|
- `POST /api/admin/login` - Inloggning
|
|
- `GET /api/admin/stats` - Statistik
|
|
- `POST /api/admin/users` - Skapa användare
|
|
|
|
## Miljövariabler
|
|
|
|
| Variabel | Beskrivning |
|
|
|----------|-------------|
|
|
| `DB_HOST` | PostgreSQL host |
|
|
| `DB_PORT` | PostgreSQL port |
|
|
| `DB_NAME` | Databasnamn |
|
|
| `DB_USER` | Databasanvändare |
|
|
| `DB_PASSWORD` | Databaslösenord |
|
|
| `OPENAI_API_KEY` | OpenAI API-nyckel |
|
|
| `JWT_SECRET` | JWT-hemlighet |
|
|
| `SMTP_HOST` | SMTP-server |
|
|
| `SMTP_USER` | E-postanvändare |
|
|
| `SMTP_PASSWORD` | E-postlösenord |
|
|
| `REDIS_URL` | Redis-anslutning |
|
|
|
|
## Arkitektur
|
|
|
|
```
|
|
Frontend (HTML/CSS/JS)
|
|
↓
|
|
Express API
|
|
↓
|
|
Bull Queue (Redis)
|
|
↓
|
|
Report Job Processor
|
|
↓
|
|
Data Collection → AI Analysis → Report Generation
|
|
↓
|
|
PostgreSQL (spara resultat)
|
|
↓
|
|
E-postnotifiering
|
|
```
|
|
|
|
## Produktionsanpassningar
|
|
|
|
1. **Databas**: Använd migrations istället för sync
|
|
2. **Säkerhet**: Lägg till rate limiting, input-sanering
|
|
3. **Skalning**: Kör fler worker-instanser
|
|
4. **Övervakning**: Lägg till Prometheus/Grafana
|
|
5. **Backups**: Automatiska databasbackups
|
|
6. **SSL**: HTTPS i produktion
|
|
7. **CDN**: För statiska filer
|
|
|
|
## Licens
|
|
|
|
Proprietär - Landvex AB
|