- Added backend routes for DEV Portal dashboard and workflow editor - Created frontend templates for portal and editor using Jinja2 - Integrated draw.io for workflow diagram editing and saving - Developed API endpoints for features, ideas, and workflows management - Established database schema for features, ideas, and workflows - Documented DEV Portal functionality, API endpoints, and database structure
6.1 KiB
6.1 KiB
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
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
- 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
- id (SERIAL PRIMARY KEY)
- title (VARCHAR(255))
- description (TEXT)
- category (VARCHAR(50))
- votes (INTEGER) -- voting system
- created_at, updated_at (TIMESTAMP)
dev_workflows
- 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
- Query params:
GET /api/v1/devportal/features/{id}- Hent specifik featurePOST /api/v1/devportal/features- Opret ny featurePUT /api/v1/devportal/features/{id}- Opdater featureDELETE /api/v1/devportal/features/{id}- Slet feature
Ideas
GET /api/v1/devportal/ideas- List alle idéer- Query params:
?category=integration
- Query params:
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
- Query params:
GET /api/v1/devportal/workflows/{id}- Hent specifik workflowPOST /api/v1/devportal/workflows- Opret ny workflowPUT /api/v1/devportal/workflows/{id}- Opdater workflowDELETE /api/v1/devportal/workflows/{id}- Slet workflow
Stats
GET /api/v1/devportal/stats- Hent statistik{ "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 workflowsGET /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
// Load existing diagram
iframe.contentWindow.postMessage(JSON.stringify({
action: 'load',
autosave: 1,
xml: '<mxfile>...</mxfile>'
}), '*');
// Export diagram
iframe.contentWindow.postMessage(JSON.stringify({
action: 'export',
format: 'xml'
}), '*');
Events
init- Editor is readyautosave- Diagram changed (auto-save)export- Export completed (returns XML)save- User clicked save
Eksempel Data
Features (6 stk.)
- Dashboard Forbedringer (V1, færdig)
- Global Søgning (V1, færdig)
- Settings & Brugerstyring (V1, færdig)
- vTiger CRM Integration (V2, planlagt)
- e-conomic Integration (V2, planlagt)
- Rapport Generator (V3, planlagt)
Ideas (4 stk.)
- Eksport til Excel (15 votes)
- Mobile app (12 votes)
- AI Assistent (8 votes)
- Dark mode forbedringer (5 votes)
Fjernelse af DEV Portal
Da dette er en selvstændig app, kan den nemt fjernes:
-
Fjern fra main.py:
# Remove imports from app.devportal.backend import router as devportal_api from app.devportal.backend import views as devportal_views # Remove router registrations app.include_router(devportal_api.router, ...) app.include_router(devportal_views.router, ...) -
Fjern menu link fra
app/shared/frontend/base.html:<li><a class="dropdown-item py-2" href="/devportal">...</a></li> -
Slet filer:
rm -rf app/devportal/ -
Valgfri: Drop database tables:
DROP TABLE IF EXISTS dev_workflows CASCADE; DROP TABLE IF EXISTS dev_ideas CASCADE; DROP TABLE IF EXISTS dev_features CASCADE;
Fremtidige Forbedringer
- Drag-and-drop i Kanban board (flyt features mellem kolonner)
- Workflow thumbnails (PNG preview fra XML)
- Export roadmap til PDF eller Excel
- GitHub/Gitea integration (link features til commits/PRs)
- Kommentarer på features og idéer
- Notifikationer ved status ændringer
- Tidsregistrering per feature
- Sprint planning funktionalitet
- Access control (admin-only vs alle brugere)
Teknisk Implementation
Filer Oprettet
migrations/007_dev_portal.sql # Database schema
app/devportal/backend/router.py # API endpoints (17 stk.)
app/devportal/backend/views.py # Frontend routes (2 stk.)
app/devportal/frontend/portal.html # Hovedside (Kanban + Ideas + Workflows)
app/devportal/frontend/editor.html # Draw.io editor
Dependencies
- Bootstrap 5.3.2 (UI komponenter)
- Draw.io Embed (workflow editor)
- Fetch API (AJAX requests)
- Jinja2 (template rendering)
Browser Support
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
Support
For problemer eller spørgsmål, kontakt udviklingsteamet eller opret en ny idé i DEV Portal.