Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Samankaltaiset tiedostot
Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Harjoitustyö 5: 2D-animointi verkkosivuilla (HTML5 Canvas)

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

Ohje sähköiseen osallistumiseen

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Uusi raporttityökalu emolehmätarkkailuun Petri Saarinen

NETTISIVUOHJE. MUITA OHJEITA käyttäjän lisääminen, mediakirjasto, sähköpostien lisääminen

moodle.seamk.fi teknisiä ohjeita

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Alkuun HTML5 peliohjelmoinnissa

Ohje sähköiseen osallistumiseen

Projektityö ja pelikehitys

Päänäkymä Opiskelijan ohjeet Kurssin suorittaminen Opettajan ohjeet kurssin teko

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

T Digitaalisen median työvälineet (3 op) ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mediatekniikan laitos / Informaatioverkostot

Opintokohteiden muokkaus

Tikon Web-sovellukset

TEEMA 2 Aineistot. Kirjautuminen Moodleen. Sisältö. Kirjaudut Moodleen sivulta Voit vaihtaa kielen valikosta.

LOVe-verkkokoulutuksen käyttöohje Opiskelijan osio

Tentti erilaiset kysymystyypit

F-Secure KEY salasanojenhallintaohjelman käyttöönotto PC -laitteella

OHJE Jos Kelaimeen kirjautuminen ei onnistu Windows-koneilla

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Comtieto Uutiskirje on helppokäyttöinen ja tehokas ratkaisu markkinointiin ja

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Visma Fivaldi -käsikirja MiniCRM


Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Tentti erilaiset kysymystyypit

HyväHot -työvälineen käyttöohje käsittelijälle

SOPPARI. Sopimustoimittajan käyttöohje versio IS-Hankinta Oy

KiMeWebin käyttöohjeet

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi?

Tilastokeskuksen rajapintapalveluiden käyttöönotto MapInfo - ohjelmistossa Ohjeita laatiessa on käytetty MapInfon versiota 11.5.

Kaislanet-käyttöohjeet

Tämä ohje on laadittu Mozilla Firefoxin asetuksille versiossa

Tietokannan luominen:

Etäkokousohjeet HUS:n ulkopuolisille ammattilaisille, joilla on käytössä VRK-kortti

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

T harjoitustyö, kevät 2012

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Tikon Web-sovellukset

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu Martat - KÄYTTÖOHJE Yhdistyksille 2017

Selaimen asetukset. Toukokuu (7) Selaimen asetukset Tikon Oy. All rights reserved.

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.

Ennen varmenteen asennusta varmista seuraavat asiat:

Tikon Web-sovellukset

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Opintokohteiden muokkaus

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Suomen Akatemian verkkoasioinnin käyttöohje toimikuntien ja muiden valmistelu- ja päätöksentekoelinten jäsenille

MOODLE-OHJE: Linkin lisääminen tehtävänannon yhteyteen. Web-linkin lisääminen

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Mark Summary. Taitaja2015. Skill Number 206 Skill Verkkosivujen tuottaminen. Competitor Name

Verkkosivuston hallinnan ohjeet. atflow Oy AtFlow Oy, +358 (0)

Helsingin Sanomat ipad

Lisätehtävät. Frantic 2015 sivu 1

Ohje vanhemmille - näin alkuun Päikyssä

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

H9 Julkaiseminen webissä

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta.

A&O:n käyttöohje. 1. Rekisteröityminen ja kurssille ilmoittautuminen. 2. Sisäänkirjautuminen. (Lisää löydät osoitteesta:

Tekstieditorin käyttö ja kuvien käsittely

Opintokohteiden muokkaus

Ylläpitoalue - Etusivu

Moodle-oppimisympäristö

Oma kartta Google Maps -palveluun

Kennelliiton Omakoira-jäsenpalvelu Ohje yhdistyksille ja kennelpiireille, kokeen puoltaminen ja hyväksyminen

Office 365 palvelujen käyttöohje Sisällys

KÄYTTÖOHJE YRITYKSILLE

Yrjö Määttänen Kokemuksia SuLVInetin käytön aloituksen

Google Forms / Anna Haapalainen. Google Forms Googlen lomake-työkalu

erasmartcardkortinlukijaohjelmiston

Kuva: Ilpo Okkonen

OHJE 1 (14) Peruskoulun ensimmäiselle luokalle ilmoittautuminen Wilmassa

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE SISÄLLYS

Kennelliiton Omakoira-jäsenpalvelu Ohje eläinlääkäriasemille, Omakoira-palvelun käyttö

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Racetime Catcher One 0.02 ohje Tekijä: Jere Mäki RACETIME CATCHER ONE 0.02

Tekninen suunnitelma - StatbeatMOBILE

XML tehtävien työnkulku

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

T harjoitustehtävät, syksy 2011

Tarjouspalvelu.fi. Käyttöohjeet. Osallistu tarjouskilpailuihin tehokkaasti ja turvallisesti. Tarjouspalvelu.fi -toimittajaportaali

LOVe-verkkokoulutuksen käyttöohje Opiskelijan osio

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Informaatiotekniikan kehitysyksikkö

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön

Paperiton näyttösuunnitelma

LOVe-verkkokoulutuksen käyttöohje Avaimet käteen

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Webinaarin osallistujan ohje

Transkriptio:

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript) Kurssin kolmannessa harjoitustyössä tutustutaan verkkosivujen toiminnallisuuden toteuttamiseen JavaScriptin avulla. Harjoitustyö koostuu kahdesta osasta (katso Vaatimukset). Toteutettavien tehtävien on liityttävä ryhmäsi teemaan. Harjoitustyö tehdään itsenäisesti. Harjoitustyötä varten on kurssille määritelty yksi luento (23.2.2016) sekä yksi viikkoharjoitus (1.3.2016). Yleisesti ottaen luento tarjoaa kattavan tietopaketin harjoitustyöaiheeseen. Viikkoharjoituksissa voit tehdä harjoitustöitä sekä tarvittaessa kysyä neuvoa assistenteilta, mikäli harjoitustöiden kanssa ilmenee ongelmia. Voit myös lähettää sähköpostia assistenteille (tämän harjoitustyön tapauksessa ensisijaisesti Juuso Lappalainen). Harjoitustyön vaatimukset on jaettu kahteen osaan: numeronarvauspeliin ja vaihtuvasisältöiseen mediaelementtiin. Osat ja niihin liittyvät tehtävät on suunniteltu toteutettavaksi annetussa järjestyksessä. Tällä kierroksella ei ole erillistä bonus-tehtävää, mutta täysiin pisteisiin pääseminen vaatii kaikkien perustehtävien vaatimusten täyttymistä. Lämmittely: Numeronarvauspeli (0-1 pistettä) Ensimmäisessä osassa tutustutaan JavaScriptin perusteisiin toteuttamalla yksinkertainen numeronarvauspeli. Tehtävä totetutetaan jatkamalla harjoitustyöt-sivulla annettua guessthenumber.html-tiedostoa. Numeronarvauspeli palautetaan lataamalla se DIME-palvelimelle siten että se löytyy osoitteesta dime.tml.hut.fi/~aalto-tunnuksesi/guessthenumber.html. Pelin ei tarvitse olla linkitettynä osaksi muuta sivustoasi, riittää että se löytyy ym. osoitteesta. Vaatimukset: Peliä pelataan syöttämällä luku tekstikenttään ja painamalla submitnappulaa Tekemäsi JavaScript-koodin tulee o a) arpoa sivunlatauksen yhteydessä satunnaisluku (väliltä 1-10) ja tallentaa se muuttujaan o b) kuunnella submit-nappulan painamista, ja nappulaa painettaessa hakea tekstikenttään syötetty arvo ja varmistaa että siihen on syötetty numero väliltä 1-10 verrata syötettyä lukua sivunlatauksen yhteydessä generoituun satunnaislukuun

ilmoittaa käyttäjälle popup-ikkunassa (alert) osuiko hänen arvaus oikeaan. arpoa uusi satunnaisluku arvattavaksi, jotta peliä voi pelata uudestaan ilman sivun päivittämistä. Alla on ohjeistusta tehtävän tekemiseen, mutta voit vapaasti toteuttaa tehtävän haluamallasi tavalla kunhan vaatimukset täyttyy. Ohjeistus kuvailee suosittelut vaiheet, mutta ei tarkemmin opasta niiden tekemisessä - > apua löytyy kierroksen luentokalvoista ja Googlesta. Luo JavaScript-tiedosto (esim. guessthenumber.js), johon tästä eteenpäin kirjoitetaan kaikki numeronarvauspeliin liittyvä ohjelmakoodi. Linkitä ko. tiedosto etusivulle script-tagin avulla (guessthenumber.html). Toteuta funktio getrandominteger( min, max ), joka nimensä mukaisesti palauttaa satunnaisen kokonaisluvun väliltä min ja max (mukaan lukien kyseiset numerot). Toteutuksessa kannattaa hyödyntää JavaScript:n Math-objektia: http://www.w3schools.com/js/js_math.asp. Luo muuttuja, johon säilötään numero, jota pelaaja yrittää arvata pelissä. Aseta muuttujan arvoksi sivunlatauksen yhteydessä satunnainen kokonaisluku väliltä 1-10 (mukaan lukien kyseiset numerot). Hyödynnä tässä kohdassa edellisessä tehtävässä toteuttamaasi funktiota. Toteuta funktio comparenumbers( first, second ), joka tarkistaa onko sille annetut kaksi lukua yhtäsuuria, ja palauttaa tulosta vastaavan totuusarvon. Nappulan painallukseen voit reagoida kahdella tavalla: o a) aseta html-koodissa nappulalle onclick-arvoksi haluamasi funktion nimi, esim. guessthenumber() -> tätä funktiota kutsutaan kun nappulaa painetaan o b) luo JavaScript-koodissasi nappulalle tapahtumankuuntelija, joka kuuntelee click-eventtiä, ja reagoi siihen kutsumalla haluamaasi funktiota. Toteuta guessthenumber() -funktiosi, joka o 1) hakee tekstikenttään syötetyn arvon o 2) tarkistaa että se on kokonaisluku, ja että se on väliltä 1-10. Jos ei ole, ilmoittaa popup-ikkunassa (alert) käyttäjälle että syötetty luku ei kelpaa. o 3) kutsuu comparenumbers()-funktiota joka selvittää onko luku yhtäsuuri sivunlatauksen yhteydessä arvotun luvun kanssa. o 4) ilmoittaa käyttäjälle popup-ikkunassa pelin tuloksen, ja arpoo uuden satunnaisluvun seuraavaa arvausta varten. Tehtävän kannalta hyödyllisiä linkkejä - Satunnaisluvut: http://www.w3schools.com/jsref/jsref_random.asp - onclick: http://www.w3schools.com/jsref/event_onclick.asp - Tapahtumankuuntelijat http://www.w3schools.com/jsref/met_element_addeventlistener.asp - Popup-ikkunat http://www.w3schools.com/js/js_popup.asp

Vaihtuvasisältöinen mediaelementti (0-3 pistettä) Toisessa osassa verkkosivustolle toteutetaan vaihtuvasisältöinen mediaelementti. Mediaelementti yhdistää kuvaa ja tekstiä, ja sen sisältö vaihtuu muutaman sekunnin välein. Tähän sisältöön viitataan jatkossa sanalla artikkeli. Mediaelementtiin tulee myös kolme painiketta, joilla käyttäjä voi pysäyttää artikkelin vaihtumisen, vaihtaa seuraavaan artikkeliin tai vaihtaa edelliseen artikkeliin. Tällainen mediaelementti voi olla esimerkiksi uutisikkuna (jokainen uutinen on yksi artikkeli) tai kuvaesitys tekstin kanssa. Mielikuvitusta saa käyttää: voit vaikka tehdä mediaelementin, joka esittelee kuuluisien filosofien aforismeja kasvokuvien kera. Huom: harjoitustyön tekemiseen ei saa käyttää valmiita kuvakarusellikirjastoja (kuten Bootstrapin carousel.js), vaan mediaelementti on tarkoitus toteuttaa itse. Todellisuudessa vastaavien kirjastojen käyttö olisi varsin viisasta, mutta tämän tehtävän tarkoituksena on opetella JavaScriptin perusteita. Tehtävä 3: Artikkelien määrittely (JSON) o Luo JSON-tiedosto (esim. articles.json), joka sisältää vähintään kolme artikkelia. Artikkelit pitää esittää taulukkomuodossa (engl. array) ja niistä pitää löytyä kentät ainakin otsikolle, päivämäärälle ja itse sisällölle. Kentille annettavat nimet ovat vapaavalintaisia. o JSON-tiedoston pitää validoitua ilman virheitä (engl. errors): http://jsonlint.com/. Mikäli tiedostoon jää virheitä, pitää niiden olemassaolo perustella. Tehtävä 4: Uutisten tallennus pilvipalveluun (Firebase) o Rekisteröidy Firebase-pilvipalveluun: https://www.firebase.com/. o Kirjauduttuasi sisään luo itsellesi uusi Firebase-sovellus (Account Dashboard -näkymä). Anna sovelluksen nimeksi (APP NAME) ja osoitteeksi (APP URL) oma Aalto-tunnuksesi (esim. aaltotunnuksesi ja https://aalto-tunnuksesi.firebaseio.com). Avaa sovelluksen hallintapaneeli painamalla Manage App -nappia. o Data-välilehti: Tallenna edellisessä tehtävässä luomasi JSONtiedosto sovellukseen Import JSON -napin kautta. o Security Rules -välilehti: Kytke sovelluksen kirjoitusoikeudet pois päältä määrittelemällä.write -kentän arvoksi false. Muista tallentaa muutokset Save Rules -napista. o Testaa sovelluksesi toimivuutta syöttämällä selaimen osoitekenttään sovelluksesi URL sekä lisäämällä loppuun /.json (esim. https://aalto-tunnuksesi.firebaseio.com/.json). Nyt sinun pitäisi nähdä selaimessa sovellukseen tuomasi JSON-tiedoston sisältö (artikkelit). o Huom. Selaimeen kannattaa asentaa esim. JSONView-lisäosa, joka muuntaa JSON-tiedostot luettavampaan muotoon. Tehtävä 5: Artikkelien haku pilvipalvelusta

o Luo JavaScript-tiedosto (esim. slideshow.js), johon tästä eteenpäin kirjoitetaan kaikki tähän osatehtävään liittyvä ohjelmakoodi. Linkitä ko. tiedosto niihin verkkosivuihin, joissa mediaelementti on tarkoitus näyttää (esim. Etusivu, index.html). o Lisää tapahtumakuuntelija, joka sivun latauduttua hakee edellisessä tehtävässä Firebase-pilvipalveluun tallentamasi JSONtiedoston ja tulostaa sen sisällön selaimen konsolille console.log( data ) komentoa käyttäen. Ajax-haku kannattaa toteuttaa jonkin JavaScript-kirjaston avulla, kuten esimerkiksi jquery:llä (http://api.jquery.com/jquery.getjson/) tai Firebase:llä (https://www.firebase.com/docs/web/quickstart.html). o Huom. Konsoli löytyy esim. Google Chrome selaimen Developer Tools -työkalujen kautta. Tehtävä 6: Artikkelien näyttö (DOM) o Näytä edellisessä tehtävässä Ajaxin avulla hakemasi artikkelit mediaelementissä. Artikkelien on tarkoitus vaihtua automaattisesti X sekunnin välein ts. vain yksi artikkeli näytetään kerrallaan. Tämän aikaansaamiseksi verkkosivun DOM-puuta (mediaelementin sisältöä) pitää manipuloida. DOMin manipuloinnissa kannattaa käyttää apuna jotain JavaScriptkirjastoa, kuten jquery:ä (http://api.jquery.com/category/manipulation/). o Huom. Artikkelien automaattiseen vaihtumiseen voi käyttää esimerkiksi window.settimeout tai window.setinterval -metodeita. Tehtävä 7: Artikkelien vaihtumisen hallinta (Napit) o Lisää mediaelementin yhteyteen hallintapaneeli uutisten kontrollointia varten. o Hallintapaneelista pitää löytyä seuraavat kolme nappia: (1) Edellinen (engl. Previous), (2) Toista/Tauota (engl. Play/Pause) joista vain toinen teksti näkyy riippuen elementin sen hetkisestä tilasta ja (3) Seuraava (engl. Next). Nappien toiminnallisuutta voi korostaa ikoneilla, esimerkiksi käyttäen ilmaista Font Awesome - ikonikirjastoa: http://fortawesome.github.io/font-awesome/. o Huom. Artikkelien automaattisen vaihtumisen tauottamiseen voi käyttää esimerkiksi window.cleartimeout tai window.clearinterval -metodeita. Tehtävä 8: Mediaelementin tila (Web Storage) o Tallenna Web Storage:n (localstorage, http://www.w3.org/tr/webstorage/#storage) avulla mediaelementin tila aina, kun artikkeli vaihtuu. Toisin sanoen, pidä muistissa, mikä artikkeli käyttäjälle on viimeksi näytetty. o Hae Web Storagen avulla mediaelementin tila aina, kun artikkelit on haettu Firebase-pilvipalvelusta. Toisin sanoen, hae muistista, mikä artikkeli käyttäjälle on viimeksi näytetty ja näytä se ensimmäisenä verkkosivun latauduttua. Tehtävä 9: Artikkelien animointi (jquery)

o Linkitä jquery-kirjasto (http://jquery.com/download/#usingjquery-with-a-cdn) niihin verkkosivuihin, joissa mediaelementti on tarkoitus näyttää (esim. Etusivu, index.html). o Lisää vapaavalintainen animaatio/efekti (esim. fade in/out) artikkelien vaihtumisen yhteyteen jquery-kirjaston avulla: http://api.jquery.com/category/effects/. o Huom. Lisäksi voit käyttää jquery UI:ta ja/tai jquery-plugineja. Muut vaatimukset o Tehtävässä 5 luomasi JavaScript-tiedoston pitää validoitua ilman virheitä ja/tai varoituksia (engl. errors and/or warnings): http://jshint.com/. Mikäli tiedostoon jää virheitä ja/tai varoituksia, pitää niiden olemassaolo perustella. Yleistä Riittää, että harjoitustyö on testattu ja se toimii jollain seuraavista selaimista: (1) Google Chrome, (2) Mozilla Firefox tai (3) Apple Safari. Mikäli tehtävänannon suhteen on epäselvyyksiä, niin ota yhteyttä kurssin henkilökuntaan joko postituslistan kautta tai viikkoharjoituksissa. Ohjelmistot Harjoitustyö tehdään asiakaspään web-teknologioita käyttäen, tarkemmin sanottuna JavaScript-kielen ja jquery-kirjaston avulla. Lisäksi harjoitustyön tekeminen vaatii vapaavalintaisen ohjelmointiympäristön tai tekstieditorin (esim. Brackets, Sublime Text, Notepad++ tai GNU Emacs) käyttämistä. Harjoitustyön tekemiseen ei saa käyttää visuaalista editoria vaan ohjelmakoodi on kirjoitettava käsin. Arvostelu Harjoitustyö arvostellaan asteikolla hyväksytty (1-4 pistettä) tai hylätty (merkittäviä puutteita). Arvostelussa huomioidaan ensisijaisesti vaatimusten täyttyminen sekä panostuksen määrä. Tämän lisäksi harjoitustyön arvosteluun vaikuttavat sen idea ts. kuinka vahvasti harjoitustyö liittyy Viestintä 2 -kurssilla annettuun teemaan sekä sen tekninen ja taiteellinen toteutus. Myöhässä palautetut harjoitustyöt arvostellaan samoin perustein, paitsi että jokaiselta alkavalta myöhästymisvuorokaudelta vähennetään 1 piste. Myöhästynyt työ voidaan päästää läpi hyväksyttynä, vaikka myöhästymissakot tiputtaisivat pisteet nollille, mikäli työ muuten täyttää 1 pisteen mukaiset vaatimukset. Hylätyt harjoitustyöt puolestaan uusitaan assistenttien kanssa erikseen sovitun aikataulun mukaisesti tai kurssin lopussa järjestettävän rästikierroksen yhteydessä. Uusintapalautetuista harjoitustöistä voi saada hyväksyttynä vain 0 pistettä.

Palautus Harjoitustyö palautetaan kurssin Dime-verkkopalvelimelle (palvelimen käyttöohjeet löytyvät kurssin MyCourses-sivuilta) viimeistään maanantaina 7.3.2016 klo 18.00 mennessä. Palautettujen tehtävien tulisi olla tarkasteltavissa osoitteessa http://dime.tml.hut.fi/~aalto-tunnuksesi/ Harjoitustyöstä on kirjoitettava lyhyt kuvaus MyCoursesiin Harjoitustyö 3:n alle Harjoitustyöt-sivulle. Kuvauksessa voit kertoa mm. harjoitustyön hienouksista/puutteista tai mitkä osiot siitä on toteutettu kolmannen osapuolen komponentein. Kerro myös, mitkä tehtävät teit sekä millä selaimella (+versio) ja käyttöjärjestelmällä (+versio) harjoitustyön pitäisi toimia virheettömästi.