Meeskond: ITBaar

From ICO wiki

Meeskonna liikmed:

Christo Aruste

Heleriin Malkov

Tõnis Prants


Idee

Projekti eesmärk on ehitada valmis arvuti kohviku jaoks programm, mis on automatiseeritud klienditeenindaja. Kui klient siseneb asutusse, siis ta saab puutetundliku ekraani juurde minna ning sealt kõik oma tellimused valmis teha ning minna arvuti juurde, mis on tema soovitud arvuti spetsifikatsioonidele vastav. Ekraanilt saab klient valida ka omale joogid ja/või toidud ning vajadusel saab lisada ka rohkem funktsionaalsust.


Versioonihaldus:


Analüüs

Kuidas programm käiks:

Esimene vaade on tuvastus ekraan, siin saab inimene valida 3 valiku seast, kuidas ta soovib ennast meile tuvastada. Kui inimene tuvastab ennast parooli või ID kaardiga, siis tema info läheb edasi andmebaasi (SQL), kuhu talle tehakse konto kui see juba olemas ei ole.

Kui klient loob kasutaja hakkame andmebaasi salvestama nende arvutivalikuid. Selle alusel saame järgmisel korral nende külastuse neile personaalsemaks muuta, ehk saame talle ette anda kõige tihedamini tehtud valikud, mida klient saab siis kinnitada või soovi korral muuta. Andmebaasi järgi saame teha ka soodustusi. Parimal juhul suudaksime teha automaatse hindamise süsteemi, mis headele klientidele määrab võimalikke soodustusi. Muidugi peab süsteem kasutama andmebaasi, et kõigepealt hinnata, mis soodustustest võib kasutaja huvitatud olla, näiteks kui kasutaja rendib pidevalt keskmise klassi mänguriarvutit, siis pakume mingil hetkel talle soodustust kõrgema klassi mänguriarvutile. Muidugi tulevad sellel juhul ka üldised soodustused, mida saab kõigile reklaamida. Seda eesmärgiga ergutada inimesi kasutajakontosid meie süsteemi tegema. Kasutajakonto eesmärk on inimeste tugevamalt sidumine meie kohvikuga ja samas et pakkuda inimestele alternatiivset sisselogimis võimalust. Nimelt kasutajakonto on tegelikult isikuga seotud kasutajanimi ja parool. Alles jääb võimalus ID kaardiga sisselogimiseks. Kõigest sellest hoolimata jääb kolmanda valikuna ka anonüümne kasutamine. Anonüümne kasutamine võimaldab teha kõiki samu tellimusi, aga nii ei saa kleindid kasu lõigata soodustustest. Anonüümsete kasutajate kohta salvestatakse andmebaasi ainult üldist infot, mis ei ole seotud kindla isikuga. Ka anonüümsetel kasutajatel on andmebaasis kasutaja, kuid seda jagavad kõik anonüümsed kasutajad. Nimeks antud kasutajal võib-olla “Default” ning sinna salvestuvad kõikide anonüümsete klientide ostud. Niimoodi ei kaota vajalikku informatsiooni inimeste ostude kohta. Selle info eesmärk on võimalus saada ülevaadet kohviku tellijaskonna soovidest ja populaarsematest külastusaegadest. Muidugi on anonüümselt sisseloginud inimesele kogu aeg nähtaval registreerimisnupp nii et kui tal peaks tekkima tahe ikkagi ennast registreerida on tal see võimalus olemas.

Olles süsteemi sisseloginud tervitab külastajat teine vaade, kus saab hakata tegema valikuid kasutatava arvuti suhtes. Arvuteid on mitmeid, kõik on „serverid“, millesse saab SSH’ga sisse logida. Kõigepealt on saadaval olevad süsteemid esitatud märksõnadega nagu „tööarvuti“, „mänguriarvuti“ jm. Siin kohal kasutame väljendeid, mis peaksid lihtsustama ja kiirendama inimese valikut. Näiteks kui astub sisse inimene, kes tahab kirjutada lihtsalt mingit kodutööd, siis on meie valikutes kohe selgelt olemas “tööarvuti”. Niimoodi süsteemide sidumine ülesannetega väldib olukordi, kus inimene peaks ülemaksma, sest valis kogemata liiga võimsa masina. Tööd saab ka sellega teha, aga me ei taha olla ebaviisakad oma klientide vastu ja sundida neid ülemaksma ressursi eest, mida neil vaja pole.

Lisaks pealiskaudsele valikule tuleb ka võimalus saada täpsemat infot arvutite riistvara kohta. Nii on meil variandid ka inimestele, kes soovivad täpselt teada mille eest nad hetkel maksavad. Muidugi võimaldab see ka klientidel veenduda, mis on täpselt meie arusaam mänguri või multimeedia arvutist.

Arvutite valikust edasi minnes tervitab külastajat toitude ja jookide vaade. Siin on kliendil võimalik endale vormistada tellimus. Menüü sissekanded on jaotatud kaheks, toitudeks ja jookideks. Võimalus on ka kasutada otsingut kindla toote leidmiseks. Võimalusel lisame ka sorteerimise funktsiooni, et klient saaks vastavalt soovile kitsendada ekraanile kuvatud valikuid. Kui kasutaja valib mingi eseme siit, siis lisatakse see tema ostukorvi. Ostukorvi hetkesisu on võimalik kõrval näha ja sealt saab asjade koguseid muuta või neid isegi eemaldada. Kuna leidub ka kindlasti inimesi, kes ei soovi toitu tellida, siis on selles vaates ka selgelt välja toodud nupp edasi liikumiseks, et mitte tekitada kliendis arusaamatust nagu ta peaks siit kindlasti midagi tellima.

Pärast toidu tellimise menüüga lõpetamist suunatakse klient kinnitusekraanile. Siin on toodud ülevaade kasutaja tehtud valikutest. Alustades arvutist ja lõpetades tema täieliku toidumenüüga. Kasutajal on võimalik siit ka tagasi suunduda varasematesse vaadetesse, et modifitseerida oma valikuid. Kui kõik on korras pakutakse talle maksmisviise ja pärast seda saab ta viite masinale kus käivitati tema virtuaalmasin ja sellega lõpeb kasutaja teenindamine terminali kaudu. Muidugi on võimalus inimesel tulla tagasi terminali juurde ja teha endale lisa tellimusi. Juhul kui kasutajal on hetkel aktiivne arvuti, eeldame, et ta tahab tellida toitu ja seega suunatakse ta kõigepealt just sellesse vaatesse.


Must have funktsionaalsus:

  • Kasutajaliides;
  • Ühendus andmebaasiga;
  • Võimalus luua sisendeid andmebaasi läbi kasutajaliidese;
  • Ühendus serveritega;
  • Kasutajakonto loomise võimalus;
  • Toidu- ja joogimenüü sorteerimine märksõna alusel;


Nice to have funktsionaalsus:

  • Võimalus luua kasutaja ID kaardiga;
  • Algoritm, mis teeb kasutajale soovitusi eelnevate külastuste järgi;
  • Soodustuste tegemine andmebaasi info alusel;
  • Kasutajakonto kustutamise võimalus;


Arendusmuster, mida plaanime kasutada on MVVM (Model-view-viewmodel).


Milliste osade realiseerimine võib osutuda problemaatiliseks?

Keeruliseks võib osutuda MVVM arendusmustri järgi projekti arendamine, sest meil ei ole veel piisavalt kogemusi sellega. Peaksime pidevalt jälgima, kas meie kirjutatud kood käitub vastavalt MVVM mustrile.

Kasutatav tehnoloogia

  • C#
  • Windows Presentation Foundation
  • .NET
  • SQL