Skip to content

vefforritun/vef2-2025-v3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Vefforritun 2, 2025, verkefni 3: Vefþjónustur

Markmið

  • Setja upp RESTful „CRUD“ vefþjónustur með Hono.
  • Nota Prisma til að vinna með gagnagrunn.
  • Nota TypeScript.

Verkefnið

Verkefnið er framhald á verkefni 1 og verkefni 1.

Það snýst um að setja upp vefþjónustur sem vinna með gögnin með Hono ásamt því að nota Prisma fyrir gagnagrunnsvinnsluna.

Vefþjónustur

Setja skal upp Hono með „template“ fyrir Node.js og TypeScript. Vefþjónustur sem útfæra skal eru:

Fyrir gerðir:

  • GET /categories skilar lista af flokkum:
    • 200 OK skilað með gögnum á JSON formi.
  • GET /categories/:slug skilar stökum flokki:
    • 200 OK skilað með gögnum ef flokkur er til.
    • 404 Not Found skilað ef flokkur er ekki til.
  • POST /category býr til nýjan flokk:
    • 200 OK skilað ásamt upplýsingum um flokk.
    • 400 Bad Request skilað ef gögn sem send inn eru ekki rétt (vantar gögn, gögn á röngu formi eða innihald þeirra ólöglegt).
  • PATCH /category/:slug uppfærir flokk:
    • 200 OK skilað með uppfærðum flokk ef gekk.
    • 400 Bad Request skilað ef gögn sem send inn eru ekki rétt.
    • 404 Not Found skilað ef flokkur er ekki til.
    • 500 Internal Error skilað ef villa kom upp.
  • DELETE /category/:slug eyðir flokk:
    • 204 No Content skilað ef gekk.
    • 404 Not Found skilað ef flokkur er ekki til.
    • 500 Internal Error skilað ef villa kom upp.

Skilgreina þarf (líkt og fyrir gerðir) vefþjónustur til að geta:

  • Skoðað spurningar.
  • Búa til spurningu.
  • Breyta spurningu.
  • Uppfæra spurningu.

Það er ákvörðun í útfærslu hvort spurningar og svör séu aðskilin eða ekki.

Gögn

Nota skal Prisma til að vinna með gögnin. Gögnin eru eins og í verkefni 2.

Fyrir staðfestingu gögnum væri hægt að nota Zod, sjá skjölun í Hono.

TypeScript

Nota skal TypeScript í verkefninu í gegnum uppsetningu í Hono.

Nota skal týpur með type og skilgreina á öll föll. Ekki skal nota any týpur. Forðast ætti að nota as lykilorðið til að varpa gögnum yfir í týpu.

Öryggi

Huga þarf að öryggi:

  • Skrá þarf gögn í gagngrunn með réttum hætti, nota parametrized queries
  • XSS árásir skulu ekki vera mögulegar, nota skal xss pakka við skráningu á gögnum

Tæki, tól og test

Nota skal node 22.

Nota skal NPM eða Yarn til að sækja og keyra tól.

Aðeins skal nota ECMAScript modules (ESM, import og export) og ekki CommonJS (require).

Nota skal eslint fyrir linting.

Setja upp/endurnýta próf fyrir viðeigandi virkni með jest, vitest eða node test runner.

Setja skal upp GitHub actions í repo.

GitHub og hýsing

Setja skal upp vefinn á Render eða einhverri annari hýsingu (sjá Hono hýsingarmöguleika í skjölun), tengt við GitHub með postgres settu upp.

Mat

  • 40% — Vefþjónustur útfærðar með Hono.
  • 30% — Unnið með gögn, þau staðfest, hugað að öryggi og vistuð í postgres grunni gegnum Prisma.
  • 20% — TypeScript notað.
  • 10% — Tæki, tól og test, verkefni sett upp í hýsingu.

Sett fyrir

Verkefni sett fyrir með tilkynningu miðvikudaginn 19. febrúar 2025.

Skil

Skila skal í Canvas í seinasta lagi fyrir lok dags fimmtudaginn 6. mars 2025.

Skil skulu innihalda:

  • Slóð á verkefni keyrandi á Netlify.
  • Slóð á GitHub repo fyrir verkefni. Dæmatímakennurum skal hafa verið boðið í repo. Notendanöfn þeirra eru:
    • osk
    • ofurtumi
    • tomasblaer

Einkunn

Leyfilegt er að ræða, og vinna saman að verkefni en skrifið ykkar eigin lausn. Ef tvær eða fleiri lausnir eru mjög líkar þarf að færa rök fyrir því, annars munu allir hlutaðeigandi hugsanlega fá 0 fyrir verkefnið.

Ef stórt mállíkan (LLM, „gervigreind“, t.d. ChatGTP) er notað til að skrifa part af lausn skal taka það fram. Sjá nánar á upplýsingasíða um gervigreind hjá HÍ.

Sett verða fyrir (sjá nánar í kynningu á áfanga):

  • fimm minni sem gilda 10% hvert, samtals 50% af lokaeinkunn.
  • tvö hópverkefni þar sem hvort um sig gildir 20%, samtals 40% af lokaeinkunn.
  • einstaklingsverkefni sem gildir 15–25% af lokaeinkunn.

Útgáfa 0.1

Útgáfa Breyting
0.1 Fyrsta útgáfa

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published