PenguinHorde

From ICO wiki

Meeskond PenguinHorde

  • Laura Leon
  • Marko Saluste
  • Mari-Liis Oldja
  • Terje Sõelsepp (projektijuht)

Projekti idee

Kliendirakendus kino Penguin Screen jaoks.

Kasutajaliides

Kasutajaliidese loomiseks kasutame ASP.Net võimalusi, et teha mugav ja kõikjalt kättesaadav veebirakendus.

Rakenduse lühikirjeldus

Hüpoteetiline kino Penguin Screen vajab veebirakendust. Selle rakenduse kaudu peavad kliendid saama uurida, mis filme kino parasjagu näitab ning mis saalides ja mis kellaaegadel on seansid. Lisaks saab broneerida koha enda soovitud filmile. Koht saalis pole oluline, kuna kasutusel on USAs populaarne süsteem, kus isekoht valitakse alles saali jõudes. Seega on vaja näha vaid seda, kui palju vabu kohti on vastaval seansil veel järel.

Projektikirjeldus

Vajaduste analüüs

Kino Penguin Screen veebirakendus on loodud vaid antud kino klientide jaoks - kinohalduritel on olemas oma sisevõrk, mille kaudu vajalikke toiminguid sooritada. Potsentsiaalsetel kinokülastajatel peab olema võimalik varem läbi veebilehe kontrollida, milliseid filme kino lähipäevil näitab. Filmi kohta on üldiselt vaja teada järgnevat infot:

  • Filmi nimi
  • Filmi poster
  • Filmi valmimisaasta
  • Filmi produtsent
  • Filmi žanr (või žanrid)
  • Filmi pikkus
  • Tähtsamad osatäitjad filmis (enamasti tuuakse välja kolm kuni kaheksa peamist osatäitjat)
  • Filmi lühikirjeldus

Kui sobiv film on leitud, on kasutajal vaja välja uurida, millistel päevadel ja aegadel vastav film näitamisel on. Selleks on filmi lühikirjelduse all välja toodud ka lähiaja seansid. Sobivale seansile klikkides on võimalik vaadata, mis saalis film linastub (saali nimi ning kohtade arv), mis kuupäeva ja kellaaja seanss parasjagu vaatamisel on ning kui palju on saalis veel vabu kohti järel. Vabade kohtade olemasolul on võimalik endale sinna ühe nime all kuni neli kohta broneerida. Läbi veebi maksmist ei ole, tegu on vaid vastava nime all tehtud broneeringuga. Tehtud broneeringud saab välja lunastada kohapeal kuni veerand tundi enne filmi algust.

Kasutajaks registreerumine pole otseselt vajalik funktsioon, kuna klient saab filmidele kohtasid broneerida oma nime kirjutades ja hiljem saab need kassas ID-kaardi abil nimeliselt välja küsida. Kasutajakontode lisamine on pigem "nice to have" funktsioon, mida lisada siis, kui muud asjad on tööle saadud. Sel juhul oleks kliendil võimalik hiljem vaadata, mis filmidele on ta varem kohti broneerinud ja kui palju istekohti on ühele filmile kinni pandud. Lisavõimalusena saaks siis tehtud broneeringuid ka läbi veebilehe tühistada, ilma et peaks kinoga telefonitsi ühendust võtma.

Juhul, kui kasutaja pole veel kindel, millist filmi ta vaadata sooviks, on vaja võimalust filme otsida. Selleks on kodulehel võimalik sooritada otsingut filmi nime, produtsendi, osatäitjate või žanri järgi. Kuna tegu on väikse kinoga ja filme väga palju pole, ei kuulu ka otsinguvõimalus "must have" funktsioonide alla. Selle saab lisada muude asjade toimimise korral, et veebilehe funktsionaalsust suurendada.

Funktsionaalsused

Must have

  • Filmi info kuvamine
  • Seansivariantide kuvamine
  • Seansi lähem vaade
  • Pileti broneerimine

Need funktsioonid on kino jaoks absoluutselt vajalikud, et klient saaks kõige olulisema info internetist kätte. Kui need on korralikult tööle saadud ja veebileht töötab veatult, saab hakata lisama funktsionaalsusi nice to have nimekirjast.

Nice to have

  • Adminnipaneel filmide jms lisamiseks
  • Filmi nime järgi otsimine
  • Näitlejate järgi otsimine
  • Produtsendi järgi otsimine
  • Filmipostrid
  • Kasutajakontod
  • Kasutajakontodel broneeringuteajalugu
  • Kasutajakontodel broneeringu tühistamine

Otsing paistab esmapilgul absoluutselt vajalik funktsioon olevat, kuid kuna Penguin Screen on väga väike kino, on võimalik selle infot haarata ka ilma otsinguta. Otsingu saab lisada hiljem ja siis on võimalik tekitada juurde ka saale ja filme, kuna "kino laienes". Filmipostrid tunduvad samuti olulised, kuid need lisame alles hiljem, kuna nad vajavad reaalset tööd meie väikselt meeskonnalt (kui just ei pane kõikidele filmidele postriks konnapilti).

Kasutajakontod pole juba mitmes kohas välja toodud põhjustel olulised, seega on need arenduses viimased lisatavad asjad. Eelistame koodi hoida pigem lühema ja täielikult korrektsena kui lisada palju funktsionaalsusi ja teha järelandmisi kvaliteedis.

Andmebaas

Pingviin andmebaas.png

Kino andmebaasis on kaheksa tabelit, mis katavad tavakasutaja vajadused. Filmi puhul on oluline salvestada filmi põhiinfot (nimekiri on vajaduste analüüsi all kirjas) ning eraldi tabeliga on ühendatud filmižanrid, kuna neid võib filmil samaaegselt mitu olla. Samal põhimõttel on eraldatud näitlejate nimekiri, see hoiab ära ka vajaduse üht näitlejat mitmeid kordi andmebaasi sisestada. Sellise süsteemiga saab ühe näitleja ühendada täpselt nii mitme filmiga kui vaja.

Kinos on mitu auditooriumi, mis on andmebaasis üles loetud. Igas saalis on erinev arv kohti. Uue seansi tekitamisel salvestatakse "free_seats" alla saalis leiduvate istekohtade arv. Seda arvu vähendatakse iga kord, kui keegi broneeringu teeb, vastavalt broneeringus olevate kohtade avule. Lehel registreerimine puudub, broneeringu tegemiseks sisestatakse lihtsalt ees- ja perenimi ning soovitud kohtade arv. Maksmine toimub kohapeal, broneering antakse välja nime peale. Üks kasutaja saab ühele seansile broneerida maksimaalselt kuus piletit.

Tööjaotus

Grupi reaalne töökeel on inglise keel, kuna see muudab annab meie projektile rahvusvahelise dimensiooni ja võimaluse seda hiljem laiemalt edasi arendada.

Rühmaliikmete rollid

  • Terje - projektijuht ja analüütik
  • Laura - front-end programeerija
  • Marko - back-end programmeerija
  • Mari-Liis - back-end programmeerija

Üldine tööjaotus on üleval välja toodud, ent rühma väiksuse tõttu katavad kõik rühmaliikmed tegelikult rohkemaid rolle. Kõik on oma ala vastutajad, delegeerides vajadusel oma valdkonna ülesandeid teisele kahele edasi. See tagab selle, et kõik jälgivad kindlat osa projektist ja tunneb isiklikku vastutust millegi teostamise eest, samas lastes kõikidel kõiki alasid proovida.

Tehtud töö

  • Prototüüp asub Siin
  • Lõpptoode asub Siin