{"data":{"allMdx":{"edges":[{"node":{"fields":{"slug":"/"},"tableOfContents":{"items":[{"url":"#tidigare-kursomgångar","title":"Tidigare kursomgångar"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/ovningsuppgifter/02-ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#följande-krävs-för-att-kunna-göra-övningsuppgifterna","title":"Följande krävs för att kunna göra övningsuppgifterna"}]}}},{"node":{"fields":{"slug":"/ovningsuppgifter/delkurs-a"},"tableOfContents":{"items":[{"url":"#övningsuppgifter","title":"Övningsuppgifter"}]}}},{"node":{"fields":{"slug":"/ovningsuppgifter/delkurs-b"},"tableOfContents":{"items":[{"url":"#övningsuppgifter","title":"Övningsuppgifter"}]}}},{"node":{"fields":{"slug":"/samlingar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/basic-elements"},"tableOfContents":{"items":[{"url":"#headline-2","title":"Headline 2","items":[{"url":"#headline-3","title":"Headline 3","items":[{"url":"#headline-4","title":"Headline 4"}]}]}]}}},{"node":{"fields":{"slug":"/sandbox/code"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/exercise"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/frontmatter"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/hint"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/markdown-import"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/mermaid"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/tabs"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/sandbox/youtube"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/studieguide/examination"},"tableOfContents":{"items":[{"url":"#kursplan","title":"Kursplan"},{"url":"#provmoment-i-kursen","title":"Provmoment i kursen"},{"url":"#provtyper","title":"Provtyper","items":[{"url":"#onlinebaserat-test","title":"Onlinebaserat test"},{"url":"#inlämningsuppgift","title":"Inlämningsuppgift"},{"url":"#inlämningsuppgift-med-efterföljande-muntlig-examination","title":"Inlämningsuppgift med efterföljande muntlig examination"}]},{"url":"#förnyad-examination","title":"Förnyad examination"},{"url":"#vilseledande-av-examinator-vid-examination","title":"Vilseledande av examinator vid examination"}]}}},{"node":{"fields":{"slug":"/studieguide/forvantningar"},"tableOfContents":{"items":[{"url":"#kursledningen","title":"Kursledningen"},{"url":"#student","title":"Student"}]}}},{"node":{"fields":{"slug":"/studieguide"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/studieguide/kommunikationsstrategi"},"tableOfContents":{"items":[{"url":"#kursens-webbplats","title":"Kursens webbplats"},{"url":"#slack","title":"Slack"},{"url":"#mejl","title":"Mejl"}]}}},{"node":{"fields":{"slug":"/studieguide/kursledning"},"tableOfContents":{"items":[{"url":"#lärarteam","title":"Lärarteam"},{"url":"#kursansvariga","title":"Kursansvariga"},{"url":"#examinator","title":"Examinator"},{"url":"#utbildningsadministratör","title":"Utbildningsadministratör"},{"url":"#amanuenser","title":"Amanuenser"}]}}},{"node":{"fields":{"slug":"/studieguide/kursvardering"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/studieguide/larresurser"},"tableOfContents":{"items":[{"url":"#javascript-the-definitive-guide-7th-edition","title":"JavaScript: The Definitive Guide, 7th Edition"},{"url":"#engineering-software-products-an-introduction-to-modern-software-engineering","title":"Engineering Software Products: An Introduction to Modern Software Engineering"}]}}},{"node":{"fields":{"slug":"/studieguide/registrering"},"tableOfContents":{"items":[{"url":"#normal-registrering-vid-kurs","title":"Normal registrering vid kurs"},{"url":"#aktivitetskontroll","title":"Aktivitetskontroll"},{"url":"#omregistrering","title":"Omregistrering"}]}}},{"node":{"fields":{"slug":"/studieguide/valkommen"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a1"},"tableOfContents":{"items":[{"url":"#betygssättning","title":"Betygssättning","items":[{"url":"#poängrapportering-i-ladok","title":"Poängrapportering i Ladok"}]}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a2"},"tableOfContents":{"items":[{"url":"#betygssättning","title":"Betygssättning","items":[{"url":"#poängrapportering-i-ladok","title":"Poängrapportering i Ladok"}]},{"url":"#introduktion-till-uppgiften","title":"Introduktion till uppgiften"},{"url":"#guider","title":"Guider"},{"url":"#uppgiftsbeskrivning","title":"Uppgiftsbeskrivning"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b1"},"tableOfContents":{"items":[{"url":"#muntlig-examination-av-kursens-teori","title":"Muntlig examination av kursens teori"},{"url":"#betygsättning","title":"Betygsättning","items":[{"url":"#poängrapportering-i-ladok","title":"Poängrapportering i Ladok"}]},{"url":"#guider","title":"Guider"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b2"},"tableOfContents":{"items":[{"url":"#betygssättning","title":"Betygssättning","items":[{"url":"#poängrapportering-i-ladok","title":"Poängrapportering i Ladok"}]},{"url":"#guider","title":"Guider"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b3"},"tableOfContents":{"items":[{"url":"#muntlig-examination-av-kursens-teori","title":"Muntlig examination av kursens teori"},{"url":"#betygsättning","title":"Betygsättning","items":[{"url":"#poängrapportering-i-ladok","title":"Poängrapportering i Ladok"}]},{"url":"#guider","title":"Guider"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/inlamning-via-mr"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/inspelningar"},"tableOfContents":{"items":[{"url":"#kursvecka-1---nätverk","title":"Kursvecka 1 - Nätverk"},{"url":"#kursvecka-2---linuxbash","title":"Kursvecka 2 - Linux/Bash"},{"url":"#kursvecka-3---webbservrar","title":"Kursvecka 3 - Webbservrar"},{"url":"#kursvecka-4---plattformen-nodejs","title":"Kursvecka 4 - Plattformen Node.js"},{"url":"#kursvecka-5---webbsäkerhet","title":"Kursvecka 5 - Webbsäkerhet"},{"url":"#kursvecka-6---webbapplikationer-och-tjänster","title":"Kursvecka 6 - Webbapplikationer och Tjänster"}]}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/ovningar"},"tableOfContents":{"items":[{"url":"#kursvecka-2---linuxbash","title":"Kursvecka 2 - Linux/Bash"},{"url":"#kursvecka-3---webbservrar","title":"Kursvecka 3 - Webbservrar"},{"url":"#kursvecka-4---plattformen-nodejs","title":"Kursvecka 4 - Plattformen Node.js"}]}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/inspelningar"},"tableOfContents":{"items":[{"url":"#kursvecka-7---9---webbapplikationers-arkitektur","title":"Kursvecka 7 - 9 - Webbapplikationers arkitektur"},{"url":"#kursvecka-10---11---persistent-data","title":"Kursvecka 10 - 11 - Persistent data"}]}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/ovningar"},"tableOfContents":{"items":[{"url":"#kursvecka-07---09---webbapplikationers-arkitektur","title":"Kursvecka 07 - 09 - Webbapplikationers arkitektur"},{"url":"#kursvecka-10---11---persistent-data","title":"Kursvecka 10 - 11 - Persistent data"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/larmaterial"},"tableOfContents":{"items":[{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#i-litteraturen","title":"I litteraturen"},{"url":"#mdn-web-docs","title":"MDN Web Docs"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#lärmaterial","title":"Lärmaterial"},{"url":"#handledning","title":"Handledning"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/utmaningar"},"tableOfContents":{"items":[{"url":"#01-01-vilken-av-följande-alternativ-är-en-giltig-ip-adress","title":"01-01: Vilken av följande alternativ är en giltig IP-adress?"},{"url":"#01-02-vilka-av-följande-ipv4-adresser-är-privata-ip-adresser","title":"01-02: Vilka av följande IPv4-adresser är privata IP-adresser?"},{"url":"#01-03-vad-av-följande-är-sant","title":"01-03: Vad av följande är sant?"},{"url":"#01-04-vad-är-sant-om-tcp","title":"01-04: Vad är sant om TCP?"},{"url":"#01-05-vad-är-dhcp-protokollets-uppgift","title":"01-05: Vad är DHCP-protokollets uppgift?"},{"url":"#01-06-vilka-av-följande-påståenden-är-sanna-flerval","title":"01-06: Vilka av följande påståenden är sanna? (flerval)"},{"url":"#01-07-vad-beskriver-bäst-en-meddelandetyp-i-tcpip-som-sänds-från-en-sändare-till-alla-mottagare-inom-samma-lokala-sub-nät","title":"01-07: Vad beskriver bäst \"En meddelandetyp i TCP/IP som sänds från en sändare till alla mottagare inom samma lokala (sub-)nät\"?"},{"url":"#01-08-vilka-påståenden-är-korrekta-om-applikationslagret-flerval","title":"01-08: Vilka påståenden är korrekta om applikationslagret? (flerval)"},{"url":"#01-09-hur-många-steg-krävs-för-att-etablera-en-tcp-anslutning-mellan-en-klient-och-en-server","title":"01-09: Hur många steg krävs för att etablera en TCP-anslutning mellan en klient och en server?"},{"url":"#01-10-hur-förhindras-meddelanden-som-felaktigt-skickas-på-internet-från-att-cirkulera-oändligt","title":"01-10: Hur förhindras meddelanden som felaktigt skickas på internet från att cirkulera oändligt?"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/larmaterial"},"tableOfContents":{"items":[{"url":"#lärmodul---linux-och-bash-skript","title":"Lärmodul - Linux och Bash-skript"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#lärmaterial","title":"Lärmaterial"},{"url":"#övningar","title":"Övningar"},{"url":"#handledning","title":"Handledning"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-2","title":"Övningsuppgifter kursvecka 2"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/utmaningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#guider","title":"Guider"},{"url":"#utmaningar","title":"Utmaningar"},{"url":"#handledning","title":"Handledning"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/utmaningar"},"tableOfContents":{"items":[{"url":"#03-01-vad-innebär-vertikal-skalning","title":"03-01: Vad innebär vertikal skalning?"},{"url":"#03-02-på-vilka-sätt-kan-du-använda-nginx-för-din-node-applikation","title":"03-02: På vilka sätt kan du använda NGINX för din Node-applikation?"},{"url":"#03-03-vad-betyder-det-att-en-webbapplikation-är-stateful","title":"03-03: Vad betyder det att en webbapplikation är stateful?"},{"url":"#03-04-när-vi-pratar-om-webbutveckling-vad-används-ett-cdn-content-delivery-network-för","title":"03-04: När vi pratar om webbutveckling, vad används ett CDN (Content Delivery Network) för?"},{"url":"#03-05-vilket-är-det-bästa-sättet-att-identifiera-sig-när-man-skriver-en-webbskrapare","title":"03-05: Vilket är det bästa sättet att identifiera sig när man skriver en webbskrapare?"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/lasanvisningar"},"tableOfContents":{"items":[{"url":"#javascript-the-definitive-guide-7th-edition-10-sidor","title":"JavaScript: The Definitive Guide 7th Edition (~10 sidor)","items":[{"url":"#chapter-16---server-side-javascript-with-node-10-sidor","title":"Chapter 16 - Server-Side JavaScript with Node (~10 sidor)"}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#övningar","title":"Övningar"},{"url":"#handledning","title":"Handledning"},{"url":"#utmaningar","title":"Utmaningar"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-4","title":"Övningsuppgifter kursvecka 4"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/utmaningar"},"tableOfContents":{"items":[{"url":"#04-01-vilket-påstående-är-sant-om-nodejs","title":"04-01: Vilket påstående är sant om Node.js?"},{"url":"#04-02-javascript-motorn-som-används-i-nodejs-kallas","title":"04-02: JavaScript-motorn som används i Node.js kallas..."},{"url":"#04-03-i-din-packagejson-finns-ett-beroende-till-en-modul-med-versionen-102-om-du-använder-npm-install-vilken-är-den-senaste-versionen-av-alternativen-nedan-som-kan-installeras","title":"04-03: I din package.json finns ett beroende till en modul med versionen \"^1.0.2\". Om du använder \"npm install\", vilken är den senaste versionen (av alternativen nedan) som kan installeras?"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/lasanvisningar"},"tableOfContents":{"items":[{"url":"#övrigt","title":"Övrigt"},{"url":"#poddrekomendationer","title":"Poddrekomendationer","items":[{"url":"#1-bli-säker-podden---för-alla","title":"1. Bli säker-podden - För alla."},{"url":"#2-darknet-diaries---för-alla-som-gillar-deckare-och-spännande-serier","title":"2. Darknet diaries - För alla som gillar deckare och spännande serier."},{"url":"#3-security-now---för-säkerhetsnörden","title":"3. Security Now - För säkerhetsnörden."}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#handledning","title":"Handledning"},{"url":"#utmaningar","title":"Utmaningar"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-5","title":"Övningsuppgifter kursvecka 5"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/utmaningar"},"tableOfContents":{"items":[{"url":"#05-01-vad-är-standardvärdet-för-samesite-i-cookies","title":"05-01: Vad är standardvärdet för sameSite i cookies?"},{"url":"#05-02-hur-skyddar-vi-vår-applikation-mot-xss-attacker","title":"05-02: Hur skyddar vi vår applikation mot XSS-attacker?"},{"url":"#05-03-en-xss-attack-beskrivs-bäst-som","title":"05-03: En XSS-attack beskrivs bäst som"},{"url":"#05-04-när-vi-använder-en-allow-list-gör-vi","title":"05-04: När vi använder en \"allow list\", gör vi..."},{"url":"#05-05-vilken-är-den-högsta-säkerhetsrisken-i-webbapplikationer-enligt-owasp-2021","title":"05-05: Vilken är den högsta säkerhetsrisken i webbapplikationer enligt OWASP 2021?"},{"url":"#05-06-vad-används-när-vi-krypterar-kommunikationen-mellan-en-webbserver-och-dess-klienter","title":"05-06: Vad används när vi krypterar kommunikationen mellan en webbserver och dess klienter?"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#handledning","title":"Handledning"},{"url":"#examinationsuppgift-a2","title":"Examinationsuppgift A2"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/oversikt"},"tableOfContents":{"items":[{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#handledning","title":"Handledning"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-7-9","title":"Övningsuppgifter kursvecka 7-9"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/lasanvisningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#handledning","title":"Handledning"},{"url":"#examinationsuppgift-b1","title":"Examinationsuppgift B1"},{"url":"#fortsättningsregistrering","title":"Fortsättningsregistrering"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-10-11","title":"Övningsuppgifter kursvecka 10-11"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/utmaningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/lasanvisningar"},"tableOfContents":{"items":[{"url":"#engineering-software-products-an-introduction-to-modern-software-engineering-30-sidor","title":"Engineering Software Products, An Introduction to Modern Software Engineering (~30 sidor)","items":[{"url":"#chapter-7---security-and-privacy-30-sidor","title":"Chapter 7 - Security and Privacy (~30 sidor)"}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#handledning","title":"Handledning"},{"url":"#examinationsuppgift-b1","title":"Examinationsuppgift B1"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/utmaningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#handledning","title":"Handledning"},{"url":"#muntlig-examination-b1---crud","title":"Muntlig examination B1 - CRUD"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/utmaningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/lasanvisningar"},"tableOfContents":{"items":[{"url":"#engineering-software-products-an-introduction-to-modern-software-engineering-30-sidor","title":"Engineering Software Products, An Introduction to Modern Software Engineering (~30 sidor)","items":[{"url":"#chapter-5---cloud-based-software-8-sidor","title":"Chapter 5 - Cloud-Based Software (~8 sidor)"},{"url":"#chapter-6---microservice-architecture-22-sidor","title":"Chapter 6 - Microservice Architecture (~22 sidor)"}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/oversikt"},"tableOfContents":{"items":[{"url":"#händer-i-veckan","title":"Händer i veckan"},{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#stödjande-inspelningar","title":"Stödjande inspelningar"},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#handledning","title":"Handledning"},{"url":"#inlämning-b2---realtime-web-application","title":"Inlämning, B2 - Realtime Web Application"},{"url":"#arbete-b3---picture-it","title":"Arbete, B3 - Picture It"},{"url":"#studiefrågor","title":"Studiefrågor"},{"url":"#tips","title":"Tips"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/utmaningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20/oversikt"},"tableOfContents":{"items":[{"url":"#stå-upp-vlogg","title":"\"Stå-upp\"-vlogg"},{"url":"#handledning","title":"Handledning"},{"url":"#inlämning-b3---picture-it","title":"Inlämning, B3 - Picture It"}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/kom-igang"},"tableOfContents":{"items":[{"url":"#kom-igång-med-uppgiften","title":"Kom igång med uppgiften"},{"url":"#arbetsgång-med-examinationsuppgiften","title":"Arbetsgång med examinationsuppgiften","items":[{"url":"#köra-din-kod","title":"Köra din kod"},{"url":"#kodstandard","title":"Kodstandard"}]}]}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/mr"},"tableOfContents":{"items":[{"url":"#förberedelse","title":"Förberedelse"},{"url":"#skapa-en-ny-merge-request","title":"Skapa en ny Merge Request"},{"url":"#fyll-i-formuläret-new-merge-request","title":"Fyll i formuläret \"New Merge Request\""},{"url":"#genomför-inlämningen","title":"Genomför inlämningen"},{"url":"#buggfixar-med-mera-efter-inlämning","title":"Buggfixar med mera efter inlämning"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#tcpip---introduktion-till-datorkommunikation","title":"TCP/IP - Introduktion till datorkommunikation"},{"url":"#tcpip---några-protokoll","title":"TCP/IP - Några protokoll"},{"url":"#hårdvara-till-mjukvara","title":"Hårdvara till mjukvara"},{"url":"#http","title":"HTTP"},{"url":"#dns","title":"DNS"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/inspelningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/_old/ovningsuppgifter"},"tableOfContents":{"items":[{"url":"#övningsuppgifter-kursvecka-3","title":"Övningsuppgifter kursvecka 3"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/00-prerequisites"},"tableOfContents":{"items":[{"url":"#prerequisites","title":"Prerequisites","items":[{"url":"#secrets-project","title":"Secrets-project"},{"url":"#vpn-virtual-private-network","title":"VPN (Virtual Private Network)"}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/01-connect"},"tableOfContents":{"items":[{"url":"#useful-commands","title":"Useful commands"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/02-update"},"tableOfContents":{"items":[{"url":"#useful-commands","title":"Useful commands"},{"url":"#useful-links","title":"Useful links"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/03-NGINX"},"tableOfContents":{"items":[{"url":"#useful-commands","title":"Useful commands"},{"url":"#usuful-paths","title":"Usuful paths"},{"url":"#useful-links","title":"Useful links"},{"url":"#template","title":"Template"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/05-http2"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/kom-igang"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/08-run"},"tableOfContents":{"items":[{"url":"#1---install-docker","title":"1 - Install Docker"},{"url":"#2---start-the-application","title":"2 - Start the application"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/04-https"},"tableOfContents":{"items":[{"url":"#useful-links","title":"Useful links"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/06-PM2"},"tableOfContents":{"items":[{"url":"#useful-commands","title":"Useful commands"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/09-troubleshoot"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cumulus"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#webbservrar","title":"Webbservrar"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cumulus/your-first-cumulus-virtual-personal-server"},"tableOfContents":{"items":[{"url":"#what-is-cumulus","title":"What is Cumulus?"},{"url":"#step-1-verify-ssh-availability","title":"Step 1: Verify SSH Availability"},{"url":"#step-2-download-your-identity-file-from-gitlab","title":"Step 2: Download Your Identity File from GitLab"},{"url":"#step-3-create-the-ssh-directory","title":"Step 3: Create the .ssh Directory"},{"url":"#step-4-move-the-identity-file-to-ssh-directory","title":"Step 4: Move the Identity File to .ssh Directory"},{"url":"#step-5-set-correct-permissions-on-the-identity-file","title":"Step 5: Set Correct Permissions on the Identity File"},{"url":"#step-4-update-package-lists","title":"Step 4: Update Package Lists"},{"url":"#step-5-install-nodejs-and-npm","title":"Step 5: Install Node.js and npm"},{"url":"#step-6-install-and-start-nginx","title":"Step 6: Install and Start nginx"},{"url":"#step-7-verify-nginx-in-your-browser","title":"Step 7: Verify nginx in Your Browser"},{"url":"#step-8-request-and-install-a-tls-certificate-from-lnu-ftk-campus-ca","title":"Step 8: Request and Install a TLS Certificate from LNU FTK Campus CA"},{"url":"#step-9-configuring-automatic-certificate-renewal","title":"Step 9: Configuring Automatic Certificate Renewal","items":[{"url":"#how-automatic-renewal-works","title":"How Automatic Renewal Works"},{"url":"#1-configure-certbot-for-the-campus-ca-one-time-setup","title":"1. Configure Certbot for the Campus CA (One-time setup)","items":[{"url":"#1-create-a-drop-in-directory","title":"1. Create a drop-in directory"},{"url":"#2-create-the-drop-in-configuration-file","title":"2. Create the drop-in configuration file"}]},{"url":"#2-reload-systemd-and-test-renewal","title":"2. Reload systemd and test renewal"},{"url":"#3-verify-automatic-renewal-is-scheduled","title":"3. Verify automatic renewal is scheduled"},{"url":"#4-verify-renewal-results","title":"4. Verify renewal results"}]},{"url":"#step-10-trust-the-ca-in-your-browser","title":"Step 10: Trust the CA in Your Browser","items":[{"url":"#1-download-the-root-ca","title":"1. Download the Root CA"},{"url":"#2-import-the-certificate","title":"2. Import the Certificate","items":[{"url":"#google-chrome--safari-uses-macos-keychain","title":"Google Chrome / Safari (uses macOS Keychain)"},{"url":"#mozilla-firefox-separate-certificate-store","title":"Mozilla Firefox (separate certificate store)"},{"url":"#google-chrome","title":"Google Chrome"},{"url":"#mozilla-firefox","title":"Mozilla Firefox"},{"url":"#google-chrome-1","title":"Google Chrome"},{"url":"#mozilla-firefox-1","title":"Mozilla Firefox"}]},{"url":"#3-restart-your-browser","title":"3. Restart Your Browser"}]},{"url":"#step-11-verify-https-in-your-browser","title":"Step 11: Verify HTTPS in Your Browser"},{"url":"#step-12-secure-nginx-configuration","title":"Step 12: Secure nginx Configuration"},{"url":"#step-13-create-your-own-static-website","title":"Step 13: Create Your Own Static Website"},{"url":"#step-14-create-and-deploy-an-express-application","title":"Step 14: Create and Deploy an Express Application","items":[{"url":"#option-a-clone-from-gitlab-recommended","title":"Option A: Clone from GitLab (Recommended)"},{"url":"#option-b-create-from-scratch-fallback","title":"Option B: Create from Scratch (Fallback)"},{"url":"#configure-nginx-as-reverse-proxy","title":"Configure nginx as Reverse Proxy"}]},{"url":"#step-15-install-and-configure-pm2-process-manager","title":"Step 15: Install and Configure PM2 Process Manager","items":[{"url":"#monitor-your-applications","title":"Monitor Your Applications"},{"url":"#-what-youve-accomplished","title":"✅ What You've Accomplished"},{"url":"#️-key-benefits-of-using-pm2","title":"🗝️ Key Benefits of Using PM2"}]},{"url":"#whats-next","title":"What's Next?"},{"url":"#summary-your-server-stack","title":"Summary: Your Server Stack"},{"url":"#common-issues-and-solutions","title":"Common Issues and Solutions","items":[{"url":"#ssh-connection-problems","title":"SSH Connection Problems"},{"url":"#nginx-issues","title":"nginx Issues"},{"url":"#pm2-problems","title":"PM2 Problems"},{"url":"#ssl-certificate-issues","title":"SSL Certificate Issues"}]}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#plattformen-nodejs","title":"Plattformen Node.js"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#webbsäkerhet","title":"Webbsäkerhet"},{"url":"#owasp-top-10---2021","title":"OWASP Top 10 - 2021"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#webbapplikationer-och-tjänster","title":"Webbapplikationer och tjänster"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07-09/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#nodejsexpress---webbapplikationsramverket-express-i-nodejs","title":"Node.js/Express - Webbapplikationsramverket Express i Node.js"},{"url":"#nodejsexpress---en-översikt-över-din-första-expressapplikation","title":"Node.js/Express - En översikt över din första Expressapplikation"},{"url":"#nodejsexpress---din-första-expressapplikation","title":"Node.js/Express - Din första expressapplikation"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#persistent-data---databaser","title":"Persistent data - Databaser"},{"url":"#persistent-data---crud","title":"Persistent data - CRUD"},{"url":"#sessioner","title":"Sessioner"},{"url":"#prg","title":"PRG"},{"url":"#exempel---just-task-it","title":"Exempel - Just Task It"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10-11/resurser/ovningar"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12-13/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#access-control","title":"Access Control"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14-15/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#realtidsapplikationer","title":"Realtidsapplikationer"},{"url":"#exempel---just-task-it-featuring-websocket","title":"Exempel - Just Task It featuring WebSocket"},{"url":"#exempel---just-task-it-featuring-webhook-and-websocket","title":"Exempel - Just Task It featuring Webhook and WebSocket"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16-19/resurser/inspelningar"},"tableOfContents":{"items":[{"url":"#rest","title":"REST"},{"url":"#rest---authautz-incl-jwt","title":"REST - Auth/Autz incl. JWT"}]}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/cscloud/07-files"},"tableOfContents":{"items":[{"url":"#using-secure-copy-filezilla-or-vscode","title":"...using secure copy, FileZilla or VSCode"},{"url":"#useful-links","title":"Useful links"}]}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a"},"tableOfContents":{}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/muntlig-examination"},"tableOfContents":{"items":[{"url":"#campus","title":"Campus"},{"url":"#distans","title":"Distans"}]}}}]}}}