Meeskond "Ventilaator"

From ICO wiki
Revision as of 23:41, 5 December 2013 by Aluuri (talk | contribs)
Jump to navigationJump to search

Projekti kirjeldus

Meil on raamatud. Need raamatud moodustavad raamatukogu. Raamatukogus on ka filme. Heliplaate ja videomänge on kah. Raamatukogust saab laenutada teavikuid. Laenutused pannakse kirja. Laenutajad kah. Tähtaja ületanud laenutajad saavad profiilile hoiatuse ja neid teavitatakse hilinemisest. Kõike seda viibki ellu meie WPF-rakendus.

Analüüs

Millega on tegemist?

Antud WPF-rakendus laseb kasutajal salvestada andmebaasi infot talle kuuluvate teavikute ning nende teavikute sõpradele välja laenutamise kohta ja pidada arvet nii teavikute, laenajate, tähtaegade kui muu huvipakkuva üle. Rakendus jookseb ühel arvutil ning ühendub lokaalsesse andmebaasi.

Milleks seda vaja on?

Inimestel on kodus palju erinevaid teavikuid, mida tihti laenatakse teistele inimestele välja. Inimese mälu on aga teadupärast lühike ning nii laenaja kui ka laenutaja ise võivad unustada, et teavik välja laenati. Mõne laenajaga juhtub seda rohkem kui teistega. Mõni teine see-eest ei kanna laenatud esemete eest tihti heaperemehelikult hoolt. Oleks tore teada, kes need mõned on ja mitte neile enam laenutada. See tagab, et laenutaja omand säilib kauem ja/või paremini.

Meie rakendus annabki selle kasutajale üldise ülevaate tema koduses kollektsioonis olevatest teavikutest, nende seisukorrast ja sellest, kelle kätte ning kui kauaks on neid välja laenatud.

Mida sellega teha saab?

Rakendus võimaldab andmebaasi sisestada, andmebaasis muuta ning sealt ka eemaldada kodus leiduvaid andmekandjaid nagu raamatud, DVD/BluRay plaadid filmidega, audioplaadid ja videomängud. Eemaldada ei saa andmekandjaid, mis on parasjagu välja laenatud.

Kõik teavikud lähevad andmebaasis ühte tabelisse. Seetõttu on andmebaasi poolt kasutajal kohustus täita vaid teaviku nimetuse lahter (videomängudel ju näiteks autorit kui sellist pole), kuid rakenduse enda loogika võimaldab meil sisestatava teaviku tüübist lähtuvalt kasutajale teistegi lahtrite täitmist valikuliseks (filmidel kestvus, aasta, žanr jne.) või lausa kohustuslikuks (raamatutel autor, albumitel artist jne.) muuta. Andmebaasi sisestatakse ka kõik isikud, kes midagi laenanud on. Igal isikul on oma profiil, mida saab vaadata, muuta ja kustutada. Kõik isikud lähevad andmebaasis ühte tabelisse. Kohustuslik on vaid ees- ja perekonnanime väljade täitmine, muu info sisestamine on valikuline (nimekaimude puhul tungivalt soovituslik). Kustutada ei saa isikuid, kellel on tagastamata teavikuid.

Profiili all on näha, mida see inimene on varasemalt laenanud ning kas ta on ka midagi lõhkunud või tagastamata jätnud. Seega näitab profiil ära, millise riskiastmega laenajaga on tegu. Seetõttu on lihtsam otsustada, kas talle edaspidi üldse midagi laenata.

Andmebaasi saab sisestada laenutusi, neid muuta ja kustutada. Laenutuse registreerimisel on kohustuslik märkida, mida laenutatakse, kellele laenutatakse ning mis on tagastamise tähtaeg. Kui teavik on tagasi toodud, teeb kasutaja laenutusele selle kohta vastava ajalise märke ja programm loeb laenutuse lõppenuks. Teeme vahet aktiivsetel ja mitteaktiivsetel laenutustel.

Ikka juhtub, et laenajal tekib tahtmine pikendada oma laenutuse kestvust, kuna ta ei jõudnud näiteks raamatut läbi loetud või filmi ära vaadatud. Selleks on meil ka loomulikult võimalus. Kasutaja saab seda teha, muutes lihtsalt kõnealuse laenutuse tagastamise tähtaega.

Rakendus laseb koostada ka erinevaid aruandeid (olemasolevad teavikud, välja laenutatud teavikud, tähtaja ületanud laenutused, tähtaega pidevalt ületavad laenajad jne.).

Rakendus peab taustal registrit, kuhu lähevad kirja nii sooritatud tegevused kui ka nende sooritamisel ette tulnud ja kinni püütud vead.

Milliste osade realiseerimine võib osutuda problemaatiliseks?

  • Veebiliidese realiseerimine, kuna see eeldaks andmebaasi üle veebi sisse logimise teostamist.
  • Automaatne teavitus e-maili teel, kuna see eeldaks, et taustal jookseb kogu aeg teenus või andmebaasis skript, mis teostab toimingu mingi tingimuse täitumisel. Viimane variant eeldaks eraldi serveri olemasolu.
  • Graafikute koostamine raporti sektsioonis.

Must have funktsionaalsus:

  • Saab lisada, muuta, kustutada ja vaadata teavikuid.
  • Saab lisada, muuta, kustutada ja vaadata laenajate profiile.
  • Saab lisada, muuta, kustutada ja vaadata tähtajalisi laenutusi.
  • Võimaldab tegevuste kohta registri pidamist (logi).
  • Võimaldab koostada raporteid erinevate kriteeriumite alusel (kodusolevad teavikud, väljalaenutatud teavikud, tähtaja ületanud laenutused jne.).

Rakenduse põhifunktsionaalsust täitva andmebaasi mudel

Nice to have funktsionaalsus:

  • Silmale ilus graafiline kasutajaliides.
  • Võimaldab laenutust lisada nii eraldiseisvalt kui ka tulevase laenutuse isiku profiili või teaviku infot vaadates.
  • Võimaldab isikut lisada nii eraldiseisvalt kui ka uut laenutust registreerides.
  • Võimaldab koostatud raporteid mingil moel (kasvõi tekstifaili kujul) eksportida/salvestada.
  • Hoiatuse kuvamine laenutuse lisamisel, kui kõnealuse laenaja laenutuste ajalugu on vilets või kui mõni teavik on tagastamata.
  • Iga individuaalse juhtumi puhul kasutaja valikust olenev või väljalülitatav automaatne teavitus tähtaja lähenemisest/ületamisest e-kirja näol, kui laenaja profiili on märgitud e-maili aadress.
  • Rakenduse käivitamisel kontroll, kas mõni laenutus on üle tähtaja läinud. Üle tähtaja läinud laenutuse puhul küsida esimesel korral, kas ehk on teavik tegelikult juba tagastatud (sel juhul suunata laenutuse tagastusaega märkima). Mittetagastatud teaviku puhul pakkuda võimalust tähtaega pikendada. Keeldumise korral valikuline teavitus e-kirja näol (kui vastav funktsionaalsus on eelnevalt realiseeritud).
  • Võimaldab luua teavikutele üksikasjalikumad kirjed (kaanepilt, veebilink arvustustele jne.).
  • Võimaldab koostada graafikuid erinevate kriteeriumite alusel (teavikute populaarsus, kõige rohkem/vähem laenutajad jne.).
  • Lihtne, kuid silmale ilus veebiliides (et sõbrad saaksid veebist vaadata, mis teavikud kasutajal kodus veel alles on).

Prototüüp

"Allalaadimise link"

Realiseeritud on teavikute lisamine, muutmine, kustutamine, laenutamine. Teavikutel on erinevad liigid ja žanrid, mida saab samuti lisada ja kustutada, teavikuid sorteeritakse nii liigi kui teaviku nime järgi. Laenutada saab erinevatele isikutele, keda saab koos kontaktandmetega samuti andmebaasi lisada. Laenutustel saab pikendada tähtaega, neid lõpetatuks muuta ning ka kustutada. Rakendus ühendub eraldi serveril olevasse andmebaasi, kus on olemas ka testandmed.

Tegevuste logi

21. oktoober

  • Meeskonna kokkupanek
  • Skype'i grupi loomine

2. november

  • Wiki lehe loomine
  • Projekti üldkontseptsioon
  • Projektijuhi valimine

19. november

  • Valmis põhjalikum analüüs

20. november

21. november

  • MS SQL Server up & running.
  • Meeskonnale on loodud kasutajad
  • Olemas on VENTILAATOR andmebaas

28. november

  • Loodud esmane funktsionaalsus, mis suhtleb andmebaasiga, rakendus sai koodnimeks Cowbell

30. november

  • Paika pandud GUI ülesehitus, toimib teavikute kuvamine

2. detsember

  • Realiseeritud objektide andmebaasi lisamine, laenutuste kuvamine

4. detsember

  • Palju sisulisi parandusi ja täiustusi, olemas 70% plaanitavast funktsionaalsusest

5. detsember

  • Valmis prototüüp

Git-i kasutamine Visual Studio 2012-s

  • Kõigepealt peab olema installitud Update 4.

Selle saab siit: http://www.microsoft.com/en-us/download/confirmation.aspx?id=39305

  • Peale selle installi peab olema installitud Visual Studio Tools for Git.

Selle saab siit: http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c

  • Et saada mugavalt meie repo omale, peate te olema sisse logitud TeamFoundationi
    • To be continued
VENTILAATOR
Ülikool: Eesti Infotehnoloogia Kolledž
Tüüp: Programmeerimine C# - WPF-rakendus
Meeskond "Ventilaator": Tauri Metsoja
Raul Prosso (Projektijuht)
Ahto Luuri
Juhendaja: Mait Poska