Codezilla

From EIK wiki

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