Meeskond "Tyhik"

From EIK wiki
A
Kino Kinos esileht

Liikmed

  • K3rt Suv1
  • Seda Sahradyan
  • Helen Muidik
  • Allar Anijago
  • Madis Kõosaar
  • Jana Mrots

XML kodutöö kirjeldus

Plaanis on luua kinode ajakava süsteemi XML fail. Meil on võimalik vaadata erinevate kinode näidatavate filmide kavasid - hinnad, seansid, filmide kirjeldused, treilerid jne. Tegime XML-i küll väga pika ning hetkel on kinodes vaid üks film, korduvalt (kuid see selliseks kindlasti ei jää).

  • XML fail on kättesaadav aadressilt: [1]
  • Skeemifail on kättesaadav aadressilt: [2]
  • Stiilifail on kättesaadav aadressilt: [3]
  • XML fail stiiliga: [4]

Veebiteenuse kirjeldus

Jätkasime eelmises kodutöös tehtud XML-i põhjal veebiteenuse tegemist. Esiteks koostasime andmebaasi ning tegime erinevad klassid asjade jaoks, mida meil on mitu, näiteks kino, film, seanss jne. Seejärel tegime klassid Anna, Vota, Kustuta ja Uuenda, milles vastavalt Anna klassis on kõik meetodid väljastamise kohta, Vota klassis on meetodid andmebaasi sisestamise kohta, Kustuta klassis on meetodid andmebaasist kustutamise kohta ning Uuenda klassis omakorda meetodid andmebaasi kirjete muutmise/uuendamise kohta (näiteks kui sisestamisel tekib näpuviga või kui mõni, filmi kohta käiva lingi või treileri veebiaadress peaks muutuma). Peale seda tegime andmebaasi juurde tabeli Kasutaja ning lisasime projekti 2 klassi: Kasutaja ja KasutajaFunks, viimases on ka meetodid RegaKasutaja, LogiKasutaja, KontrolliKasutaja ja Statistika. Statistika jaoks tegime andmebaasi samuti uue tabeli.

Meetodid anna klassis:

  • annaFilmid
  • annaFilmidNimi
  • annaInimesed
  • annaKinod
  • annaLingid
  • annaSaalid
  • annaSeansid
  • annaSeansidAeg
  • annaTootjad
  • annaTreilerid
  • annaZanrid

Meetodid vota klassis:

  • votaFilm
  • votaHind
  • votaInimene
  • votaInimene_Seos
  • votaKino
  • votaLink
  • votaRoll
  • votaSaal
  • votaSeanss
  • votaSeanss_Tyyp
  • votaTootja
  • votaTootja_Seos
  • votaTreiler
  • votaZanr
  • votaZanr_Seos

Meetodid uuenda klassis:

  • UuendaFilm
  • UuendaHind
  • UuendaInimene
  • UuendaInimeneSeos
  • UuendaKasutaja
  • UuendaKino
  • UuendaLink
  • UuendaRoll
  • UuendaSaal
  • UuendaSeanss
  • UuendaSeanssTyyp
  • UuendaTootja
  • UuendaTootjaSeos
  • UuendaTreiler
  • UuendaZanr
  • UuendaZanrSeos

Meetodid klassis KasutajaFunks:

  • KontrolliKasutajat
  • LogiKasutaja
  • RegaKasutaja
  • Statistika

Meetodid klassis kustuta:

  • KustutaFilm
  • KustutaHind
  • KustutaInimene
  • KustutaInimeneSeos
  • KustutaKino
  • KustutaLink
  • KustutaRoll
  • KustutaSaal
  • KustutaSeanss
  • KustutaSeanssTyyp
  • KustutaTootja
  • KustutaTootjaSeos
  • KustutaTrailer
  • KustutaZanr
  • KustutaZanrSeos

  • Veebiteenus on kättesaadav aadressilt: [5]

Klientrakenduse kirjeldus

Jätkasime olemasoleva veebiteenuse põhjal klientrakenduse tegemist. Enne klientrakenduse tegemist sai ka teenuses parandatud mõned vead pärast esitlusel saadud tagasisidet, muutsime sisselogimist ja tegime hinna kuvamise veidi ümber.

A
Otsing nime järgi
A
Otsing kino nime ja kuupäeva järgi

Rakendusel on kaks poolt:

  • tavakasutaja pool
  • administraatori pool

Tavakasutajale kuvatakse erinevate kinode nimekiri, kes meil baasis on, samuti erinevate filmide nimekiri ja seansside ajad ning hinnad.

Administraatori pool toimib selliselt, et sisselogimisel saab adminn lisada erinevaid andmeid andmebaasi (menüüs "Administreerimine"), näiteks kinode, filmide, seansside ja hindadega seotud informatsiooni, mis siis kinnitamisel on nähtavad tavakasutajale. Adminni lehele saamiseks tuleb urli lõppu panna "/Admin/". Adminnid saavad hetkel lisada, muuta ja kustutada kahte asja: kino ja filmi.

Esilehel kuvatakse kõige uuemad filmid (nimelt viis kõige uuemat), koos väikese kirjelduse, pildi ja muude atribuutidega. Menüüs navigeerides saab vaadata erinevaid kinosid (k.a. nendega seotud andmeid näiteks hinnakirja), kõiki filme, mis parasjagu kinodes on koos nime järgi otsinguga, aga ka seansside aegu (ideaalis peaks kuvama seansi juures hindu ka, kuid seda funktsiooni hetkel ei ole) - kino ja kuupäeva järgi saab otsida, mis filmid parasjagu valikule vastavas kinos jooksevad. Kuupäeva valiku juures kasutasime AJAX-i vahendeid.

Kui keegi soovib meie rakendust arvustada, siis tuleb teenusele määrata kindel port: 58121. Administraatori poole testimiseks saab kasutada testimiseks loodud kasutajat kasutajanimi: meow | parool: meow .

A
Administraatori sisselogimine
A
Adminni leht

  • Kliendirakendus on kättesaadav aadressilt: [6]

Meeskonna lõpparuanne

Teemaks sai valitud kinokavade infosüsteem, kus on võimalik vaadata erinevaid kinosid, kinodes jooksvaid filme, erinevaid seansse ja hindu. Teema idee pärines Sedalt ning see tundus kõigi jaoks huvitavana, kuna meil ükski kino ei jaga avalikult XML-i, mille vastu saaks rakenduse teha. Otsustasime kõik 3 projekti etappi (XML, veebiteenus, klientrakendus) teha ühel teemal, ehk enda loodud veebiteenusele tegime ka klientrakenduse. Aja edenedes sai selgeks, et valituks osutus liiga lai teema ning me ei suutnud ette näha kogu lehe funktsionaalsust.

Meeskonna liikmeid oli meil alguses neli, kuid saime juurde kaks liiget erinevatel asjaoludel. Samas oli see ka hea, kuna uued liikmed tõid kaasa uusi ideid ja lahendusi. Töid oli esialgu väga raske jagada, kuna meeskonna liikmed olid kõik nii erinevad ning erinevate oskuste ja võimetega. Sellest põhjustatuna saime me pidevalt koolis õhtuti kokku ning tegime suuremad osad koos ära, kõik said kaasa rääkida ja ideid välja pakkuda, kuidas ülesandeid paremini teostada. Kes vähegi tahtis ja kellel aega oli, sai ka kodus mingeid projekti osi teha ja lõpetada. Rakenduse puhul sai kasutatud ka paaris programmeerimist, kus paarikaupa sai tegeletud erinevate projekti osadega.

XML sai kohe alguses meil põhjalikult läbi analüüsitud ja koostatud. Püüdsime XML-i panna piisavalt andmeid, mida meil hiljem kuvada oleks vaja. Sai tehtud valmis ka skeemifail ja XSLT stiilifail, mis oli esialgu neutraalne ning lihtsalt andmete kuvamiseks.

Veebiteenus sai tehtud XML-i arvestades, kus esialgu tegime andmebaasi ning seejärel erinevad klassid, mis hoiavad endas meetodeid andmete kuvamiseks, sisestamiseks, kustutamiseks ja uuendamiseks. Enne rakenduse tegemist sai teenust ikkagi muudetud ja uuendatud, tänu tagasisidele esitlusel, aga ka rakenduse tõttu (näiteks lisasime filmi juurde ka pildi). Veebiteenuses on ka statistika pidamise meetod. Kuigi me üritasime teenuse läbi mõelda ja võimalikult palju meetodeid erinevate andmete kuvamiseks teha, siis lõppkokkuvõttes jäi meetodeid ikkagi puudu. Näiteks rakendust tehes selgus, et puudu on näiteks meetodid, mis kuvaksid andmete, näiteks inimeste, žanrite, tootjate jne liste, et oleks mugavam pärast andmeid läbi rakenduse andmebaasi lisada.

Klientrakendus sai teostatud veebirakendusena kasutades ASP.Net'i võimalusi. Rakendusel on kaks poolt: tavakasutaja ja adminn. Tavakasutaja saab vaadata erinevate kinode kavasid, mis meil andmebaasis olemas on, kinode endi andmeid koos hinnakirjaga, erinevaid seansse. On olemas filmi nime järgi filmide otsing ja kino ning kuupäeva järgi filmide otsing. Adminnid saavad sisselogimisel andmeid muuta, kustutada ja lisada, esialgu on neid andmeid vähem, kui plaanitud. Kasutasime ka AJAX-i võimalusi - kuupäeva järgi otsing. Kokkuvõttes on rakendus veel poolik, kuid eesmärk näha kuidas rakenduse ja teenuse vahel andmete pärimine ja andmine toimib, sai saavutatud.

Hinnang:

  • + piisavalt läbimõeldud XML
  • + palju erinevaid inimesi tiimis, erinevad oskused (oskuste jagamine teistega)
  • + pidev suhtlemine ja kokkusaamised
  • - aja planeerimine
  • - liiga lai teema, ei suutnud välja mõelda kõiki meetodeid, mida hiljem rakenduse üles ehitamisel vaja võib minna.
  • - keerulised ja segadusse ajavad klassinimed

Punktijaotus

  • Kert Suvi - 30p
  • Madis Kõosaar - 25p
  • Helen Muidik - 25p
  • Allar Anijago - 20p
  • Seda Sahradyan - 15p
  • Jana Mrots - 5p

Selline on meie meeskonnasisene punktide jaotus ning selliseks kujunes meie valminud projekt. Jõudsime projektiga lõpule, pisikeste puudujääkidega, kuid siiski. Õppisime seoses selle projektiga päris palju, alustades meeskonnatööst lõpetades teada saamisega kuidas veebiteenus ja rakendus omavahel suhtlevad. Täname kogu meeskonnaga kõiki meie projekti arvustajaid tagasiside eest!