• kth.se
  • Studentwebben
  • Intranät
  • kth.se
  • Studentwebben
  • Intranät
Logga in
DD1386 HT23/VT24 (intneti24)
Projekt
Hoppa över till innehåll
Översikt
  • Logga in
  • Översikt
  • Kalender
  • Inkorg
  • Historik
  • Hjälp
Stäng
  • Min översikt
  • DD1386 HT23/VT24 (intneti24)
  • Uppgifter
  • Projekt
2023 HT
  • Startsida
  • Kursöversikt
  • Course Evaluation

Projekt

  • Inlämningsdatum Inget inlämningsdatum
  • Poäng 0

Någon av följande uppgifter med teknik som tagits upp under kursen (NodeJS, Vue) för att generera dynamiska webbsidor.

Välj ett av följande projektförslag:

  • Online Schack: Spela 2 spelare mot varandra över nätet.
    • Inkludera ett lobby system. Där användare kan skapa en ny match, samt gå med i redan skapade matcher.
  • Online Kortspel: Spela upp till 4 spelare mot varandra över nätet, i valfritt kortspel. Förslagsvis black jack, bridge eller UNO.
    • Inkludera ett lobby system. Där användare kan skapa nya matcher, samt gå med i redan skapade matcher.
  • Collaborative text editing:  Textediterings program likt google docs, som flera användare kan modifiera samtidigt (fast utan textformatering, eller media inklusion).
    • Inkludera ett lobby system. Där användare kan skapa nya dokument, samt gå med i redan skapade dokument.
  • En annonserings app: En app som kan användas till annonsering, likt blocket eller facebook marketplace, bilduppladdning är ett krav i denna uppgift.

Notera att vi uppmuntrar er att använda eventuella NPM paket Links to an external site. i projektet. Ni skall givetvis kunna argumentera för varför ett paket har använts, samt hur er användning av ett paket uppfyller eventuella betygskrav.

Ni har redan använt några stycken NPM paket i labbarna, tillexempel:

  • Vue: https://www.npmjs.com/package/vue Links to an external site.
  • Express: https://www.npmjs.com/package/express Links to an external site.
  • Bcrypt: https://www.npmjs.com/package/bcrypt Links to an external site.
  • Socket.io: https://www.npmjs.com/package/socket.io Links to an external site.
  • Helmet: https://www.npmjs.com/package/helmet Links to an external site.
  • Express-session: https://www.npmjs.com/package/express-session Links to an external site.
  • Better-logging: https://www.npmjs.com/package/better-logging Links to an external site.

Redovisning och komplettering

I denna sida finns information om redovisning och komplettering.

Projektbetyg

Projektet har betygsskala E-A och bestäms utifrån följande betygsmatris: 

Projektbetyg  Betygskrav
E

Uppfyllt följande krav:

  • Projektet är uppladdat på git innan redovisningen. 
  • Medelmmarna ska kunna visa grundläggande kunskaper om Javascript, HTML och CSS.
  • Medelmmarna ska kunna visa grundläggande kunskap om klient-server modellen
  • ESLint ska användas (Använd konfigurationsfilen från Labb 4) samt inga fel får produceras.
  • Projektet skall servera en klienten som skall vara byggd som en SPA
  • HTTP-server ska implementeras som serverar klienten.
  • Projektet implementerar grundläggande sessionshantering på samma sätt som i Labb 4.
  • Inloggningsvy, registreringsvy, navigationsmeny (inkl. utloggningslänk, -knapp) samt en egen vy per användare ska implementeras oavsett det valda projektförslaget.
  • Känsliga endpoints på serversidan behöver kolla att användaren är inloggad och har behörighet.
  • Användardata ska sparas i databasen.
    • Exempel på användardata är:
      • Användarnamn
      • Lösenord
      • Kontaktuppgifter (annonserings app)
      • Vunna/Spelade matcher (Online Schack, Online Kortspel)
  • Skapade resurser skall sparas i databasen.
    • Exempel på skapade resurser:
      • Publicerade Annonser (Annonserings app)
      • Sparade Dokument (Collaborative text editing)
      • Match historik (Online Schack, Online Kortspel)
  • Projektet skall inte vara sårbart för SQL-injection
D

Uppfyllt kraven för betyg E samt minst hälften (avrundat uppåt) av kraven för C.

C

Uppfyllt kraven för betyg E samt uppfyllt följande 3 krav:

  • Projektet har implementerat saltning & hashning av lösenord
  • Projektet har implementerat passiv sessionsinvalidering genom "timeout detection" på serversidan.
  • Pojektet skall använda websockets (t.ex socket.io) på minst ett sätt, samt enbart där det är logiskt.
    • Exempel på logisk användning:
      • En ny annons har publicerats (Annonserings app)
      • En förändring har gjorts i ett dokument (Collaborative text editing)
      • En pjäs har flyttats (Online Schack)
      • Ett kort har lagts (Online Kortspel)
B

Uppfyllt kraven för betyg C samt minst hälften (avrundat uppåt) av kraven för A.

A

Uppfyllt kraven för betyg C samt uppfyllt följande 3 krav:

  • Projektet får inte vara sårbar för XSS attacker
  • Projektet har implementerat serversides autentisering (HTTPS) m.h.a. ett "self-signed" eller "ca-signed" certifikat (se "ngrok" tillsammans med "Let's Encrypt").
  • Applikationsdata ska inte förloras p.g.a. omstart av servern och/eller en serverkrasch. Detta förväntas göras genom användning av de "persistent storage" metoder från kursen. D.v.s. "Levande" resurser skall sparas i databasen.
    • Skillnaden mellan E-nivå och A-nivå är att här får inget förloras om servern startar om. Det innebär i princip att man ska kunna starta om servern utan att användaren påverkas på nåt sätt (förutom att tjänsten kanske fryser i typ 30 sekunder medan servern startar om). Så om nån är i en match, så ska de kunna återuppta matchen som om ingenting hade hänt.
    • Exempel på "levande" resurser:
      • Annonsinforamtion medans den skapas, utan att behöva spara (Annonserings app)
      • Dokument medans den ändras, utan att behöva spara (Collaborative text editing)
      • Pågåden Matcher, inklusive matchens nuvarande tillstånd.
        • Schackbrädets tillstånd, vilken spelares tur det är, etc (Online Schack)
          • Tips: Använd FEN notation https://www.chess.com/terms/fen-chess Links to an external site.
        • Alla spelares händer, vilken spelares tur det är, etc (Online Kortspel)

 

 

0
Inkludera en beskrivning
Ytterligare kommentarer:
Maxresultat för gradering till > poäng
Inkludera en bedömningstitel

Matris

Hitta matris
Inkludera en titel
Hitta en matris
Titel
Du har redan bedömt studenter med den här matrisen. Större ändringar kan påverka resultaten för deras uppgifter.
 
 
 
 
 
 
 
     
Det går inte att ändra en matris efter att du börjat använda den.  
Titel
Kriterier Bedömningar Poäng
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Det här kriteriet är länkat till ett lärandemål Beskrivning av kriterium
tröskel: 5 poäng
Redigera beskrivning av kriterium Ta bort kriterium rad
5 till >0 poäng Full poäng blank
0 till >0 poäng Inga poäng blank_2
Det här området kommer användas av utvärderaren för kommentarer relaterade till det här kriteriet.
poäng
  / 5 poäng
--
Ytterligare kommentarer
Poängsumma: 5 av 5