- Upprifjun og notkun á verkfærum og tólum úr vefforritun 1.
- Ósamstillt forritun með Node.js og notkun á módúlum.
- Útbúa test með Jest og setja upp keyrslu á testum með GitHub Actions.
- Vinnsla með gagnastrúktúr og staðfestingu á gögnum.
Gefin eru gögn fyrir leiki í einhversskonar boltaíþróttadeild. Þessi gögn eru á JSON formi og í nokkrum mismunandi skrám þar sem hver skrá er einn leikdagur.
Skrifa skal allan kóða, ekki skal nota forritasöfn frá t.d. NPM.
Undir möppunni data/
eru JSON skrár með leikdögum sem heita allar gameday-X.json
þar sem X
er eitthvert gildi (alveg handahófskennt), formið er:
date
, dagsetning leikja á ISO 8601 formi (t.d.2024-01-01T00:00:00.000Z
), verður að vera til staðar annars eru gögn ólögleggames
, fylki af leikjum, verður að vera til staðar annars eru gögn ólögleghome
, heimalið, ætti að vera hlutur, sjá að neðan, ef ekki skal sleppa færsluaway
, útilið, ætti að vera hlutur, sjá að neðan, ef ekki skal sleppa færslu
Þar sem home
og away
eru hlutir með eftirfarandi gildum:
name
, nafn liðs, ætti að vera strengurscore
, skor liðs í leik, ætti að vera jákvæð heiltala
Einnig er skrá teams.json
sem inniheldur öll lögleg lið í deildinni.
Skrifa skal forrit sem les inn þessi gögn og varpar yfir í HTML skrár sem birta gögnin.
Ekki á að breyta skrám heldur nota þær nákvæmlega eins og þær eru.
Athugið að gögnin eru ekki fullkomin, þau geta innihaldið villur. Ef villa er til staðar í gögnum (þ.e.a.s. gögn uppfylla ekki það sem skilgreint er að ofan) eða ef liðið er ekki skráð sem löglegt lið skal ekki birta þau gögn, en önnur gögn í þeirri skrá skal birta.
Eftir lestur skal útbúa HTML skrár sem birta gögnin. Þær skulu vera í möppunni dist/
og vera:
index.html
, forsíða sem hefur einhvern lýsingartexta (í versta fallilorem ipsum
texta).leikir.html
, síða sem birtir alla leiki í deildinni, raðaða eftir dagsetningu leiks (elsta dagsetning efst).stada.html
, tafla með stöðu í deildinni- raðað eftir stöðu (flest stig efst) þar sem stig eru gefin:
- 3 stig fyrir sigur
- 1 stig fyrir jafntefli
- 0 stig fyrir tap
- eingöngu þarf að sýna nafn liðs og stig
- raðað eftir stöðu (flest stig efst) þar sem stig eru gefin:
Þar sem gögn innan dist/
möppu eru afleidd frá því sem er í data/
möppu skal ekki setja þær inn í Git og hunsa þær með .gitignore
skrá (sem gefin er).
Í verkefni skal skrifa test með Jest sem athugar hvort forritið virki eins og er skilgreint er að ofan.
Allar skrár með kóða í ./src/lib
möppu skulu hafa test og line coverage skal vera a.m.k. 50% í heildina. Þetta á við node.js kóða, ekki þarf að telja með þann kóða sem keyrður er úr CLI/gegnum build
scriptu. Ekki er krafa um að skrifa test fyrir kóða á framenda.
Þar sem coverage gögn eru skrifuð í coverage/
möppu skal hunsa þær með .gitignore
skrá.
Í package.json
er skilgreint gildi sem skilgreinir að jest eigi að telja til coverage allt sem er í ./src/lib
möppunni.
Test skulu keyra með:
> npm test
# eða ef yarn er notað
> yarn test
# og ef beðið er um coverage
> npm test -- --coverage
# eða ef yarn er notað
> yarn test --coverage
Meðan verið er að þróa forrit er hægt að keyra jest í watch mode með því að setja --watch
:
> npm test -- --watch
# og með coverage
> npm test -- --watch --coverage
Setja skal upp keyrslu á testum með GitHub Actions (skilgreining á workflow er gefið) þannig að þau keyra sjálfkrafa þegar commitað er á GitHub á main
branch, eða í pull requestum.
Gefin er skrá til að vinna með skrár og próf fyrir það, gefið er vinnuflæði fyrir GitHub til að keyra lint og test með hverju commit.
Setja skal upp einfalt útlit á vefnum með flexbox eða grid. Takmarka heildarstærð og vera responsive.
Forritið skal útbúa merkingarfræðilegt og aðgengilegt HTML með sniðmátum (sjá nánar í fyrirlestrum 2 og 3).
Nota skal node 20.
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
).
Uppsett er package.json
skrá með eslint
og stylelint
uppsett.
Breyta má út frá reglum sem eru settar upp í eslint
og stylelint
með því að breyta stillingar (rc
skrám) en það er ekki leyfilegt að slökkva á reglum í kóða.
Setja skal upp vefinn með niðurstöðum á Netlify tengt við GitHub. Við hvert commit ætti GitHub action að keyra lint og test, Netlify ætti að keyra build
scriptu og birta vefinn.
- 25% – Lestur gagna
- 25% – Birting gagna
- 20% – Test og lint
- 20% – Útlit á vef
- 10% – GitHub & Netlify
Verkefni sett fyrir í fyrirlestri miðvikudaginn 17. janúar 2023.
Skila skal í Canvas í seinasta lagi fyrir lok dags fimmtudaginn 1. febrúar 2024.
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
polarparsnip
sturla-freyr
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 10–20% af lokaeinkunn.
Útgáfa 0.4
Útgáfa | Breyting |
---|---|
0.1 | Fyrsta útgáfa |
0.2 | Nánari lýsing á verkefni, uppfæra gefin gögn |
0.3 | Meira af grunn gefið í fyrirlestrum 2 og 3 |
0.4 | Texti um einkunn lagaður |