# DEV Portal - Dokumentation
## Oversigt
DEV Portal er en selvstændig app i BMC Hub til at planlægge og dokumentere udviklingsarbejde.
**URL**: [http://localhost:8001/devportal](http://localhost:8001/devportal)
**Adgang**: Via bruger dropdown menu → "DEV Portal"
## Funktioner
### 1. Roadmap (Kanban Board)
- **Version Tagging**: V1, V2, V3, osv.
- **Statuser**:
- ✅ Planlagt
- ⏳ I Gang
- ✅ Færdig
- ⏸️ Sat på Pause
- **Prioritering**: 1-100 (lav-høj)
- **Datoer**: Forventet dato + afsluttet dato
- **Filtering**: Filtrer efter version (V1/V2/V3)
### 2. Idéer (Brainstorming)
- Opret nye idéer med titel, beskrivelse og kategori
- **Voting System**: Stem på gode idéer (thumbs up)
- **Kategorier**: UI/UX, Integration, Automatisering, Sikkerhed, Andet
- Sortering: Automatisk efter antal stemmer
### 3. Workflows (Diagram Editor)
- **Draw.io Integration**: Embedded diagram editor
- **Typer**: Flowchart, Proces, System Diagram
- **Lagring**: XML gemmes direkte i database
- **Redigering**: Klik "Rediger" for at åbne eksisterende workflow
## Database Struktur
### dev_features
```sql
- id (SERIAL PRIMARY KEY)
- title (VARCHAR(255))
- description (TEXT)
- version (VARCHAR(50)) -- V1, V2, V3, etc.
- status (VARCHAR(50)) -- planlagt, i gang, færdig, sat på pause
- priority (INTEGER) -- 1-100
- expected_date (DATE)
- completed_date (DATE)
- created_at, updated_at (TIMESTAMP)
```
### dev_ideas
```sql
- id (SERIAL PRIMARY KEY)
- title (VARCHAR(255))
- description (TEXT)
- category (VARCHAR(50))
- votes (INTEGER) -- voting system
- created_at, updated_at (TIMESTAMP)
```
### dev_workflows
```sql
- id (SERIAL PRIMARY KEY)
- title (VARCHAR(255))
- description (TEXT)
- category (VARCHAR(50))
- diagram_xml (TEXT) -- draw.io XML format
- thumbnail_url (VARCHAR(500))
- created_at, updated_at (TIMESTAMP)
```
## API Endpoints
### Features
- `GET /api/v1/devportal/features` - List alle features
- Query params: `?version=V1&status=færdig`
- `GET /api/v1/devportal/features/{id}` - Hent specifik feature
- `POST /api/v1/devportal/features` - Opret ny feature
- `PUT /api/v1/devportal/features/{id}` - Opdater feature
- `DELETE /api/v1/devportal/features/{id}` - Slet feature
### Ideas
- `GET /api/v1/devportal/ideas` - List alle idéer
- Query params: `?category=integration`
- `POST /api/v1/devportal/ideas` - Opret ny idé
- `POST /api/v1/devportal/ideas/{id}/vote` - Stem på idé
- `DELETE /api/v1/devportal/ideas/{id}` - Slet idé
### Workflows
- `GET /api/v1/devportal/workflows` - List alle workflows
- Query params: `?category=process`
- `GET /api/v1/devportal/workflows/{id}` - Hent specifik workflow
- `POST /api/v1/devportal/workflows` - Opret ny workflow
- `PUT /api/v1/devportal/workflows/{id}` - Opdater workflow
- `DELETE /api/v1/devportal/workflows/{id}` - Slet workflow
### Stats
- `GET /api/v1/devportal/stats` - Hent statistik
```json
{
"features_count": 6,
"ideas_count": 4,
"workflows_count": 0,
"features_by_status": [
{"status": "færdig", "count": 3},
{"status": "planlagt", "count": 3}
]
}
```
## Frontend Routes
- `GET /devportal` - Hovedside med Kanban board, idéer og workflows
- `GET /devportal/editor?id={id}` - Workflow editor (draw.io)
## Draw.io Integration
### Embed URL
```
https://embed.diagrams.net/?embed=1&ui=kennedy&spin=1&proto=json
```
### postMessage API
```javascript
// Load existing diagram
iframe.contentWindow.postMessage(JSON.stringify({
action: 'load',
autosave: 1,
xml: '