Codezilla: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Alinskaj (talk | contribs)
Asmirnov (talk | contribs)
 
(26 intermediate revisions by 2 users not shown)
Line 23: Line 23:
== Kasutajate rollid ==
== Kasutajate rollid ==
Minimaalses funktsionaalsuses süsteemi kasutajaks on ainult konverentsikeskuse administraator kes:
Minimaalses funktsionaalsuses süsteemi kasutajaks on ainult konverentsikeskuse administraator kes:
*Loob/muudab kliendi profiile.
*Loob/muudab kliendi profiile. <span style="color:#0000FF">- tehtud</span>
*Broneerib ruume kindlaks kuupäevaks kindla kliendi nimele.
*Broneerib ruume kindlaks kuupäevaks kindla kliendi nimele. <span style="color:#0000FF">- tehtud</span>
*Kinnitab broneeringuid, kui laekub tasu broneeringu eest.
*Kinnitab broneeringuid, kui laekub tasu broneeringu eest. <span style="color:#0000FF">- tehtud</span>
*Kustutab broneeringuid, kui broneeringu tasu ei ole laekunud tähtajaliselt, või kui tellija on broneeringu tühistanud.
*Kustutab broneeringuid, kui broneeringu tasu ei ole laekunud tähtajaliselt, või kui tellija on broneeringu tühistanud. <span style="color:#0000FF">- tehtud</span>
*Vaatab aruandeid broneeringute kohta ruumide ja kuupäevade(kalendrivaade) lõikes.
*Vaatab aruandeid broneeringute kohta ruumide ja kuupäevade(kalendrivaade) lõikes.<span style="color:#0000FF">- tehtud</span>
*Aktiveerib/deaktiveerib keskuse ruume (nt. ajutine sulgemine remondi ajaks)
*Aktiveerib/deaktiveerib keskuse ruume (nt. ajutine sulgemine remondi ajaks) <span style="color:#0000FF">- tehtud</span>


== Must-have funktsionaalsus ==
== Must-have funktsionaalsus ==
*''Administraatori sisselogimis-/autentimisvorm''
*''Administraatori sisselogimis-/autentimisvorm'' <span style="color:#0000FF">- tehtud</span>
**Kasutajanimi
**Kasutajanimi
**Salasõna
**Salasõna
*Kliendi profiili loomise/muutmise vorm.
*''Kliendi profiili loomise/muutmise vorm'' <span style="color:#0000FF">- osaliselt tehtud</span>
Organisatsiooni nimi
**Organisatsiooni nimi
Kontaktisiku nimi
**Kontaktisiku nimi
e-mail (kohustuslik)
**E-mail (kohustuslik)
muud kontaktandmed
**Muud kontaktandmed
Aktiivne/Mitteaktiivne
**Aktiivne/Mitteaktiivne
Ruumi informatsiooni vaade iga ruumi kohta.
*''Ruumi informatsiooni vaade (iga ruumi kohta eraldi)'' <span style="color:#0000FF">- tehtud</span>
Ruumi nimi
**Ruumi nimi
Rumi istekohad
**Rumi istekohad
Aktiivne/mitteaktiivne
**Aktiivne/mitteaktiivne
Broneeringu sisestamise vorm
*''Broneeringu sisestamise vorm'' <span style="color:#0000FF">- tehtud</span>
Kliendi nimi
**Kliendi nimi
Ruumi nr
**Ruumi nr
Kuupäev
**Kuupäev
Osalejate arv
**Osalejate arv
Lisainfo
**Lisainfo
Administraatori ID
**Administraatori ID
Loomise aeg
**Loomise aeg
Kinnitatud ja kinnitamata broneeringute ülevaate vaaded /Kronoloogiliselt loodud broneeringute tabel:
*''Kinnitatud ja kinnitamata broneeringute nimekirjade vaaded /Kronoloogiliselt loodud broneeringute tabel'' <span style="color:#0000FF">- tehtud</span>
Broneeringu ID
**Broneeringu ID
Tellija nimi
**Tellija nimi
Kinnitamata broneeringu puhul võimalus (check box) broneeringut kinnitada.
**Kinnitamata broneeringu puhul võimalus (check box) broneeringut kinnitada.[[File:Kalender.JPG|200px|thumb|right|Kalender. Esialgne kujundus]]
Kalendrivaade, kus on visuaalselt näha keskuse täituvus järgmiseks nädalaks või kuuks
*''Kalendrivaade, kus on visuaalselt näha keskuse täituvus järgmiseks nädalaks või kuuks''
vt. joonist  
**vt. joonist  




=== Tehnoloogiad  ===
 
'''Esialgse versiooni kitsendused'''
*Ligipääs rakendusele on ainult administraatoril ning administraatori infovahetus tellijaga ei kuulu rakenduse skoobi sisse.
*Ruum broneeritakse korraga terveks päevaks. Kui on mitmepäevane üritus, administraator teeb igale päevale eraldi broneeringut.
*Kuigi reaalses elus konverentsikeskuse ruumi mahutavus võib erineda sõltuvalt toolide/laudade paigaldusest, antud rakenduses ruumi mahutavus on piiratud ühe arvuga (istekohtade arv).
 
=== Võimalikud probleemid ===
1. Admin sisestab kaks broneeringut samale päevale ja samale ruumile.
Lahendus: juba sisestamise ajal süsteem kontrollib ruumi kättesaadavust valitud päeval ja ei võimalda topelt broneerida. <span style="color:#0000FF">- lahendatud</span>
 
2. Kolmandate isikute sanktsioneerimata ligipääs rakendusele.
Lahendus: iga töösessiooni alguses administraator autoriseeritakse süsteemis ja igas broneeringus salvestatakse ka vastutava administraatori info. <span style="color:#0000FF">- lahendatud</span>
 
3. Administraator deaktiveerib ruumi, millel on olemas broneeringud.
Lahendus: deaktiveerimisel süsteem kontrollib broneeringute olemasolu ja annab administrastorile hoiatuse broneeringute nimekirjaga. <span style="color:#0000FF">- osaliselt lahendatud</span>
 
4. Administraator redigeerib kliendi andmeid ja tahtlikult või kogemata kustutab kliendi profiili täielikult.
Lahendus: administraatoril puudub võimalud kustutada kliendi profiili. Selle asemel kliendi profiili juures on lahter Aktiivne/Mitteaktiivne, mida saab vajaduse korral märkida. Nii tagatakse, et ka minevikus lõppenud broneeringud on seotud konkreetsete tellija andmetega. - <span style="color:#0000FF">- osaliselt lahendatud</span>
 
5. Ruumi broneerimisel sisestatud osalejate arv ületab ruumi mahutavust.
Lahendus:  Broneeringu sisestamisel süsteem annab hoiatust mittevastavuse kohta ja pakub kaks lahendusvarianti: muuda ruumi suuremaks (kui suurem ruum on selleks kuupäevaks vaba),  või paranda osalejate arvu. - <span style="color:#0000FF">- lahendatud</span>
 
== Nice-to-have funktsioonid ==
*Süsteem automaatselt genereerib ja saadab arvet esitatud broneeringu eest kliendi e-mailile.
*Süsteem saadab broneeringu kinnitust tellija e-mailile, kui administraator märgib, et tasu broneeringu eest on laekunud.
*Ruumidega koos on võimalik broneerida ka lisateenuseid: tehnika, toitlustus jms.  lisavarustuse/-teenuste hind lisatakse broneeringu arvele.
*Online-klient Internetis, kus tellija saab sisestada broneeringu iseseisvalt.
*Võimalus broneerida ruumi mitmeks tunniks, mitte ainult terveks päevaks.
*Rakendus toetab allahindluste süsteemi: administraator sisestab allahindlusi reeglite kogumina ja süsteem rakendab neid arve summa kalkuleerimisel.
  ''näiteks “Early Bird Special”: kui ruum on broneeritud varem kui 2 kuud enne üritust, klient saab 15% soodustust''
*Very-nice-to-have Püsikliendi staatus. Püsiklient saab logida süsteemi sisse  oma parolliga ja saada ülevaade oma aktiivsetest broneeringutest.
*Very-nice-to-have-2 graafiline liides online-kliendis, mis näitab keskuse plaani ja plaanis näitab vabu ruume määratud kuupäevale. Plaanist saab ka lisainfot iga ruumi kohta.
 
=== Võimalikud probleemid ===
1. Arve saatmine ei õnnestu, sest kliendi e-maili aadress on puudu või on vigane.
Lahendus: teha kliendi konto loomisel e-maili lahter kohustuslikuks, ning kontrollida sisestatud onfo vastavust e-maili aadressi formaadile.
 
2. Võimalik on inimviga, kui administraator unustab märkimast arve summa laekumist.
Lahendus: Administraatori sisselogimisel süsteemi esmase asjana tuleb ekraanile meeldetuletusaken, kust, soovi korral, saab liikuda otse kinnitamata broneeringute nimekirja.
 
3. Broneeringud, mille eest tasu ei ole laekunud teatud aja jooksul jäävad süsteemi.
Lahendus: määrata aegumisperiood kinnitamata broneeringutele, mis on võrdne ettemaksuarve maksetähtajaga. Hoiatada administraatorit iga töösessiooni alguses samal päeval aeguvatest broneeringutest.
 
== Tehnoloogiad  ==
*[https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx C#]
*[https://msdn.microsoft.com/en-us/library/bb397926.aspx LINQ]
*[https://msdn.microsoft.com/en-us/library/bb397926.aspx LINQ]
*[https://msdn.microsoft.com/en-us/library/aa970268%28v=vs.110%29.aspx WPF]
*[https://msdn.microsoft.com/en-us/library/aa970268%28v=vs.110%29.aspx WPF]


=== Arendusmustrid  ===
== Arendusmustrid  ==


== Versioonikontroll ==
*[https://msdn.microsoft.com/en-us/library/ms181237.aspx Team Foundation]
== Koodi stiilireeglid ==
== Litsents ==
= Andmebaas =
[[File:EntityDesignerDiagram1.gif|center|800px|alt=Andmebaasi struktuur]]
= Prototüüp =
Meie rakenduse [https://www.dropbox.com/s/s9v7as1scou7pyu/Codezilla_proto.rar?dl=0 prototüüp] .rar arhiivina.
Instruktsioone rakenduse esmaseks käivitamiseks leiab README.html failis.
Seal asub ka link rakenduse täisdokumentatsioonile.
Palun esmasel käivitamisel käivitage enne projekt '''TestRakendus'''. See täidab andmebaasi näidisandmetega, et funktsionaalsuse testimine oleks mugavam.
Rakenduse testimiseks kasutage:
'''Kasutajanimi:''' test
'''Parool:''' test
Rakenduse kasutaja saab:
* lisada uut broneeringut
* muuta olemasolevaid broneeringuid
* kinnitada või kustutada broneeringuid
* vaadata olemasolevate broneeringute üksikasju
* lisada/muuta kliente ja nende kontaktandmeid
* muuta ruumide spetsifikatsiooni ja aktiivsust
* vaadata kinnitatud ja kinnitamata broneeringute nimekirja, ning filtreerida nimekirja erinevate  kriteeriumite järgi
* genereerida aruandeid broneerimissüsteemi tegevuse kohta.
* kasutaja tegevuste logi asub failis \Konverentsikeskus\Keskus\bin\Debug\userlog.txt
Prototüübis on realiseeritud kogu plaanitud funktsionaalsus.
Arendusprotsessi käigus sai ilmseks, et kalendrivaade dubleerib kinnitatud broneeringute vaate funktsionaalsust, seega otsustasime kalendrivaadet rakendusest eemaldada.
Arenduse käigus täienes ka andmebaasi struktuur (viimane seis on joonisel).
== Prototüübi andmebaas ==
[[File:ProtoDB_Codezilla.PNG|center|800px|alt= Prototüübi andmebaasi struktuur]]


=== Versioonikontroll ===
*[https://msdn.microsoft.com/en-us/library/ms181237.aspx Team Foundation]


=== Koodi stiilireeglid ===
= Lõpptoode =


Meie [https://www.dropbox.com/s/lnb2j2qe1u0lu5e/KonverentsProject%20-%20v101.rar?dl=0 rakendus] .rar arhiivina.
Analüüsi peatükis on <span style="color:#0000FF">sinisega</span> märgitud saavutatud eesmärgid.


=== Litsents ===
== Arhiivi sisu ==
* Rakenduse lähtekood
* Andmebaasi script fail
* Kasutusjuhend (inglise keeles)
* Rakenduse dokumentatsioon


== Avaldatud failid ==


== Arendusprotsess ==
= Arendusprotsess =


*'''30.09.2015''' - grupi kokkupanek
*'''30.09.2015''' - grupi kokkupanek
Line 84: Line 176:
*'''27.10.2015''' - online konverentsi abil arutletud projekti põhimõtted jagatud analüüsi osad
*'''27.10.2015''' - online konverentsi abil arutletud projekti põhimõtted jagatud analüüsi osad
*'''01.11.2015''' - kirjutatud analüüs
*'''01.11.2015''' - kirjutatud analüüs
* ............... - palju dokumenteerimata tööd toimus vahepeal
*'''23.01.2016''' - [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_TTT_(Trellid_Teevad_Tugevaks)  Retsensioon meeskonna TTT (Trellid Teevad Tugevaks) prototüübile]
*'''24.01.2016''' - rakenduse prototüübi lisamine Wiki lehele.
*'''29.01.2016''' - lõpptoote lisamine Wiki lehele.
*'''29.01.2016''' - [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Tarraxacum  Retsensioon meeskonna Tarraxacum lõpptootele]


== Lisad ==
= Lisad =
Lisades on toodud võimalikud programmi visuaalsed kujundused. Lõplik variant võib erineda.
[[File:Yldvaade.JPG|200px|thumb|left|Rakenduse üldvaade. Esialgne kujundus]]
[[File:UusBronn.JPG|200px|thumb|right|Uue broneeringu sisestamise vorm. Esialgne kujundus]]

Latest revision as of 05:48, 29 January 2016

Meeskonna liikmed

  • Anna Linskaja - projektijuht
  • Alisa Dudinova
  • Sergei Hristoforov

Idee

Konverentsikeskus. Luua online broneeringu süsteemi, mille kaudu administraator saab täita ruumi broneeringu vastavalt kliendi soovile. Süsteem kuvab sisestatud broneeringu kalendris.

Analüüs

Projekti kirjeldus

Meie rühma projekti eesmärk on luua WPF rakendus mis haldab väljamõeldud konverentsikeskuse broneeringuid, ehk on broneerimissüsteem. Rakendus on mõeldud väiksemale konverentsikeskusele, mis asendaks lõputute Exceli tabelite hulka ja pakuks konverentsikeskuse töötajale (edaspidi administraator) mugavat tööriista igapäevase töö planeerimiseks ja tööülesannete täitmiseks.

Rakenduse abil administraator sisestab ja muudab broneeringuid. Sellest saab ülevaadet konverentsikeskuse täituvusest kuupäevade ja ruumide lõikes. Baasversioonis tegemist on offline desktop-rakendusega, millele pääseb ligi vaid autoriseeritud töötaja. Täiendatud versioon võimaldaks ka kliendile online-kliendi kaudu iseseisvalt ruume broneerida. Konverentsikeskuse rakendus põhineb samal põhimõttel, mis "kodune raamatukogu".

Antud rakendus loob aluse paljudeks võimalikeks edasiarendusteks: tulevikus võib täielikult üle anda broneeringute sisestamist kliendi kätte interneti kaudu, ning samuti automatiseerida ka arvete koostamist ja tellijale saatmist. Osa edasiarendustest on üksikasjalikumalt kirjeldatud “Nice-to-have funktsioonide all”.

Kasutajate rollid

Minimaalses funktsionaalsuses süsteemi kasutajaks on ainult konverentsikeskuse administraator kes:

  • Loob/muudab kliendi profiile. - tehtud
  • Broneerib ruume kindlaks kuupäevaks kindla kliendi nimele. - tehtud
  • Kinnitab broneeringuid, kui laekub tasu broneeringu eest. - tehtud
  • Kustutab broneeringuid, kui broneeringu tasu ei ole laekunud tähtajaliselt, või kui tellija on broneeringu tühistanud. - tehtud
  • Vaatab aruandeid broneeringute kohta ruumide ja kuupäevade(kalendrivaade) lõikes.- tehtud
  • Aktiveerib/deaktiveerib keskuse ruume (nt. ajutine sulgemine remondi ajaks) - tehtud

Must-have funktsionaalsus

  • Administraatori sisselogimis-/autentimisvorm - tehtud
    • Kasutajanimi
    • Salasõna
  • Kliendi profiili loomise/muutmise vorm - osaliselt tehtud
    • Organisatsiooni nimi
    • Kontaktisiku nimi
    • E-mail (kohustuslik)
    • Muud kontaktandmed
    • Aktiivne/Mitteaktiivne
  • Ruumi informatsiooni vaade (iga ruumi kohta eraldi) - tehtud
    • Ruumi nimi
    • Rumi istekohad
    • Aktiivne/mitteaktiivne
  • Broneeringu sisestamise vorm - tehtud
    • Kliendi nimi
    • Ruumi nr
    • Kuupäev
    • Osalejate arv
    • Lisainfo
    • Administraatori ID
    • Loomise aeg
  • Kinnitatud ja kinnitamata broneeringute nimekirjade vaaded /Kronoloogiliselt loodud broneeringute tabel - tehtud
    • Broneeringu ID
    • Tellija nimi
    • Kinnitamata broneeringu puhul võimalus (check box) broneeringut kinnitada.
      Kalender. Esialgne kujundus
  • Kalendrivaade, kus on visuaalselt näha keskuse täituvus järgmiseks nädalaks või kuuks
    • vt. joonist


Esialgse versiooni kitsendused

  • Ligipääs rakendusele on ainult administraatoril ning administraatori infovahetus tellijaga ei kuulu rakenduse skoobi sisse.
  • Ruum broneeritakse korraga terveks päevaks. Kui on mitmepäevane üritus, administraator teeb igale päevale eraldi broneeringut.
  • Kuigi reaalses elus konverentsikeskuse ruumi mahutavus võib erineda sõltuvalt toolide/laudade paigaldusest, antud rakenduses ruumi mahutavus on piiratud ühe arvuga (istekohtade arv).

Võimalikud probleemid

1. Admin sisestab kaks broneeringut samale päevale ja samale ruumile. Lahendus: juba sisestamise ajal süsteem kontrollib ruumi kättesaadavust valitud päeval ja ei võimalda topelt broneerida. - lahendatud

2. Kolmandate isikute sanktsioneerimata ligipääs rakendusele. Lahendus: iga töösessiooni alguses administraator autoriseeritakse süsteemis ja igas broneeringus salvestatakse ka vastutava administraatori info. - lahendatud

3. Administraator deaktiveerib ruumi, millel on olemas broneeringud. Lahendus: deaktiveerimisel süsteem kontrollib broneeringute olemasolu ja annab administrastorile hoiatuse broneeringute nimekirjaga. - osaliselt lahendatud

4. Administraator redigeerib kliendi andmeid ja tahtlikult või kogemata kustutab kliendi profiili täielikult. Lahendus: administraatoril puudub võimalud kustutada kliendi profiili. Selle asemel kliendi profiili juures on lahter Aktiivne/Mitteaktiivne, mida saab vajaduse korral märkida. Nii tagatakse, et ka minevikus lõppenud broneeringud on seotud konkreetsete tellija andmetega. - - osaliselt lahendatud

5. Ruumi broneerimisel sisestatud osalejate arv ületab ruumi mahutavust. Lahendus: Broneeringu sisestamisel süsteem annab hoiatust mittevastavuse kohta ja pakub kaks lahendusvarianti: muuda ruumi suuremaks (kui suurem ruum on selleks kuupäevaks vaba), või paranda osalejate arvu. - - lahendatud

Nice-to-have funktsioonid

  • Süsteem automaatselt genereerib ja saadab arvet esitatud broneeringu eest kliendi e-mailile.
  • Süsteem saadab broneeringu kinnitust tellija e-mailile, kui administraator märgib, et tasu broneeringu eest on laekunud.
  • Ruumidega koos on võimalik broneerida ka lisateenuseid: tehnika, toitlustus jms. lisavarustuse/-teenuste hind lisatakse broneeringu arvele.
  • Online-klient Internetis, kus tellija saab sisestada broneeringu iseseisvalt.
  • Võimalus broneerida ruumi mitmeks tunniks, mitte ainult terveks päevaks.
  • Rakendus toetab allahindluste süsteemi: administraator sisestab allahindlusi reeglite kogumina ja süsteem rakendab neid arve summa kalkuleerimisel.
  näiteks “Early Bird Special”: kui ruum on broneeritud varem kui 2 kuud enne üritust, klient saab 15% soodustust
  • Very-nice-to-have Püsikliendi staatus. Püsiklient saab logida süsteemi sisse oma parolliga ja saada ülevaade oma aktiivsetest broneeringutest.
  • Very-nice-to-have-2 graafiline liides online-kliendis, mis näitab keskuse plaani ja plaanis näitab vabu ruume määratud kuupäevale. Plaanist saab ka lisainfot iga ruumi kohta.

Võimalikud probleemid

1. Arve saatmine ei õnnestu, sest kliendi e-maili aadress on puudu või on vigane. Lahendus: teha kliendi konto loomisel e-maili lahter kohustuslikuks, ning kontrollida sisestatud onfo vastavust e-maili aadressi formaadile.

2. Võimalik on inimviga, kui administraator unustab märkimast arve summa laekumist. Lahendus: Administraatori sisselogimisel süsteemi esmase asjana tuleb ekraanile meeldetuletusaken, kust, soovi korral, saab liikuda otse kinnitamata broneeringute nimekirja.

3. Broneeringud, mille eest tasu ei ole laekunud teatud aja jooksul jäävad süsteemi. Lahendus: määrata aegumisperiood kinnitamata broneeringutele, mis on võrdne ettemaksuarve maksetähtajaga. Hoiatada administraatorit iga töösessiooni alguses samal päeval aeguvatest broneeringutest.

Tehnoloogiad

Arendusmustrid

Versioonikontroll

Koodi stiilireeglid

Litsents

Andmebaas

Andmebaasi struktuur

Prototüüp

Meie rakenduse prototüüp .rar arhiivina.

Instruktsioone rakenduse esmaseks käivitamiseks leiab README.html failis. Seal asub ka link rakenduse täisdokumentatsioonile.

Palun esmasel käivitamisel käivitage enne projekt TestRakendus. See täidab andmebaasi näidisandmetega, et funktsionaalsuse testimine oleks mugavam.

Rakenduse testimiseks kasutage:

Kasutajanimi: test

Parool: test

Rakenduse kasutaja saab:

  • lisada uut broneeringut
  • muuta olemasolevaid broneeringuid
  • kinnitada või kustutada broneeringuid
  • vaadata olemasolevate broneeringute üksikasju
  • lisada/muuta kliente ja nende kontaktandmeid
  • muuta ruumide spetsifikatsiooni ja aktiivsust
  • vaadata kinnitatud ja kinnitamata broneeringute nimekirja, ning filtreerida nimekirja erinevate kriteeriumite järgi
  • genereerida aruandeid broneerimissüsteemi tegevuse kohta.
  • kasutaja tegevuste logi asub failis \Konverentsikeskus\Keskus\bin\Debug\userlog.txt

Prototüübis on realiseeritud kogu plaanitud funktsionaalsus. Arendusprotsessi käigus sai ilmseks, et kalendrivaade dubleerib kinnitatud broneeringute vaate funktsionaalsust, seega otsustasime kalendrivaadet rakendusest eemaldada.

Arenduse käigus täienes ka andmebaasi struktuur (viimane seis on joonisel).


Prototüübi andmebaas

Prototüübi andmebaasi struktuur


Lõpptoode

Meie rakendus .rar arhiivina. Analüüsi peatükis on sinisega märgitud saavutatud eesmärgid.

Arhiivi sisu

  • Rakenduse lähtekood
  • Andmebaasi script fail
  • Kasutusjuhend (inglise keeles)
  • Rakenduse dokumentatsioon


Arendusprotsess

Lisad

Lisades on toodud võimalikud programmi visuaalsed kujundused. Lõplik variant võib erineda.

Rakenduse üldvaade. Esialgne kujundus
Uue broneeringu sisestamise vorm. Esialgne kujundus