- Fyrirlestur 10.3: Inngangur að verkefni 9 (43:39)
- Fyrirlestur 11.2: Verkefni 9, async útfærslur (46:54)
- Fyrirlestur 11.4: Verkefni 9, útfærslur á stöðum (37:34)
- Forrita á móti DOM, Document Object Model.
- Forrita á móti API með
fetch
. - Lesa gögn úr JSON.
Gefin er grunnur að verkefni:
package.json
með uppsetningu ábrowser-sync
,lint
ogprettier
scriptum..vscode
stillingar til að notaeslint
ogprettier
þegar skjöl eru vistuð.index.html
með leiðbeiningum og tengingu viðmain.js
sem einingu (module).- Grunnútlit í
styles.css
. - Grunnur að forriti í
./src
með athugasemdir og tillögur að útfærslum eru í skjölunum.
Skjölun notar jsdoc
.
Til að nota þennan grunn sem gefinn er hér þarf að sækja það frá GitHub og keyra NPM:
# Inni í möppu sem á að geyma verkefnið
git clone https://github.com/vefforritun/vef1-2024-v9.git
# eða
git clone [email protected]:vefforritun/vef1-2024-v9.git
# Förum inn í möppu
cd vef1-2024-v9
# Sækjum öll dependency með NPM
npm install
# Keyrum NPM script fyrir development
npm run dev
Áður en skilað er þarf að breyta remote í þitt eigið repo:
git remote remove origin
git remote add origin <slóð á þitt GitHub repo>
Smíða skal allt viðmót í JavaScript—ekkert skal vera innan <body>
í index.html
.
Í grunnviðmóti skal vera:
- Fyrirsögn.
- Inngangstexti, t.d.
Veldu stað til að sjá hita- og úrkomuspá.
. - Takkar fyrir allar gefnar leitir.
- Virkni sem leitar fyrir hvern og einn takka.
- Element sem birtir leitarniðurstöður með titli, falið í byrjun.
Fyrsti takki sem birtur er skal vera takki sem bíður notanda að leita að veðurspá út frá sinni staðsetningu. Nota skal til þess navigator.geolocation
.
Athugið að gera þarf ráð fyrir að notandi gefi ekki leyfi til að sækja staðsetningu og þarf þá að birta villuskilaboð.
Nota skal API frá Open-Meteo til að sækja veðurspár. Sækja skal a.m.k. hitastig og úrkomu.
Sækja skal gögn fyrir daginn í dag.
Dæmi um kall í vefþjónustu þar sem:
latitude
oglongitude
eru staðsetning notanda, þetta þarf að senda út frá því sem notandi velur.hourly
eru gögn sem sótt eru:temperature_2m
, ogprecipitation
.timezone
erGMT
.forecast_days
er1
, eingöngu dagurinn í dag.
Þegar gögn koma til baka frá vefþjónustu skal birta þau í töflu. Gögnin eru á JSON formi og þarf að vinna úr þeim.
Fyrir ofan töflu skal birta heiti á staðsetningu, t.d. Reykjavík
og latitude og longitude.
Birta skal töflu með eftirfarandi dálkum:
- Klukkustund, ekki skal birta alla dagsetningu, t.d. skal birta
12:00
en ekki2024-10-21T12:00:00
. - Hitastig án einingar, eining skal tiltekin í fyrstu röð.
- Úrkomu án einingar, eining skal tiltekin í fyrstu röð.
Í forritinu skal gera ráð fyrir mismunandi stöðum sem geta komið upp:
- Notandi gefur ekki leyfi til að sækja staðsetningu.
- Bið eftir svari frá vefþjónustu, nota skal
sleep
fall sem gefið er til að bíða. - Villa við að sækja gögn frá vefþjónustu.
- Gögn koma til baka frá vefþjónustu.
Uppsett er eslint
, þegar það er keyrt með npm run lint
á ekki að skila neinum villum.
Skila skal verkefninu keyrandi á Netlify (eða sambærilegri hýsingu). Gefin er sama build
script í package.json
en uppfæra þarf hana m.v. það sem er í lib/
möppu og CSS skrá.
- 20% Grunnviðmót útfært.
- 10% Leit út frá staðsetningu notanda útfærð.
- 20% Tenging við API útfærð.
- 20% Leitarniðurstöður birtar.
- 10% Tekið tillit til mismunandi staða í svari.
- 10% Verkefni sett upp á GitHub og tengt Netlify.
- 10% Engar
eslint
villur þegarnpm run lint
er keyrt.
Verkefni sett fyrir mánudaginn 21. október 2024.
Skila skal í Canvas, seinasta lagi fyrir lok dags fimmtudaginn 31. október 2024.
Skilaboð skulu innihalda:
- Slóð á verkefnið keyrandi í hýsingu
- Slóð á GitHub repo fyrir verkefni. Dæmatímakennurum skal hafa verið boðið í repo. Notendanöfn þeirra eru:
digitalsigga
ofurtumi
osk
polarparsnip
reynirjr
Skila má eins oft og þið viljið þar til skilafrestur rennur út.
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 tíu minni verkefni þar sem átta bestu gilda 5% hvert, samtals 40% af lokaeinkunn.
Sett verða fyrir tvö hópverkefni þar sem hvort um sig gildir 10%, samtals 20% af lokaeinkunn.
Útgáfa 0.1