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
|