Meeskond:RemindEm

From EIK wiki

Meeskond

Meeskonna liikmed:

  • Kait Vader
  • Triin Soosalu
  • Imre Padonik
  • Mikk Visnap (projektijuht)


Idee

Luua .NET raamistikus WPF rakendus, mis tuletab meelde teenindusasutuse töötajatele läbi GUI nende tööülesandeid.

Rakendus:

  • Tuletab meelde ülesandeid määratud perioodilisusega
    • ülesanded ilmuvad GUI peamises TODO vaates
  • Kuvatud on täitmiseks jäänud aeg
  • Võimaldab lisada ülesandeid
    • Igale ülesandele saab lisada meeldetuletusperioodi ja pikema kirjelduse
  • Saab märkida ülesanded täidetuks
  • Peab logi ülesannete täitmise kohta

Prototüüp

Projekti prototüüp solution on kokkupakituna .rar arhiivis ja alla laetav SIIT.

Prototüübile on seatud esialgsed andmed koodis. Suhtlus baasiga pole seega aktiivne. Andmebaasi saab genereerida edmx mudelilt, mis asub ProjectDALis. Võib kasutada ka .sql file ProjectDALis genereerimaks andmebaasi sisu, kui on lisatud eelevalt andmebaas nimega Remindem_DB.

Kui projekt ei peaks käivituma, siis võib mulle helistada numbril 5560124. Meil tiimi siseselt esines kohati probleeme, kus EF ei tahtnud teises arvutis korralikult töötada või viited projektide vahel läksid kaduma.

Analüüs

Idee kirjeldus

Idee on luua .NET raamistikus WPF rakendus, mis tuletab meelde teenindusasutuse töötajatele läbi GUI nende tööülesandeid. Idee pärineb toitlustuskoha kontekstist ja on suunatud ettevõtja efektiivsemale tegutsemisele läbi parema igapäevaste tegevuste juhtimise.

Kohvikus või restoranis on pidevalt tegemist vajavaid töid üsna palju. Sellisteks töödeks on näiteks WC-de kontrollimine, laudade kontrollimine (piisavalt salvrätikuid, plekkideta laudlinad, täidetud maitseainetopsid), taimede kastmine ja korrastamine, lambipirnide vahetamine jne. Koos moodustavad need ülesanded teenindusasutuses suure osa tööst ja nende hooletusse jätmine või harv täitmine mõjub halvasti asutuse töökorrale, mainele, klientide arvule jne. Eelpool mainitud tegevused on perioodilised ning vajavad pidevat meelde tuletamist. Olemasolevad lahendused kujutavad endast enamjaolt juhataja poolset meenutamist või kohustuslike seirelehtede aegajalist sirvimist ja täitmist. Plaanis on luua graafiline kasutajaliides, olemuselt on tegemist digitaalse seirelehega, mis perioodiliselt kuvab sooritamist vajavaid ülesandeid. Liides koosneb mitmest vaatest, mille peamine vaade kuvab hetkel tegemist vajavaid ülesandeid ning nende täitmiseks jäänud aega. Ülesannete sooritamisel saab need märkida tehtuks ning need kaovad nimekirjast. Defineeritud ülesanded ilmuvad taas ekraanile vastavalt oma perioodilisusele.

Antud liides võiks olla kuvatud näiteks kassaarvuti ekraanil. Hea lahendus oleks ka pidevalt sees olev ning statsionaarne tahvelarvuti või lisaekraan, mis on pühendatud vaid liidese tööle.

Antud lahenduse juures peab arvestama, et see on oma olemuselt usalduspõhine. Kuna tegelikult ülesande täitmisele reaalajas pidevat kontrolli pole, siis saab selle täidetuks märkida millal või kes iganes, kui see ilmub sooritamist vajavate ülesannete nimekirja. Küll aga on logide põhjal võimalik näha, kes on märgitud ülesande sooritajaks ja millal on ülesanne täidetud. Kontroll toimub seega tagantjärgi.

Lahenduse edukal kasutusse võtmisel võiks paraneda asutuses perioodiliselt tegemist vajavate ülesannete täitmine, tugevneda kontroll ning muutuda selgemaks üldiste tegevuste eest vastutusele võtmine.

Sellele ideele sarnaseid lahendusi leiab igast app storest näiteks märksõnadega: task scheduler, to do list, time manager, calendar sync, remindme, reminder. Kindlasti on võimalik ka neid raknedusi kasutada toitlustusettevõttes, kuid kuna eestikeelseid verisoone on vähe ning need ei ole loodud spetsiaalselt teenindusasutusele, siis ei täida need kõiki ootusi piisavalt hästi. Kuna idee tekkis reaalsest olukorrast, siis on koheselt olemas ka koht, kus seda töösse ja testimisse panna.

Liides kuvab näiteks “Tualettruumide kontroll”-imise perioodilist ülesannet peamises (pidevalt näha olevas) nimekirjas. Ülesanne tuleb nähtavale etteantud aeg enne ülesande täitmise kohustuslikku aega. Näiteks on antud kontrolli perioodilisus 3h, 15 min enne ülesande täitmise vajadust ilmub see neutraalsena ekraanile viidates tegevuse lõpuni viimiseks jäänud aega. Õigeaegselt täidetud ülesande puhul näiteks +/- 15 minutit saab märkida ülesande sooritatuks, mille puhul ülesanne saab omale täidetud oleku (muutub roheliseks) ning kaob nimekirjast mõnehetkelise viitega. Kui ülesandele pole reageeritud lubatud eksimusperioodis, muutub see nimekirjas rõhutatuks (näiteks punaseks) ning nõuab täitmiseks märkimisel kasutaja poolset tagasisidet ülesande täitmise venimise osas.


Vaated

Rakendusel on 4 vaadet:

  • peamine TODO vaade, kus ülesanded on järjestatud vastavalt tähtajale,
  • ülesanded,
  • töötajad,
  • logi

Vaated.png

Peamises TODO vaates on kuvatud korraga näiteks 5 ülesannet täitmistähtaja järjekorras. Pakilisemad ülesanded asuvad nimekirjas kõrgemal kohal. 15 minutit enne ülesande tähtaja kätte jõudmist, muutub ülesande värv punaseks. Ülesanded, mille tähtaeg on kaugemal, asuvad nimekirjas allpool ja need on rohelised. Ülesanne märgitakse täidetuks klikkides ülesandele, seejärel avaneb automaatselt töötajate nimekiri, mille abil tuleb märkida ülesande täitja nimi. Ülesande täitmisaeg ja täitja salvestatakse logisse. Juhul kui ülesanne täidetakse peale tähtaega, tuleb töötajal lisada selgitus märkuste lahtrisse. Seejärel kaob ülesanne TODO vaate nimekirjast ja asemele tuleb uus ülesanne.

Ülesannete vaates saab lisada uusi ülesandeid, seal on näha kõik juba lisatud ülesanded ja nende kirjeldused, intervallid ja tähtajad. See on koht, kus saab ülesandeid redigeerida, kustutada, arhiveerida või aktiveerida.

Töötajate vaates saab töötajaid nimekirja lisada või sealt kustutada, muuta ja aktiveerida. Selle alusel tekib peamises TODO vaates töötajate nimekiri, mille abil saavad töötajad kiiresti ennast ülesande täitjaks määrata. Töötajate aktiveerimine tähendab seda, et ta ilmub peamisse TODO vaatesse. Juhul kui töötaja on puhkusel, võib tema täitjate nimekirjast ajutiselt näiteks linnukse abil välja võtta, aga kuna ta tuleb tagasi, siis kustutada pole mõtet.


Must have

  • ÜLESANDED
    • Ülesandeid saab lisada.
    • Ülesandel on tähtaeg, kirjeldus ja täitmisintervall.
    • Ülesandeid saab redigeerida/kustutada/arhiveerida/aktiveerida
    • Ülesanded ilmuvad peamisse TODO listi tähtaja järgi ning vastavalt intervallile.
    • Ülesande täidetuks märkimisel avaneb töötajate nime valik.
    • Ülesanded kaovad nimekirjast nende sooritatuks märkimisel
    • Ülesande juures on näha nende sooritamiseks jäävat aega
    • Ülesandele (nende pealkirjadele) klikkides avaneb detailsem kirjeldus
    • Töötajate nimekiri, töötajaid saab lisada, redigeerida, kustutada, arhiveerida, aktiveerida
  • KASUTAJALIIDES
    • Värviline lahendus (sarnane windows 8 metro stiilile)
      • Ülesannetel on erinevad toonid vastavalt nende täitmiseks jäänud ajale või ületatud ajale
  • LOGI
    • Kõik täidetud ülesanded jätavad maha endast märgi, millal ja kes selle märkis sooritatuks


Nice to have

  • ÜLESANDED
    • Eraldi funktsionaalsused erinevatele kasutajagruppidele
      • Tavakasutaja – näeb ülesandeid ning saab märkida need tehtuks.
      • Administraator – pääseb ligi logidele, saab muuta ja lisada ülesandeid
    • Meeldetuletused pop-up’idena, kui app ei ole parasjagu aktiivne
    • Võrguühenduse olemasolul võimalus kaugelt kontrollida ülesannete täidetust
  • KASUTAJALIIDES
    • Puutetundlikuse realiseerimine
    • Peamine TODO vaade peaks olema pidevalt kuvatud, näiteks kui kasutaja ei ole peavaates ning ei ole aktiivne teatud viiteaja möödudes, viiakse vaade tagasi peavaatesse.
    • Animeeritud liikumised ülesannete lisamisel/sooritamisel ja erinevate vaadete vahel liikudes
  • LOGI
    • Statistilised vaated ja kokkuvõtted ülesannete ajalisest täidetavusest, kasutajate käitumisest


Tähtajad

Tähtaeg ja punktid Ülesanne Staatus
25.10.2014 (2p) Meeskonna kokkupanek ja idee Tehtud
01.11.2014 (6p) Analüüs Tehtud
8.11.2014 (3p) Retsensioon Tehtud
29.11.2014 (10p) Prototüüp Tehtud
06.12.2014 (5p) Retsensioon Tehtud
22.12.2014 (20p) Lõpptoode Tehtud
05.01.2014 (5p) Retsensioon Tehtud
Enne eksamit (4p) Esitlus/Kaitsmine Tegemata

Lõpptoode

RemindEm näol on tegemist lihtsa meeldetuletusrakendusega, mis on suunatud eeskätt ettevõtte personalile tööülesannete meelde tuletamiseks (nt restoranis laudade koristamine, WC puhastamine jne). Rakendus on loodud Visual Studio 2013 keskkonnas WPF rakendusena C# programmeerimiskeeles.

Kasutatud on MVVM arendusmustrit. Vaated ja vaatemudelid on küll ühes projektis (RemindemWPF), kuid eraldatud, seega ei suhtle vaated otse andmete kihiga. Lisaks on ka äriloogika jaoks projekt RemindemBLL ja suhtluseks andmebaasiga RemindemDAL.

Kasutatud on database-first lähenemist.

Lõpptoote leiab SIIT.


Kasutusjuhend

Rakenduse käivitamine

Rakenduse käivitamiseks on vajalik Visual Studio keskkond ning teadmised selle kasutamisest. Rakenduse käivitamiseks tuleb avada peakaustast fail RMv2Solution.sln. Seejärel tuleb luua andmebaas nimega RM_DB ning sellesse tabelid faili RemindemEntities.edmx.sql abil.

Enne rakenduse käivitamist tuleks tabelisse importida andmed SampleData.sql abil. See loob testkasutajad ja näidismeeldetuletused ning peakasutaja, kellena sisse logides saab kõiki toiminguid sooritada. Peakasutaja kasutajatunnus on „Admin“ ja parool on samuti „Admin“


Rakenduse kasutamine

Rakenduse käivitamisel avaneb sisselogimisvaade, mis võimaldab rakendust kasutada kolmes rollis:

• Terminal – puudub võimalus rakendust seadistada, saab vaid ülesandeid sooritatuks määrata ja valida sooritaja nime. Sobib teenindajatele.

• Tavakasutajana sisse loginud – saab ülesandeid sooritatuks määrata ning näeb ka ülesannete sooritamiste ajalugu (Reminder Log). Sobib nt vahetuse vanemale.

• Peakasutajana sisse logitud – võimaldab luua ja muuta kasutajaid ja ülesandeid ning näha ülesannete täitmise ajalugu. Sobib nt juhatajale.

Terminalvaate kasutamiseks on sisselogimisvaatel nupp „Use as Terminal“, tava- ja peakasutaja vaate kuvab programm automaatselt ning tulenevalt sisseloginud kasutaja õigustest.


Terminalvaade

Kuvatakse täitunud intervalliga ülesandeid. Iga ülesande järel on rippmenüü, millest saab valida kasutaja, kes ülesande täitis ning nupule „Done“ vajutades, märgitakse ülesanne sooritatuks ning lisatakse hetkekellaajaga ülesannete soorituste ajalukku.

Terminalvaatest saab lahkuda nupule „Logout“ vajutades.


Tavakasutaja vaade

Tavakasutaja vaatel on olemas sama funktsionaalsus, mis terminalvaatelgi, kuid lisatud on ka võimalus vaadata sooritatud sündmuste ajalugu. Selleks tuleb vajutada nupule „Reminder Log“. Ajalugu võimaldab sündmusi reastada sooritaja nime, ülesande nime või soorituse aja järgi kasvavalt ja kahanevalt.


Peakasutaja vaade

Peakasutaja vaatel on sama funktsionaalsus, mis tavakasutajal, kuid lisandunud on kasutajate ja ülesannete haldus.

Kasutajate haldusesse pääseb nupu „Manage Users“ abil. Avanev aken kuvab nimekirja olemasolevatest kasutajatest, võimalust luua uus kasutaja (nupp „Add user“) või muuta olemasolevat kasutajat (nupuga „Edit“ kasutaja nime järel). Kasutaja lisamisel tuleb kasutajale määrata ees-, pere- ning kasutajanimi, parool ja roll ning vajutada nuppu „Add User“. Kasutaja muutmisel on võimalik samu välju muuta ning muutuste salvestamiseks tuleb vajutada nuppu „Save Changes“.

Ülesannete haldusesse pääseb nupu „Manage Reminders“ abil. Avanev aken kuvab nimekirja olemasolevatest ülesannetest, võimalust luua uus ülesanne (nupuga „Add Reminder“) või muuta olemasolevat ülesannet (nupuga „Edit“ kasutaja nime järel). Uue ülesande lisamisel tuleb määrata ülesandele lühike ja pikk kirjeldus, intervall (periood sekundites, mille jooksul tuleb ülesannet korrata) ning aktiivsus (kas sisse või välja lülitatud). Seejärel vajutada „Add Reminder“ nuppu. Ülesande muutmisel saab muuta samu väljasid ning muudatused salvestada „Save Changes“ nupuga.

Lingid

Meie TFS

Meeskonna wiki

Retsensioon meeskond SimpleGeo analüüsile