Göm menyn

TDP013 Webbprogrammering och interaktivitet

Node.js, Mocha & MongoDB


Lärandemål

Från kursplanen: Länk till kursplan

  • Skapa avancerade webbsidor som inkluderar dynamiska information, interaktivitet och databasanslutning.
  • Använda programmeringsspråk som JavaScript och PHP för att skapa interaktivt webbinnehåll.

Programmål - Innovativ Programmering

Från programplanen: Länk till programplanen

  • 1. hantverk: den (ofta tysta) kunskap och individuell förmåga som studenten bygger upp genom att arbeta praktiskt med programmering, själv, i projekt och i community. Här betonas både att arbeta innovativt och mot beställare.
  • 3. teknik: kunnande om den teknik som finns för programmering och datorer, med fokus på programmeringsspråk och plattformar.

Examensmål - Kandidatexamen

Från Högskoleförordningen (1993:100): Länk till förordningen

  • visa kunskap och förståelse inom huvudområdet för utbildningen, inbegripet kunskap om områdets vetenskapliga grund, kunskap om tillämpliga metoder inom området, fördjupning inom någon del av området samt orientering om aktuella forskningsfrågor.
  • visa förmåga att söka, samla, värdera och kritiskt tolka relevant information i en problemställning samt att kritiskt diskutera företeelser, frågeställningar och situationer
  • visa förmåga att självständigt identifiera, formulera och lösa problem samt att genomföra uppgifter inom givna tidsramar

Syfte

Studenterna skapar en backend med Node.js och MongoDB för sina Twitterliknande klienter från laboration 1. I denna laboration skall inte backend-delen kopplas samman med klienten, men backenden skall fungera och testas med Mocha enligt kraven nedan.

Genomförande

Laborationen genomförs i par enligt webreg. Studenterna ansvarar själva för att installera nödvändig programvara för att utveckla med Node.js, Mocha och MongoDB.

Krav

  • Installation av Node.js, NPM, Mocha, JSCoverage och MongoDB
  • Det skall finnas möjlighet att via ett HTTP anrop till den utvecklade Node.js applikationen spara ett nytt meddelande i MongoDB.
  • Det skall finnas möjlighet att via ett HTTP anrop till den utvecklade Node.js applikationen markera ett meddelande som läst i MongoDB.
  • Det skall finnas möjlighet att via ett HTTP anrop till den utvecklade Node.js applikationen hämta alla meddelanden som har sparats i MongoDB (returneras som JSON).
  • Alla funktioner skall testas med Mocha. Tänk på att använda JSCoverage så att ni får code-coverage rapporter.
  • Om anropet inte mappar mot en funktion skall HTTP 404 returneras.
  • Om anropet använder fel metod skall HTTP 405 returneras.
  • Om anropet använder felaktiga eller saknar parameterar skall HTTP 400 returneras.
  • Vid alla andra fel returneras HTTP 500.
  • Alla anrop till Node.js skall ske enligt specifikation 1.

Reflektionsfrågor

Dessa reflektionsfrågor skall ni tillsammans reflektera över och muntligt presentera för er assistent.

  • Hur svårt var det att hitta och installera den mjukvara som behövdes för att genomföra laborationen?
  • Hur känns det att hela tiden arbeta med callbacks?
  • Hur stor nytta hade ni av code-coverage?
  • Vilka funderingar har ni kring systemet att spara data i JSON objekt i classifications jämfört med tabeller och kolumner?

Redovisning

  1. Skapa en zip fil med alla relevanta filer för laborationen (inkl. test).
  2. Placera filen i er www-pub mapp
  3. Maila en direkt länk till er laborationsassistent
Vid nästa laborationstillfälle kan ni då muntligt redovisa er laboration.

Deadline: Fredag 26:e September 2014 - 17:00 CEST

Specifikation 1

Funktion Anrop Metod Parameter Returvärde
Spara meddelanden /save GET Meddelande max 140 tecken HTTP 200
Markera som läst /flag GET ID HTTP 200
Hämta alla meddelanden /getall GET [{id: '47cc67093475061e3d95369d', message: 'meddelande', flag: false}, {'id': '875a47093475061e3d95369d', message: 'message', flag: true}, ...]

Sidansvarig: infomaster
Senast uppdaterad: 2014-08-21