Viikkotehtävä 8
Tehdään mashup-sovellus, joka hyödyntää kerralla useita ulkopuolisia verkkopalveluja ja yhdistelee niitä.
- Sovellus on toteutettava käyttäen Pythonia ja Javascriptiä
- Sovelluksen täytyy toimia Firefoxilla ja users.jyu.fi-palvelimella
- Apuna saa käyttää vapaasti Javascript-kirjastoja ja Googlen tarjoamia Javascript-rajapintoja.
- Tuotetun WWW-sivun täytyy olla validia XHTML:ää poikkeuksena sivun sisältöön dynaamisesti tehdyt muutokset.
- Sovelluksen täytyy toimia koko ajan yhdellä ja samalla WWW-sivulla lataamatta sivua uudelleen.
Taso 1
Toteuta vapaamuotoisen näköinen WWW-sivu, joka sisältää seuraavat sisällöt ja toiminnallisuuden:
- Sivulla on alasvetovalikko tai jokin muu mahdollisuus valita Jyväskylä, Tampere tai Helsinki. Oletuksena valittuna on Jyväskylä.
- Sivulla on kartta jossa näkyy valittuna olevan kaupungin kartta
- Sivulla on valittuna olevaan kaupunkiin liittyvä useamman päivän sääennuste josta on löydyttävä vähintään seuraavat tiedot:
- Milloin ennuste on päivitetty
- Mille aikavälille kukin ennuste on
- Aikaväliin liittyvä ennustettu lämpötila, ilmanpaine, tuulennopeus ja tuulen suunta
- Sääennusteen toimittajan (yr.no) edellyttämät pakolliset tiedot.
- Valittaessa uusi kaupunki siirtyy kartta automaattisesti näyttämään uuden kaupungin karttaa ja sääennusteeksi tulee uuden valitun kaupungin ennuste
Sääennusteet on haettava seuraavan listauksen antamista osoitteista:
Kaupunki | lat | lng | ennuste |
---|---|---|---|
Jyväskylä | 62.23333 | 25.73333 | http://www.yr.no/place/Finland/Western_Finland/Jyväskylä/forecast.xml |
Tampere | 61.49911 | 23.78712 | http://www.yr.no/place/Finland/Häme/Tampere/forecast.xml |
Helsinki | 60.17556 | 24.93417 | http://www.yr.no/place/Finland/Southern_Finland/Helsinki/forecast.xml |
Taso 3
Tee ensin tasoa 1 vastaava toteutus ja lisää sen jälkeen sovellukseen seuraavat asiat:
- Tarjoa paikkakuntavalintalistauksessa kaikki suomalaiset paikkakunnat jotka löytyvät osoitteesta: http://fil.nrk.no/yr/viktigestader/verda.txt. Paikkakuntavalintalista täytyy päivittää dynaamisesti suoraan edellämainitun osoitteen pohjalta. ts. et voi vain kopioida paikkakuntia suoraan omaan ohjelmakoodisi vaan ohjelmasi on käynnistyessään haettava tiedot.
- Näytä sivulla tekstimuotoisen sääennusteen lisäksi sääennuste myös kaaviokuvana jossa näkyy ajanjakso ja sille ennustettava lämpötila hieman samaan tapaan kuin Täsmäsäässä. Piirrä siis ennustetusta lämpötilan muutoksesta viivakaavio (linechart).
- Lisää sivulle kuvalistaus flickrin uusimmista luontokuvista. Kuvalistauksen saat georss-muodossa osoitteesta: http://api.flickr.com/services/feeds/geo/?tags=nature&lang=en-us&format=rss_200.
- Kuvaa klikattaessa keskitä kartta paikkaan jossa kuva on otettu ja sijoita kuvan koordinaatteihin kuvasta muodostettu ikoni.
Taso 5
Tee ensin tasoa 3 vastaava toteutus ja lisää sen jälkeen sovellukseen seuraavat asiat:
- Lisää paikkakuntien valinnan yhteyteen maan valinta. Käytettävät maat saat samasta tiedostosta mistä suomalaiset paikkakunnatkin. Oletuksena valittuna täytyy olla Suomi (Finland) jolloin paikkakuntalistauksessa näkyvät vain suomalaiset paikkakunnat. Valittaessa uusi maa päivittyy myös paikkakuntalista esittämään valitun maan paikkakuntia.
- Muuta sääennusteesta tehty kaavio interaktiiviseksi. Lisää kaavion viereen mahdollisuus valita näytetäänkö kaaviossa lämpötila, ilmanpaine vai tuulennopeus. Valinnan vaihtumisen jälkeen kaavio vaihtuu automaattisesti esittämään valittua suuretta. Oletusvalintana on lämpötila.
- Lisää sivulle valittuun paikkakuntaan yhdistetty uutishaku käyttäen Google AJAX Search APIa. Ts. valittaessa paikkakunta ilmestyy sivulle automaattisesti listaus uusimmista valittuun paikkakuntaan liittyvistä uutisista.
- Lisää karttaan reverse geokoodaus -ominaisuus, joka tuplaklikattaessa etsii sääennusteen klikattuun koordinaattiin (tai klikkausta lähimpään paikkaan) liittyen. Samalla pitää päivittyä myös ennusteeseen liittyvä kaavio ja jos mahdollista niin valita paikkakuntalistauksesta oikea paikkakunta. On syytä huomata, että Google Maps Api V3 ei tue suoraan pisteiden välisen etäisyyden laskemista vaan se löytyy vain versiosta V2. Sopivan kaavan löytää sivulta Calculate distance, bearing and more between Latitude/Longitude points.
- Kuvaa klikattaessa pitää päivittää sääennuste sekä uutislistaus näyttämään kuvan koordinaatteihin lähinnä liittyvää ennustetta ja uutisia. vrt. edellinen vaatimus.
- Parantele ohjelmaa siten, että sääennusteita ja paikkakuntalistaa ei haeta koko ajan yr.no-palvelimelta vaan ne haetaan vain jos ne ovat muuttuneet edellisen esityskerran jälkeen. Riittää, että ohjelma muistaa ennusteet yhden suorituskerran ajalta.
Käyttäjien kommentit
Täytyykö tähän tehdä joku rekisteröitymissivu vai riittääkö, että ope-tunnuksen lisää tuonne tietokantaan suoraan sqlite3 käyttöliittymällä?
Ei tarvitse erillistä rekisteröitymissivua, vaan riittää, että kyseinen tunnus (ja sen salasana) löytyy tietokannasta (kryptatussa muodossa toki).