- Setja upp RESTful „CRUD“ vefþjónustur með Hono.
- Nota Prisma til að vinna með gagnagrunn.
- Nota TypeScript.
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.
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.
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.
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.
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
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.
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.
- 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.
Verkefni sett fyrir með tilkynningu miðvikudaginn 19. febrúar 2025.
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
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 |