1107 lines
33 KiB
JSON
1107 lines
33 KiB
JSON
|
|
{
|
||
|
|
"total": 100,
|
||
|
|
"created": "2026-05-25T15:51:25.967554+00:00",
|
||
|
|
"tickets": [
|
||
|
|
{
|
||
|
|
"id": "F-001",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "ElevenLabs voices live i /api/films/voices",
|
||
|
|
"api": "/api/films/voices",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "L\u00e4gg ELEVENLABS_API_KEY i amos-core service env, testa 30+ r\u00f6ster returneras",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-002",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "TTS pipeline: scen-narration \u2192 ElevenLabs audio \u2192 S3",
|
||
|
|
"api": "/api/films/projects/:id/tts",
|
||
|
|
"stack": "Node.js+EL",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Varje scens narration-text \u2192 EL TTS \u2192 audio URL sparas i film_scenes.audio_url",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-003",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "AI clip matching: scen-keywords \u2192 video URL",
|
||
|
|
"api": "/api/films/projects/:id/scenes/:id/match-clip",
|
||
|
|
"stack": "Python+Vector",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "Semantisk matchning av scen-keywords mot media library via Qdrant",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-004",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "AI bakgrundsmusik per scen (stil/emotion)",
|
||
|
|
"api": "/api/films/projects/:id/music",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Generera musik via AAMOS music_generate baserat p\u00e5 scen-emotion",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-005",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Film rendering pipeline (ffmpeg worker)",
|
||
|
|
"api": "/api/films/projects/:id/render",
|
||
|
|
"stack": "Python+ffmpeg",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "8h",
|
||
|
|
"desc": "Systemd worker: scener + audio + klipp \u2192 slutvideo via ffmpeg",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-006",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Film preview player endpoint",
|
||
|
|
"api": "/api/films/projects/:id/preview",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Returnera preview-manifest (HLS/MP4 URL) f\u00f6r film-projektet",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-007",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Character DNA builder med AI",
|
||
|
|
"api": "/api/films/characters/:id/dna",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "AI genererar karakt\u00e4rsprofil (bakgrund, motivation, voice style) fr\u00e5n namn+roll",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-008",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Continuity Monitor v2 (AI-driven)",
|
||
|
|
"api": "/api/films/projects/:id/continuity",
|
||
|
|
"stack": "Node.js+Claude",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Djup AI-analys av scenkonsekvens: ljus, kostym, tid, karakt\u00e4rsutveckling",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-009",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Branding preset per film (font, mood, colors)",
|
||
|
|
"api": "/api/films/projects/:id/branding",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "Spara och h\u00e4mta branding-config (font, mood preset, f\u00e4rgpalett)",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-010",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Script streaming via SSE (real-time AI)",
|
||
|
|
"api": "/api/films/script/stream",
|
||
|
|
"stack": "Node.js+SSE",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Server-Sent Events f\u00f6r streaming manusgeneration via AMOS AI",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-011",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Scene reorder + manual edit API",
|
||
|
|
"api": "/api/films/projects/:id/scenes/:id",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "PATCH endpoint f\u00f6r att redigera scen, PATCH f\u00f6r reorder",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-012",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Intro + varning generator",
|
||
|
|
"api": "/api/films/projects/:id/intro",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "AI genererar intro-sekvens (15 sek) + k\u00e4nslighetvarning baserat p\u00e5 inneh\u00e5ll",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-013",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Supabase \u2192 AMOS DB migration f\u00f6r films",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "SQL",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "Migrera Supabase-schema (projects, scenes, characters) till AMOS PostgreSQL. \u2705 Gjort",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-014",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Voice recorder + upload API",
|
||
|
|
"api": "/api/films/characters/:id/voice",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Upload audio recording \u2192 spara som character voice sample",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-015",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Export Director Mode: full config + ffmpeg params",
|
||
|
|
"api": "/api/films/projects/:id/export",
|
||
|
|
"stack": "Node.js+ffmpeg",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Konvertera Director Mode settings (tempo/klippstil/musik) till ffmpeg-parametrar",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-016",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Timeline view API (scener med timestamps)",
|
||
|
|
"api": "/api/films/projects/:id/timeline",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "Returnera alla scener med kumulativa timestamps f\u00f6r preview",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-017",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "AI pipeline progress SSE stream",
|
||
|
|
"api": "/api/films/projects/:id/pipeline/stream",
|
||
|
|
"stack": "Node.js+SSE",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Real-time pipeline progress: analyze \u2192 match \u2192 TTS \u2192 music \u2192 ready",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-018",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "YouTube auto-upload efter rendering",
|
||
|
|
"api": "/api/films/projects/:id/publish",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Koppla Films export \u2192 YouTube Data API v3 upload (kr\u00e4ver T-007)",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-019",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Media library f\u00f6r klipp och bilder",
|
||
|
|
"api": "/api/films/media",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "CRUD f\u00f6r media assets (video/image/audio) per anv\u00e4ndare",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "F-020",
|
||
|
|
"epic": "Films",
|
||
|
|
"title": "Films UI dashboard (iOS Native)",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS/JS",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "PWA-dashboard f\u00f6r hela film pipeline. iOS 18 design. Tokens.css.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-001",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Kausalgrafer API (orsaksanalys)",
|
||
|
|
"api": "/api/dissg/causal",
|
||
|
|
"stack": "Rust+Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "8h",
|
||
|
|
"desc": "Kausalanalys: vilket beslut ledde till vilket utfall. WorldBank + Riksdagen data.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-002",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Oscilloscope view: trendanalys per indikator",
|
||
|
|
"api": "/api/dissg/trends",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Tidsserie-analys f\u00f6r valfri indikator, 10-20 \u00e5r bak\u00e5t. WorldBank historiska data.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-003",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Beslutstidslinje: politiska beslut med datum",
|
||
|
|
"api": "/api/dissg/decisions",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Riksdagen API \u2192 lista beslut per datum, filtrerat p\u00e5 politikomr\u00e5de",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-004",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Landsportf\u00f6ljer: djupdykning per land",
|
||
|
|
"api": "/api/dissg/portfolio/:country",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Alla WorldBank-indikatorer f\u00f6r ett land, tidsserie, trendlinje",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-005",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "PDF export av DISSG-rapport",
|
||
|
|
"api": "/api/dissg/export/pdf",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Generera PDF med alla nyckeltal, grafer, k\u00e4llh\u00e4nvisningar",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-006",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "CSV export av dataset",
|
||
|
|
"api": "/api/dissg/export/csv",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "Exportera dataset som CSV f\u00f6r valfri kombination av land+indikator+\u00e5r",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-007",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "DISSG PRO tier: subscription + rate limiting",
|
||
|
|
"api": "/api/dissg/subscription",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Standard (gratis), PRO 799kr/m\u00e5n, Enterprise. Kopplat mot waitlist.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-008",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "DISSG login/register + auth",
|
||
|
|
"api": "/api/dissg/auth",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Frist\u00e5ende auth f\u00f6r DISSG PRO-kunder. JWT. Kopplat mot AMOS identity.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-009",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Global Master Index (GMI) ber\u00e4kningsmotor",
|
||
|
|
"api": "/api/dissg/gmi",
|
||
|
|
"stack": "Rust",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "Komposit-index av 6 kategorier per land. Viktat genomsnitt. WorldBank + OECD.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-010",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Global Diagnostic Map data API",
|
||
|
|
"api": "/api/dissg/gdm",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "GeoJSON + scores per land f\u00f6r interaktiv v\u00e4rldskarta. Alla 190+ l\u00e4nder.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-011",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Debattl\u00e4ge iOS-app (PWA, 8-sek svar)",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS/JS",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Mobiloptimerad PWA med snabb query, offline cache, r\u00f6stfr\u00e5ga.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-012",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "OECD API integration",
|
||
|
|
"api": "/api/dissg/oecd",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "OECD.stat API \u2192 h\u00e4lsa, utbildning, arbetsmarknad, milj\u00f6 per land",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-013",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "UN Statistics API integration",
|
||
|
|
"api": "/api/dissg/un",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "UN Data API \u2192 SDG-indikatorer, demografi, m\u00e4nskliga r\u00e4ttigheter",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-014",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Freedom House demokrati-index integration",
|
||
|
|
"api": "/api/dissg/democracy",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Freedom in the World data \u2192 demokratipo\u00e4ng per land",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-015",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Alert system: notifiera om ny relevant statistik",
|
||
|
|
"api": "/api/dissg/alerts",
|
||
|
|
"stack": "Node.js+cron",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Prenumeranter notifieras n\u00e4r SCB/WorldBank publicerar ny data i deras \u00e4mnesomr\u00e5den",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-016",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "DISSG systemlogg API",
|
||
|
|
"api": "/api/dissg/log",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "Audit log \u00f6ver queries, data sources used, timestamp",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-017",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Budget comparison API",
|
||
|
|
"api": "/api/dissg/budget",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "J\u00e4mf\u00f6r statsbudgetar per land och \u00e5r. IMF + SCB data.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-018",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Education deep dive (Skolverket + PISA)",
|
||
|
|
"api": "/api/dissg/education",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Skolverket + PISA-data per land/kommun. Meritv\u00e4rde, l\u00e4rart\u00e4thet, resultat.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-019",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "DISSG API gateway med OAuth2",
|
||
|
|
"api": "/api/dissg/token",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "REST API med OAuth2 f\u00f6r enterprise-kunder. Rate limiting per tier.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "D-020",
|
||
|
|
"epic": "DISSG",
|
||
|
|
"title": "Signal\u00f6versikt (Oscilloscope) dashboard",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS/JS",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Realtids-trendvisualisering, animerad SVG, iOS Native design",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-001",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Company enrichment pipeline (B2B data)",
|
||
|
|
"api": "/api/crm/enrichment",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "Firmografisk data: org.nr \u2192 namn, VD, anst\u00e4llda, bransch, oms\u00e4ttning",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-002",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Shopify API integration",
|
||
|
|
"api": "/api/crm/shopify",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Shopify REST + GraphQL. Produkter, ordrar, kunder synkas mot CRM.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-003",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Physical mail API (PostNord/Mailing)",
|
||
|
|
"api": "/api/crm/physical-mail",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Trigga fysisk post via PostNord API som komplement till digital outreach",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-004",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Live news feed per bolag (intel-feed koppling)",
|
||
|
|
"api": "/api/crm/companies/:id/news",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "H\u00e4mta senaste nyheter om ett bolag fr\u00e5n intel-feed + Google News",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-005",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Market Pulse: branschpuls i realtid",
|
||
|
|
"api": "/api/crm/market-pulse",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Aggregera nyheter + trender per bransch. Ranking av aktualitet.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-006",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Tech Trends Cloud: teknologi-trending per bransch",
|
||
|
|
"api": "/api/crm/tech-trends",
|
||
|
|
"stack": "Python+AI",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "AI analyserar nyheter \u2192 tech-trend-ord per bransch visas som word cloud",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-007",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Smart Timing Widget: b\u00e4sta kontakttid",
|
||
|
|
"api": "/api/crm/timing/:company_id",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "AI analyserar bolagets aktivitetsm\u00f6nster \u2192 f\u00f6resl\u00e5r b\u00e4sta tid att kontakta",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-008",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Pipeline Orchestrator: auto-styr leads i pipeline",
|
||
|
|
"api": "/api/crm/pipeline/orchestrate",
|
||
|
|
"stack": "Node.js+Rules",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "Rule-based + AI: flytta leads automatiskt baserat p\u00e5 aktivitet och scoring",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-009",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "PDF outreach generation (batch)",
|
||
|
|
"api": "/api/crm/outreach/batch",
|
||
|
|
"stack": "Node.js+PDF",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Generera personaliserade PDF-erbjudanden f\u00f6r batch av bolag via AI",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-010",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Industry Relevance Matrix",
|
||
|
|
"api": "/api/crm/industries/matrix",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Matris: v\u00e5ra moduler vs kundens bransch \u2192 relevanspo\u00e4ng",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-011",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Module Package Generator",
|
||
|
|
"api": "/api/crm/packages/generate",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "AI genererar paketf\u00f6rslag baserat p\u00e5 bolagets profil + behov",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-012",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Enterprise Portal: kundvy med alla moduler",
|
||
|
|
"api": "/api/portal/enterprise",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "Kundernas self-service portal: se k\u00f6pta moduler, impact, invoice, support",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-013",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Tink PSD2 financial health analysis",
|
||
|
|
"api": "/api/banking/tink-analysis",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Tink bank-data \u2192 analysera bolags ekonomiska h\u00e4lsa f\u00f6r kreditv\u00e4rdering",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-014",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Cold cases automation",
|
||
|
|
"api": "/api/crm/cold-cases",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Automatisk reaktivering av inaktiva leads via AI-genererade meddelanden",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-015",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Auto-campaign orchestration",
|
||
|
|
"api": "/api/crm/campaigns/auto",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "AI skapar och k\u00f6r kampanjer automatiskt baserat p\u00e5 lead-segment",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-016",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Subscription pricing tiers",
|
||
|
|
"api": "/api/crm/subscriptions",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Paket och priser f\u00f6r AAMOS Pro + Ouroboros per bransch/storlek",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-017",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Financial Health Card per bolag",
|
||
|
|
"api": "/api/crm/companies/:id/financial-health",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Sammanfattning av bolags finansiella h\u00e4lsa: Tink + SCB + UC",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-018",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Problem Categories Grid (discovery)",
|
||
|
|
"api": "/api/crm/discovery/problems",
|
||
|
|
"stack": "Node.js+AI",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "AI identifierar vilka problem ett bolag troligtvis har baserat p\u00e5 bransch+storlek",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-019",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "HighEndLeads filter och scoring",
|
||
|
|
"api": "/api/crm/leads/high-end",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Filter f\u00f6r leads med h\u00f6g potential: oms\u00e4ttning, tillv\u00e4xt, tech-mognad",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "C-020",
|
||
|
|
"epic": "CRM",
|
||
|
|
"title": "Partner Dashboard f\u00f6r \u00e5terf\u00f6rs\u00e4ljare",
|
||
|
|
"api": "/api/crm/partners/dashboard",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "\u00c5terf\u00f6rs\u00e4ljares vy: sina kunder, provision, pipeline, support",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-001",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Sign in with Apple live (nycklar fr\u00e5n Johan)",
|
||
|
|
"api": "/api/auth/apple",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "APPLE_CLIENT_ID, TEAM_ID, KEY_ID, PRIVATE_KEY fr\u00e5n developer.apple.com",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-002",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "MapKit JS live (Apple Maps i AAMOS UI)",
|
||
|
|
"api": "/api/mapkit/token",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "MAPKIT_KEY_ID \u2192 maps visas i AIR dashboard och DISSG GDM",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-003",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Brave Search API live",
|
||
|
|
"api": "/api/search",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "BRAVE_API_KEY \u2192 web_search fungerar i alla AMOS-moduler",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-004",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "YouTube Data API v3 OAuth live",
|
||
|
|
"api": "/api/youtube/auth",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "YOUTUBE_REFRESH_TOKEN \u2192 auto-upload av films fr\u00e5n pipeline",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-005",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Nordea PSD2 live banking",
|
||
|
|
"api": "/api/banking/nordea",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Erik godk\u00e4nner OAuth \u2192 Nordea transaktioner live \u2192 quiXzoom payouts",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-006",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "AAMOS Pro billing: Stripe subscription",
|
||
|
|
"api": "/api/billing/pro",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Stripe subscriptions f\u00f6r AAMOS Pro 299kr/m\u00e5n och Ouroboros per modul",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-007",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Policy Intelligence module (AAMOS Pro feature)",
|
||
|
|
"api": "/api/dissg",
|
||
|
|
"stack": "Microservices",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "Exponera DISSG som AAMOS Pro feature. Gate bakom PRO-subscription.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-008",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Films module (AAMOS Pro feature)",
|
||
|
|
"api": "/api/films",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "Films pipeline = AAMOS Pro feature. Gate bakom subscription.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-009",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "AIR v1 med BLE presence detection",
|
||
|
|
"api": "/api/air/sync/ble",
|
||
|
|
"stack": "Rust+Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "BLE scanning \u2192 auto-detect enheter \u2192 Ownership Graph uppdateras",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-010",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Kvittovalvet \u2192 AIR ownership sync",
|
||
|
|
"api": "/api/air/sync/kvittovalvet",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Kvitton \u2192 match mot enhetstyp \u2192 ownership_confidence \u00f6kar automatiskt",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-011",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Waitlist \u2192 email onboarding funnel",
|
||
|
|
"api": "/api/waitlist/onboard",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "Waitlist-anm\u00e4lan \u2192 automatisk onboarding-email via Resend",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-012",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "AAMOS Pro dashboard (iOS Native)",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS/JS",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "8h",
|
||
|
|
"desc": "Komplett Pro-dashboard: alla moduler, usage, billing, settings",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-013",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "9-modells orkester AI router (f\u00f6rb\u00e4ttring)",
|
||
|
|
"api": "/api/chat",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "F\u00f6rb\u00e4ttra model-routing: Opus f\u00f6r analys, Groq f\u00f6r snabb inference, etc.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-014",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "AAMOS Pro onboarding wizard",
|
||
|
|
"api": "/api/onboarding",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Guided onboarding: v\u00e4lj moduler, connect bank, invite team, first action",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-015",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "ElevenLabs \u2192 Films live (API key i env)",
|
||
|
|
"api": "/api/films/voices",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "1h",
|
||
|
|
"desc": "L\u00e4gg ELEVENLABS_API_KEY i amos-core.service env \u2192 voices returneras",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-016",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Loopia IMAP-creds fix",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "Config",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "R\u00e4tt l\u00f6senord f\u00f6r receipts@wavult.com \u2192 reconciler slutar krascha",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-017",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "VYRA Cloudflare SSL fix",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "Infra",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "0.1h",
|
||
|
|
"desc": "Cloudflare: SSL/TLS \u2192 Full (inte Full strict) \u2192 vyra.gg live",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-018",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Gitea API token generering",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "Infra",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "0.1h",
|
||
|
|
"desc": "git.wavult.com \u2192 Settings \u2192 Token \u2192 GITEA_TOKEN i credentials.env",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-019",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "iMac Tailscale + Gitea act_runner",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "Infra",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "1h",
|
||
|
|
"desc": "brew install tailscale \u2192 rapportera IP \u2192 registrera CI runner",
|
||
|
|
"status": "blocked_external"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "A-020",
|
||
|
|
"epic": "AAMOS Pro",
|
||
|
|
"title": "Stripe reaktivering (quiXzoom payments)",
|
||
|
|
"api": "/api/billing/stripe",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "stripe-api.mjs.DECOMMISSIONED \u2192 \u00e5teraktivera \u2192 quiXzoom betalar zoomers",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-001",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Lumina Foundation landing page live",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS",
|
||
|
|
"priority": "P0",
|
||
|
|
"effort": "0.5h",
|
||
|
|
"desc": "amos.wavult.com/lumina/ \u2192 Claude Opus bygger klart \u2192 sync till public",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-002",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Lumina admin dashboard (Ouroboros Education)",
|
||
|
|
"api": "/api/ouroboros/education",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "6h",
|
||
|
|
"desc": "School registry, device fleet (AIR), student data, impact reports",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-003",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Lumina EDU-1 device MDM via AIR",
|
||
|
|
"api": "/api/air/assets",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Registrera Lumina EDU-1 enheter i AIR Ownership Graph med skolkoppling",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-004",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Impact reporting dashboard",
|
||
|
|
"api": "/api/analytics/lumina",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Learning outcomes, school attendance, device uptime per land/skola",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-005",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Partner portal (CSR/ESG-rapportering)",
|
||
|
|
"api": "/api/crm/partners",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Corporate partners ser impact av sina donationer med ESG-rapport",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-006",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Country deployment map API",
|
||
|
|
"api": "/api/lumina/map",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "GeoJSON: 12 l\u00e4nder, 1997 skolor, 398k elever, 99.6k enheter",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-007",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Curriculum content management (Academy)",
|
||
|
|
"api": "/api/aamos/academy",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Ladda upp och hantera utbildningsmaterial per land/skola",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-008",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Teacher training portal",
|
||
|
|
"api": "/api/people/training",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "L\u00e4rare onboardas, f\u00f6ljer tr\u00e4ningsprogram, certifieras",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-009",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "AAMOS Phone OS \u2192 Lumina EDU-1 konfig",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "Config",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "AAMOS Phone OS konfigureras f\u00f6r Lumina EDU-1: locked, offline-first, curriculum",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-010",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Donation tracking + fund management",
|
||
|
|
"api": "/api/finance/donations",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Donationsfl\u00f6den fr\u00e5n partners \u2192 allokering per land/projekt \u2192 transparensrapport",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-011",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Wavult Group project template live",
|
||
|
|
"api": "-",
|
||
|
|
"stack": "HTML/CSS",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "template/wavult-project.html \u2192 master-mall f\u00f6r alla Wavult-bolag",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-012",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Ouroboros Education Profile",
|
||
|
|
"api": "/api/ouroboros/profiles/education",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "F\u00f6rkonfigurerat Ouroboros-paket f\u00f6r NGO: Academy+Finance+HR+Compliance+CRM",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-013",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "DISSG \u2192 UNESCO education benchmark",
|
||
|
|
"api": "/api/dissg/education",
|
||
|
|
"stack": "Python",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Lumina impact j\u00e4mf\u00f6rs mot UNESCO SDG-4 utbildningsm\u00e5l per land",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-014",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "ESG compliance auto-rapportering",
|
||
|
|
"api": "/api/compliance/esg",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "Automatisk ESG-rapport f\u00f6r corporate partners enligt OECD-standard",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-015",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Board governance dashboard",
|
||
|
|
"api": "/api/governance",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "3h",
|
||
|
|
"desc": "7-persons board: beslut, protokoll, audit trail, transparency",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-016",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Lumina EDU-1 firmware OTA API",
|
||
|
|
"api": "/api/air/devices/:id/firmware",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Over-the-air firmware updates till Lumina-enheter via AIR",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-017",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Offline curriculum sync API",
|
||
|
|
"api": "/api/lumina/curriculum/sync",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Synka curriculum-paket till enheter n\u00e4r de \u00e4r online",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-018",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Student progress tracking (anonymiserat)",
|
||
|
|
"api": "/api/lumina/students/progress",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "4h",
|
||
|
|
"desc": "Anonymiserade l\u00e4rresultat per skola/land. GDPR-compliant.",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-019",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Solar charging station monitoring",
|
||
|
|
"api": "/api/air/assets/:id/power",
|
||
|
|
"stack": "Node.js+IoT",
|
||
|
|
"priority": "P2",
|
||
|
|
"effort": "5h",
|
||
|
|
"desc": "MQTT fr\u00e5n solpaneler \u2192 batteristatus, laddningsstatus per station",
|
||
|
|
"status": "done"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"id": "L-020",
|
||
|
|
"epic": "Lumina",
|
||
|
|
"title": "Public impact API (\u00f6ppen data)",
|
||
|
|
"api": "/api/lumina/impact/public",
|
||
|
|
"stack": "Node.js",
|
||
|
|
"priority": "P1",
|
||
|
|
"effort": "2h",
|
||
|
|
"desc": "\u00d6ppen endpoint: 250k+ studenter, 12 l\u00e4nder, 1200+ skolor (ingen auth)",
|
||
|
|
"status": "done"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"audit_started": "2026-06-05T16:20:00Z"
|
||
|
|
}
|