Changes between Version 1 and Version 2 of voterage


Ignore:
Timestamp:
2015-07-09 16:00:14 (6 years ago)
Author:
joutapik
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • voterage

    v1 v2  
    11Harjoitustyöehdotus Web-sovellukset kurssia varten. 
    22 
    3 HVSC on kokoelma C64 SID-piirille luotuja ohjelmallisesti toistettavia musiikkikappaleita. 
    4  
    5 Kokoelmaan on tarjolla erilaisia natiiveja selaus ja toistinsovelluksia, mutta nyt olis ideana tehdä uudenlainen. 
     3HVSC on kokoelma C64 SID-piirille luotuja ohjelmallisesti toistettavia musiikkikappaleita. Kokoelmaan on tarjolla erilaisia natiiveja selaus- ja toistinsovelluksia, mutta nyt olis ideana tehdä uudenlainen.  
    64 
    75Käyttöliittymässä on tarkoitus käsitellä HVSC kappaleita joukkoina, jotka käyttäjä voi lajitella omiin soittolistoihinsa tai joihin käyttäjä voi määrittää musiikkityylimäärityksiä yms. relevanttia tietoa. 
    86 
    9 Tämä sovellus olis tarkoitus tehdä suurinpiirtein seuraavia palikoita käyttäen. 
     7Tämä sovellus olis tarkoitus tehdä suurinpiirtein seuraavia palikoita käyttäen: 
    108 
    11 - RedHat Fedora virtuaalipalvelin, jossa tarvitaan Apache ja Python. Käytän tässä omaa domainia ja palvelinta www.6581.fi 
    12 - Frameworkkina toimii Django laajennuksineen. 
    13 - Django on MVC periaatteella toimiva Python pohjainen sovelluskehitysframework. 
    14 - Apachen MOD_WSGI palikka pyörittää omaa WSGI prosessia kullekin saitille. Käytännössä Apache ohjaa HTTP kutsut Djangon ja siis saitin palasteltavaksi. 
    15 - Djangon url-mekaniikka tunnistaa HTTP kutsun URLin ja kutsuu sitten djangoon luotavaa view luokan instanssia URL:n perusteella. 
    16 - view on wrapperi, joka palauttaa dynaamisesti/staattisesti luodun sivun ja käsittelee sivustolta tulevat kutsut ja muotoilee vastauksen. 
    17 - Djangossa ei tarvitse välttämättä tietokantaa luoda käsin tai omin luontiscriptein, vaan sen luonti ja muokkaaminen onnistuu models luokan avulla. 
    18 - HTML-sivut on erikseen luotavissa djangon template-kielellä laajennetulla HTML formaatilla. Templatella tuodaan dynaaminen sisältö staattiseen sisältöön. 
    19 - Muilta osin sivusto voi käyttää sitten CSS ja Javascript muotoiluja kuten mikä tahansa HTML sivusto. 
    20 - Tässä sovelluksessa käytetään esim. bootstrap.js-luokkia tai vastaavaa muotoilussa. Bootstrapilla käyttöliittymä taipuu helposti mobiililaitteelle. 
    21 -  
     9'''Palvelin''' 
     10Redhat Linux, Fedora Virtuaalipalvelin 
     11Apache 
     12Python 
     13Django 
     14 
     15'''Tietokanta''' 
     16Postgres/Sqlite3 
     17HVSC-kokoelma jossain muodossa tai linkin takaa. 
     18Sidinfo(Cadaver/CovertBitops) 
     19 
     20'''WebGui''' 
     21HTML 
     22CSS 
     23Javascript 
     24Bootstrap.js, mahdollisesti muita. 
     25Tiny'R'sid(Juergen Wothke) tai itsetehty resid-fp(emscripten käännettynä, eli c-kielisestä koodista javascriptiksi käännetty toistin.)(web-audio-api) 
     26Tuki web-audiolle on Firefox/Chrome selaimilla.(Toimii ainakin Windows/Android alustoilla) 
     27 
     28'''Toimintalogiikka:''' 
     29Tietokantaan koostetaan aluksi HVSC kokoelman kutakin .sid tiedostoa koskevat metatiedot. Tämän jälkeen luodaan joukko-tietoja sisällään pitävä nested-sets tyyppinen puu-malli. Kukin uniikki tiedosto/metatieto on puun noodi. Noodi voi kuulua jonkin toisen noodin lapseksi. Näin esimerkiksi voidaan lajitella .sid kappaleet tekijän, ryhmän, tekijänoikeuksien omistajan, tyypin jne. mukaisesti ilman, että metatietotaulua laajennetaan. Jos halutaan luoda esimerkiksi uusi musiikkilaji Tango, riittää luoda yksi Tango noodi, jolle sitten luodaan viitteet sellaisiin ilmentymiin, jotka joukkoon kuuluvat. Tällä tavalla käyttäjät voivat teoriassa luoda omia joukkojaan. 
     30 
     31'''Käyttöliittymän logiikka:''' 
     32Käyttäjä voi selata tietoja, mutta vain kirjautunut käyttäjä voi niitä muuttaa. 
     33 
     34Käyttäjälle esitetään aluksi pääjoukkoa kuvaava nappula, sitä klikkaamalla käyttäjälle palautetaan sellaiset joukot, jotka ovat pääjoukon välittömiä lapsijoukkoja. 
     35Käyttäjä voi valita jonkin lapsijoukosta, jolloin siihen välittömästi kuuluvat joukokt palautetaan. Näin navigoidaan, kunnes päädytään valitsemaan itse kappale. 
     36 
     37Edellä kuvatulla tavalla navigoiden käyttäjä voi joko valita kappaleita toistettavaksi, lisättäväksi soittolistaan, arvostella kappaleen tai määritellä genren kappaleelle. 
     38 
     39Seuraavan kerran loggautuessaan sisään näkee käyttäjä kokoelman pääjoukon lisäksi omat kokoelmansa/soittolistansa.