{
  "course_id": "mmp2-2026",
  "course_name": "Multimedieproduktion 2",
  "weeks": [
    {
      "week_number": 5,
      "week_label": "Fra statisk til dynamisk",
      "is_current": false,
      "days": [
        {
          "day_name": "Torsdag",
          "date": "2026-01-29",
          "items": [
            { "id": "v5-1", "type": "video", "title": "Intro - Statisk til dynamisk", "url": "", "tags": ["Vue", "Intro"] },
            { "id": "v5-2", "type": "video", "title": "Templates", "url": "", "tags": ["Vue", "HTML"] },
            { "id": "v5-3", "type": "video", "title": "Javascript Frameworks", "url": "", "tags": ["JS", "Frameworks"] },
            { "id": "l5-1", "type": "lecture", "title": "Section: Torsdag | 2. Semester: Fra statisk til dynamisk", "content_html": "<p>Vi starter rejsen fra statiske HTML-sider til dynamiske web-applikationer. Vi kigger på hvorfor frameworks som Vue er relevante i moderne multimedieproduktion.</p>", "tags": ["Teori"] },
            { "id": "v5-4", "type": "video", "title": "Intro til vue", "url": "", "tags": ["Vue"] },
            { "id": "v5-5", "type": "video", "title": "Reactivity", "url": "", "tags": ["Vue", "Data"] },
            { "id": "f5-1", "type": "file", "title": "Vue starter (HTML fil)", "url": "", "tags": ["Code"] },
            { "id": "v5-6", "type": "video", "title": "Events & methods", "url": "", "tags": ["Vue", "Interaktion"] },
            {
              "id": "a5-1", "type": "assignment", "title": "Opgave: Vælg stemning",
              "content_html": "<h3>Krav</h3><p>Brug starterfilen og prøv at genskabe kommentareksemplet fra videoerne. Vis én enkelt kommentar på siden (brug samme struktur som i videoen: fx article, header, main osv.).</p><ul><li>Et navn (fx “Katrine”)</li><li>En tekst</li><li>Tilføj tre knapper øverst: 😠 Vred, 😊 Glad, 😢 Ked af det</li></ul><h3>Funktionalitet</h3><p>Når man klikker på en af knapperne, skal teksten i kommentaren ændre sig og passe til den valgte stemning. Det er stadig den samme kommentar, vi ændrer bare teksten dynamisk. Formålet er at prøve at bruge starter filen, skrive jeres første template og bruge @click.</p>",
              "is_completed": false, "tags": ["Vue", "Events", "Interaktion"]
            }
          ]
        },
        {
          "day_name": "Fredag",
          "date": "2026-01-30",
          "items": [
            {
              "id": "l5-2", "type": "lecture", "title": "Fra brandguide til designprincipper – introduktion til systemtænkning",
              "content_html": "<h3>Formål</h3><p>At introducere arbejdet med design systemer gennem en konkret og realistisk case. De studerende skal opnå forståelse for, hvordan en brandguide kan oversættes til styrende designprincipper, som danner fundamentet for opbygningen af et konsistent og skalerbart digitalt design system.</p><h3>Overblik</h3><ul><li>09.00 – Velkomst og intro til forløbet i Tema 1</li><li>09.20 – Oplæg: Intro til casen: SEA</li><li>09.50 – Opgave 1: Fra brandguide til designprincipper – i grupper</li><li>11.15 – Intro til Figma arbejdet</li><li>12.00 – Opgave 2: Designprincipper i Figma</li></ul>",
              "tags": ["Design System", "SEA", "Teori"]
            },
            { "id": "f5-2", "type": "file", "title": "Slides: Fra brandguide til designprincipper", "url": "", "tags": ["Slides"] },
            { "id": "f5-3", "type": "file", "title": "SEA Brandguide 1,1 december 2025", "url": "", "tags": ["Branding", "SEA"] },
            {
              "id": "a5-2", "type": "assignment", "title": "Opgave 1: Fra brandguide til designprincipper",
              "content_html": "<h3>Opgavebeskrivelse</h3><p>I skal arbejde med SEA-brandguiden og formulere 1–2 designprincipper, som er centrale for SEA’s digitale udtryk. Designprincipperne skal være overordnede designholdninger, udledt direkte af brandguiden og formuleret i jeres eget sprog.</p><h3>Gruppeinddeling og fokusområder</h3><ul><li><strong>Gruppe 1 – Brand, tone og brugerrelation:</strong> Fokus på SEA’s brandidentitet (Sider 2-3, 12-13).</li><li><strong>Gruppe 2 – Visuel prioritering og farvebrug:</strong> Fokus på SEA rød, støttefarver og white space (Sider 7-8, 12-13).</li><li><strong>Gruppe 3 – Typografi, hierarki og læsbarhed:</strong> Fokus på typografisk struktur (Side 9, 12-13).</li><li><strong>Gruppe 4 – Former, visuelle greb og systematik:</strong> Fokus på cirkler og logoets formsprog (Sider 4-5, 10, 12-13).</li></ul>",
              "is_completed": false, "tags": ["SEA", "Workshop", "Analyse"]
            },
            {
              "id": "a5-3", "type": "assignment", "title": "Opgave 2: Design Principles side i Figma",
              "content_html": "<h3>Formål</h3><p>At forankre de fælles designprincipper i et konkret format i Figma, som fungerer som referencepunkt for det videre arbejde.</p><h3>Krav til siden</h3><ul><li>Indeholde de fælles designprincipper med korte forklaringer.</li><li>Være let at forstå for andre.</li><li>Bruge simple visuelle virkemidler (farver, typografi, former) til at understøtte indholdet.</li></ul><p>Fokus er på klarhed og anvendelighed – ikke på æstetisk finish.</p>",
              "is_completed": false, "tags": ["Figma", "Dokumentation"]
            }
          ]
        }
      ]
    },
    {
      "week_number": 6,
      "week_label": "Vue Logik & Figma Foundations",
      "is_current": false,
      "days": [
        {
          "day_name": "Mandag",
          "date": "2026-02-02",
          "items": [
            { "id": "v6-1", "type": "video", "title": "▶️ Løsning på opgaven (fra uge 5)", "url": "", "tags": ["Vue", "Review"] },
            { "id": "v6-2", "type": "video", "title": "▶️ Opsamling (uge 5)", "url": "", "tags": ["Vue"] },
            { "id": "v6-3", "type": "video", "title": "▶️ Conditionals", "url": "", "tags": ["Vue", "Logik"] },
            { "id": "f6-1", "type": "file", "title": "📄 Vue Starter (2.0)", "url": "", "tags": ["Code"] },
            {
              "id": "a6-1", "type": "assignment", "title": "Opgave: Produktside med lagerstatus",
              "content_html": "<h3>Hvad vi vil bygge</h3><p>En produktside med: Produktnavn (fx “T-Shirt”), Farve, Pris (fx 179 DKK), Lagerindikator og en “Køb nu”-knap.</p><h3>Funktionalitet</h3><ul><li><strong>Lagerstatus:</strong> Definér antal i data (start med 5). Brug v-if til at vise grøn indikator (hvis > 0) eller rød indikator + 'Udsolgt' (hvis = 0).</li><li><strong>Køb-knap:</strong> Ved klik skal lagerantal falde med 1, og siden skal opdatere automatisk.</li></ul>",
              "is_completed": false, "tags": ["Vue", "Opgave"]
            },
            { "id": "v6-4", "type": "video", "title": "▶️ Lister (arrays)", "url": "", "tags": ["Vue"] },
            { "id": "v6-5", "type": "video", "title": "▶️ Lister (objekter)", "url": "", "tags": ["Vue"] },
            { "id": "v6-6", "type": "video", "title": "▶️ Lister kombineret (arrays + objekter)", "url": "", "tags": ["Vue"] },
            { "id": "v6-7", "type": "video", "title": "▶️ Loops", "url": "", "tags": ["Vue"] },
            { "id": "v6-8", "type": "video", "title": "▶️ Opsamling", "url": "", "tags": ["Vue"] },
            {
              "id": "a6-2", "type": "assignment", "title": "Opgave 2: Vælg størrelse",
              "content_html": "<h3>Funktionalitet</h3><p>Opret en liste med størrelses-objekter (Navn, Antal på lager). Når man klikker på en størrelse, skal den valgte størrelse gemmes i data, og lagerindikatoren skal opdatere sig automatisk baseret på den specifikke størrelse.</p><p><em>Tip: Vi skal bruge function parameters for at give funktionen det korrekte antal fra listen.</em></p>",
              "is_completed": false, "tags": ["Vue", "Advanced"]
            }
          ]
        },
        {
          "day_name": "Tirsdag",
          "date": "2026-02-03",
          "items": [
            {
              "id": "a6-3", "type": "assignment", "title": "Selvstændig opgave: Loops in loops",
              "content_html": "<h3>Opgavebeskrivelse</h3><p>Byg en kategoriside med en liste af produkter. I får udleveret data med produkter (T-Shirt, Hoodie, Jeans, Sneakers osv.), som hver indeholder arrays for både størrelser og farver. Brug v-for til at loope igennem produkterne, og derefter loops inde i loopet til at vise de tilgængelige valgmuligheder.</p>",
              "is_completed": false, "tags": ["Vue", "Nested Loops"]
            }
          ]
        },
        {
          "day_name": "Onsdag",
          "date": "2026-02-04",
          "items": [
            {
              "id": "l6-3", "type": "lecture", "title": "📅 I dag: Fra designprincipper til systemstruktur",
              "content_html": "<h3>Formål</h3><p>I dag arbejder vi med foundations i et design system. Formålet er at omsætte SEA’s design principles til konkrete designbeslutninger om farver, typografi og struktur for at skabe et fælles visuelt fundament.</p><h3>Overblik</h3><ul><li>09.00 – Fælles opstart</li><li>10.15 – Overgang: Fra principles til foundations</li><li>🧱 Foundations: Color & Typography</li></ul>",
              "tags": ["Design System", "Teori"]
            },
            { "id": "v6-9", "type": "video", "title": "▶️ See video: Welcome to design systems - Lesson 1", "url": "", "tags": ["Figma"] },
            { "id": "v6-10", "type": "video", "title": "▶️ Se videoen: Design System 101: free Beginner Figma Tutorial", "url": "", "tags": ["Figma"] },
            { "id": "v6-11", "type": "video", "title": "▶️ Se videoen: Define your design system's principles", "url": "", "tags": ["Figma"] },
            { "id": "v6-12", "type": "video", "title": "▶️ Se videoen: Define your design system's foundations", "url": "", "tags": ["Figma"] },
            { "id": "f6-3", "type": "file", "title": "🔗 Open Design Systems on Figma Community", "url": "", "tags": ["Link"] },
            { "id": "f6-4", "type": "file", "title": "🔗 Figma ressource - Build design systems", "url": "", "tags": ["Link"] },
            {
              "id": "a6-4", "type": "assignment", "title": "Opgave 1: SEA Design Principles → i praksis",
              "content_html": "<h3>Trin for trin</h3><p>Indsæt alle SEA’s design principles fra sidste undervisning. For hvert princip skal I vise ét konkret eksempel på, hvordan det kan se ud i praksis (f.eks. et UI-udsnit eller en simpel wireframe). Forklar kort koblingen: hvordan understøtter eksemplet princippet?</p>",
              "is_completed": false, "tags": ["Figma", "Workshop"]
            },
            {
              "id": "l6-4", "type": "lecture", "title": "🎨 Foundation 1 – Color & 🔤 Typography",
              "content_html": "<p>Farver i et design system handler om funktion, hierarki og tilgængelighed. Vi definerer farver ud fra roller (Primary, Secondary, Neutral, Feedback). Typografi skal sikre hierarki og læsbarhed på tværs af skærmstørrelser.</p>",
              "tags": ["Foundations", "UX"]
            }
          ]
        },
        {
          "day_name": "Torsdag",
          "date": "2026-02-05",
          "items": [
            { "id": "v6-13", "type": "video", "title": "▶️ Løsning - lagerstatus opgave", "url": "", "tags": ["Vue"] },
            { "id": "v6-14", "type": "video", "title": "▶️ Løsning - Loops in Loops opgave", "url": "", "tags": ["Vue"] },
            { "id": "v6-15", "type": "video", "title": "▶️ Function parameters", "url": "", "tags": ["JS"] },
            { "id": "v6-16", "type": "video", "title": "▶️ Ekstern data & fetch", "url": "", "tags": ["Vue"] },
            { "id": "v6-17", "type": "video", "title": "▶️ Array push", "url": "", "tags": ["JS"] },
            {
              "id": "a6-5", "type": "assignment", "title": "Opgave: Kommentarsektion",
              "content_html": "<h3>Beskrivelse</h3><p>Kombiner fetch (fra comments.json), loops, v-model og @click til at gennemskabe en kommentarsektion. Like-knappen skal bare vises (behøver ikke fungere).</p>",
              "is_completed": false, "tags": ["Vue", "Fetch"]
            },
            {
              "id": "a6-6", "type": "assignment", "title": "Opgave 2: Spot fejlene (debugging)",
              "content_html": "<h3>Beskrivelse</h3><p>Find og ret fejlene i de udleverede filer (score-tracker, inkøb, menu, productlist). <strong>Tips:</strong> Åbn Console (F12), forklar koden for en anden, og vær opmærksom på røde linjer i VS Code.</p>",
              "is_completed": false, "tags": ["Debugging", "JS"]
            },
            { "id": "f6-7", "type": "file", "title": "📄 score-tracker.html", "url": "", "tags": ["Code"] },
            { "id": "f6-8", "type": "file", "title": "📄 inkøb.html", "url": "", "tags": ["Code"] },
            { "id": "f6-9", "type": "file", "title": "📄 menu.html", "url": "", "tags": ["Code"] }
          ]
        },
        {
          "day_name": "Fredag",
          "date": "2026-02-06",
          "items": [
            {
              "id": "l6-5", "type": "lecture", "title": "📚 Forberedelse: Arbejde videre med SEA Design System",
              "content_html": "<p>Inden undervisningen skal jeres Figma-fil indeholde: Design Principles side med visualiseringer og Foundations side med navngivne farver (Primary, Secondary, Neutral) og typografi (Headings, Body, Small) oprettet som Styles.</p>",
              "tags": ["Forberedelse"]
            },
            { "id": "v6-18", "type": "video", "title": "▶️ [04:22] Figma tutorial: Components - The Basics", "url": "", "tags": ["Figma"] },
            {
              "id": "a6-7", "type": "assignment", "title": "Opgave: Design et SEA UI-component",
              "content_html": "<h3>Uddannelsescard</h3><p>Design et uddannelsescard, der indeholder: Navn, kort beskrivelse, praktisk info (varighed, start), CTA og evt. et foto. <strong>Krav:</strong> Skal bygges med Auto Layout og jeres Styles. Inkludér SEA's grafiske cirkler som visuel accent.</p>",
              "is_completed": false, "tags": ["Figma", "UI"]
            }
          ]
        }
      ]
    },
    {
      "week_number": 8,
      "week_label": "API & Avancerede Komponenter",
      "is_current": true,
      "days": [
        {
          "day_name": "Mandag",
          "date": "2026-02-16",
          "items": [
            { "id": "v8-1", "type": "video", "title": "▶️ Synkron og Asynkron", "url": "", "tags": ["JS"] },
            { "id": "v8-2", "type": "video", "title": "▶️ API´s (ekstern data)", "url": "", "tags": ["Vue"] },
            {
              "id": "a8-1", "type": "assignment", "title": "Opgave 1: Hent data og vis oversigt",
              "content_html": "<p>Fetch blogposts fra API'et. Gem i en variabel og brug v-for til at vise billede, titel, forfatter og metadata (likes/views). Lav en 'Læs mere' begrænsning på 100 tegn vha. slice.</p>",
              "is_completed": false, "tags": ["API", "Vue"]
            },
            {
              "id": "a8-2", "type": "assignment", "title": "Opgave 2: Vis et blogpost (Boolean logik)",
              "content_html": "<p>Brug showDetails (boolean) og v-if til at skifte mellem oversigten og en detaljeret visning af ét indlæg med fuld brødtekst og kommentarer.</p>",
              "is_completed": false, "tags": ["Logik", "Vue"]
            }
          ]
        },
        {
          "day_name": "Onsdag",
          "date": "2026-02-18",
          "items": [
            { "id": "v8-3", "type": "video", "title": "▶️ Creating components - af Figma", "url": "", "tags": ["Figma"] },
            { "id": "v8-4", "type": "video", "title": "▶️ Variants - af Figma", "url": "", "tags": ["Figma"] },
            { "id": "v8-5", "type": "video", "title": "▶️ Figma Tutorial: Master Figma Components and Variants", "url": "", "tags": ["Figma"] },
            {
              "id": "a8-3", "type": "assignment", "title": "Opgave 1: Systematisér uddannelsescard (Variants)",
              "content_html": "<p>Gå fra et 'designet element' til et 'struktureret system-element'. Opret variants for Default og Hover states. Navngivning: Card / Education. Property: State.</p>",
              "is_completed": false, "tags": ["Figma", "Design System"]
            },
            {
              "id": "a8-4", "type": "assignment", "title": "Opgave 2: Primary Button variant",
              "content_html": "<p>Design en Primary Button med states: Default, Hover og Disabled. Brug Auto Layout og jeres Styles. Navngivning: Button / Primary.</p>",
              "is_completed": false, "tags": ["Figma", "UI"]
            }
          ]
        },
        {
          "day_name": "Torsdag",
          "date": "2026-02-19",
          "items": [
            { "id": "v8-6", "type": "video", "title": "▶️ Løsning til API opgaven", "url": "", "tags": ["Review"] },
            { "id": "f8-1", "type": "file", "title": "📄 notifications.json", "url": "", "tags": ["Data"] },
            {
              "id": "a8-5", "type": "assignment", "title": "Opgave 1-3: Notifikations-oversigt",
              "content_html": "<h3>Interaktivitet</h3><p>Byg en liste fra notifications.json. Implementér: 1. Skift mellem læst/ulæst ved klik vha. dynamisk class binding. 2. Filtrering (Alle, Ulæste, Læste) vha. currentFilter property.</p>",
              "is_completed": false, "tags": ["Vue", "Interaktion"]
            },
            {
              "id": "a8-6", "type": "assignment", "title": "Opgave 4: Udfold preview (Progressive Disclosure)",
              "content_html": "<p>Brug v-if til at udfolde preview-teksten, når man klikker på en notifikation. Sikre at kun notifikationer med preview viser klik-muligheden.</p>",
              "is_completed": false, "tags": ["UX", "Vue"]
            }
          ]
        },
        {
          "day_name": "Fredag",
          "date": "2026-02-20",
          "items": [
            { "id": "v8-7", "type": "video", "title": "▶️ Video: Let's make a bouncy accordion in Figma", "url": "", "tags": ["Animation"] },
            { "id": "v8-8", "type": "video", "title": "▶️ Video: Ultimate Guide to Figma Components", "url": "", "tags": ["Figma"] },
            { "id": "v8-9", "type": "video", "title": "▶️ Video: Creating Interactive Accordion in Figma", "url": "", "tags": ["Figma"] },
            {
              "id": "a8-7", "type": "assignment", "title": "Opgave 1: Udvikling af accordionkomponent",
              "content_html": "<h3>Krav til opbygning</h3><ul><li><strong>Struktur:</strong> Header (titel+ikon) og Content-container.</li><li><strong>Logik:</strong> Skal bygges med Auto Layout så indholdet skubber hinanden korrekt.</li><li><strong>Variants:</strong> Closed, Open og Hover states.</li></ul>",
              "is_completed": false, "tags": ["Figma", "UI"]
            },
            {
              "id": "a8-8", "type": "assignment", "title": "Opgave 2: Gør komponenten interaktiv",
              "content_html": "<p>Brug 'Change to Variant' i Figma Prototype mode. Hele headeren skal være klikbar. Brug evt. Smart Animate (200-300ms) for blød overgang.</p>",
              "is_completed": false, "tags": ["Prototyping", "Figma"]
            },
            {
              "id": "l8-6", "type": "lecture", "title": "📅 Projektintroduktion: Redesign af LMS",
              "content_html": "<p>Gennemgang af uge 9 projektet. I skal implementere en forbedret kursusoversigt i Vue baseret på SEA design systemet. Fokus er på visuel scannability og progressive disclosure.</p>",
              "tags": ["Projekt"]
            }
          ]
        }
      ]
    }
  ]
}