Master Backend Plan v3.0 + Government Portal + Implementation Order
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
# Master Backend Plan v3.0 — LandveX Operations Platform
|
||||
|
||||
## Vision
|
||||
|
||||
En unified operations platform som hanterar ALLT utöver kärnprodukten:
|
||||
- Kunder & avtal
|
||||
- Fakturering & betalning
|
||||
- Support & ärenden
|
||||
- Press & kommunikation
|
||||
- API-nycklar & åtkomst
|
||||
- Ekonomi & redovisning
|
||||
|
||||
## Arkitektur: "One Gateway, Many Services"
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ LandveX UI │
|
||||
│ (React/Vite) │
|
||||
└────────┬────────┘
|
||||
│
|
||||
┌──────────────┼──────────────┐
|
||||
│ │ │
|
||||
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
|
||||
│ Public │ │Professional│ │ Enterprise │
|
||||
│ (gratis) │ │ (betalt) │ │ (avtal) │
|
||||
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
|
||||
│ │ │
|
||||
└──────────────┼──────────────┘
|
||||
│
|
||||
┌────────▼────────┐
|
||||
│ LandveX Gateway │ ← Auth, routing, rate limits
|
||||
│ (port 3004) │
|
||||
└────────┬────────┘
|
||||
│
|
||||
┌────────────────────┼────────────────────┐
|
||||
│ │ │
|
||||
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
|
||||
│Intelligence│ │Operations │ │ Billing │
|
||||
│ Lab │ │ Platform │ │ Engine │
|
||||
│(3002) │ │(3004) │ │(Rust) │
|
||||
└───────────┘ └────┬─────┘ └───────────┘
|
||||
│
|
||||
┌───────────────────┼───────────────────┐
|
||||
│ │ │
|
||||
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
|
||||
│ CRM │ │ Support │ │ Press │
|
||||
│(Apollo) │ │(3303) │ │ │
|
||||
└─────────┘ └─────────┘ └─────────┘
|
||||
```
|
||||
|
||||
## Services (befintliga + nya)
|
||||
|
||||
### ✅ Redan igång
|
||||
|
||||
| Tjänst | Port | Tech | Status |
|
||||
|--------|------|------|--------|
|
||||
| Intelligence Lab | 3002 | Node.js | ✅ MVP-0 |
|
||||
| Gateway | 3004 | Node.js | ✅ Just startad |
|
||||
| Apollo CRM | 3001 | Node.js | 🔄 Behöver startas |
|
||||
| AAMOS Gateway | 8080 | Go | ✅ Kör |
|
||||
| AAMOS CRM | 3301 | Go | ✅ Kör |
|
||||
| AAMOS Incidents | 3303 | Go | ✅ Kör |
|
||||
| AAMOS Ledger | 3250 | Rust | ✅ Kör |
|
||||
| AMOS Billing | ? | Rust | ✅ Kör |
|
||||
|
||||
### 🆕 Nya tjänster att bygga
|
||||
|
||||
| Tjänst | Port | Tech | Beskrivning |
|
||||
|--------|------|------|-------------|
|
||||
| Operations API | 3005 | Node.js | Government portal, avtal, inställningar |
|
||||
| Press Engine | 3006 | Node.js | Pressmeddelanden, nyhetsbrev |
|
||||
| API Key Manager | 3007 | Node.js | API-nycklar, rate limits, access logs |
|
||||
| Stripe Adapter | 3008 | Node.js | Stripe integration, webhooks |
|
||||
| PEPPOL Gateway | 3009 | Node.js | Elektronisk faktura till myndigheter |
|
||||
|
||||
## Dataflöde: Government Customer
|
||||
|
||||
```
|
||||
1. Myndighet registrerar sig
|
||||
→ Skapas i Operations API
|
||||
→ Skapas i Stripe som customer
|
||||
→ Skapas i AAMOS Ledger som kund
|
||||
|
||||
2. Myndighet konfigurerar betalning
|
||||
→ Sparas i Operations API
|
||||
→ Uppdaterar Stripe customer
|
||||
→ Validerar org-nr mot Skatteverket
|
||||
|
||||
3. Myndighet beställer uppdrag
|
||||
→ Skapas i Intelligence Lab
|
||||
→ Kostnad beräknas
|
||||
→ Förbrukning uppdateras i Operations API
|
||||
|
||||
4. Uppdrag genomförs
|
||||
→ Status uppdateras i Intelligence Lab
|
||||
→ Kostnad bokförs i AAMOS Ledger
|
||||
→ Faktura genereras (Stripe/PEPPOL)
|
||||
|
||||
5. Faktura betalas
|
||||
→ Stripe webhook → Operations API
|
||||
→ AAMOS Ledger uppdateras
|
||||
→ Status ändras till "betald"
|
||||
```
|
||||
|
||||
## Teknisk Stack
|
||||
|
||||
### Gateway (port 3004)
|
||||
- Express.js med proxy middleware
|
||||
- JWT auth med roller
|
||||
- Rate limiting per API-nyckel
|
||||
- Request logging och tracing
|
||||
|
||||
### Operations API (port 3005)
|
||||
- Express.js + TypeScript
|
||||
- PostgreSQL för data
|
||||
- Integrationer:
|
||||
- Stripe (betalning)
|
||||
- AAMOS Ledger (bokföring)
|
||||
- Skatteverket (org-nr validering)
|
||||
- PEPPOL (elektronisk faktura)
|
||||
|
||||
### Press Engine (port 3006)
|
||||
- Express.js + TypeScript
|
||||
- PostgreSQL
|
||||
- Mailgun/SendGrid för utskick
|
||||
- RSS-flöde
|
||||
- Arkiv med sök
|
||||
|
||||
### API Key Manager (port 3007)
|
||||
- Express.js + TypeScript
|
||||
- Redis för rate limiting
|
||||
- PostgreSQL för nycklar
|
||||
- Audit log för alla anrop
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
### Sprint 1: Gateway + Operations API (2 veckor)
|
||||
- [ ] Gateway med auth och routing
|
||||
- [ ] Operations API grund
|
||||
- [ ] Government customer model
|
||||
- [ ] Grundläggande CRUD
|
||||
|
||||
### Sprint 2: Betalning + Faktura (2 veckor)
|
||||
- [ ] Stripe integration
|
||||
- [ ] Fakturagenerering (PDF)
|
||||
- [ ] Kostnadsöversikt
|
||||
- [ ] Budgetvarningar
|
||||
|
||||
### Sprint 3: PEPPOL + Avancerat (2 veckor)
|
||||
- [ ] PEPPOL gateway
|
||||
- [ ] Org-nr validering
|
||||
- [ ] Attestflöde
|
||||
- [ ] Användarroller
|
||||
|
||||
### Sprint 4: Press + API Keys (2 veckor)
|
||||
- [ ] Press engine
|
||||
- [ ] API key manager
|
||||
- [ ] Dokumentation
|
||||
- [ ] Monitoring
|
||||
|
||||
## Kostnad
|
||||
|
||||
| Komponent | Beräknad kostnad |
|
||||
|-----------|-----------------|
|
||||
| Utveckling | 4 sprintar × 2 veckor |
|
||||
| Stripe | 1.5% + 1.80 kr per transaktion |
|
||||
| PEPPOL | ~0.50 kr per faktura |
|
||||
| Drift | ECS/Fargate ~$50/mån |
|
||||
|
||||
## Nästa steg
|
||||
|
||||
1. **Starta Apollo CRM** (port 3001)
|
||||
2. **Bygg Operations API** (port 3005)
|
||||
3. **Konfigurera Stripe**
|
||||
4. **Testa fakturaflöde**
|
||||
|
||||
---
|
||||
|
||||
**Status:** Plan klar. Väntar på go-ahead för implementation.
|
||||
Reference in New Issue
Block a user