Meeskond: D♭

From ICO wiki
Jump to navigationJump to search

Meeskond ja rollid

  • Semjon Greef
  • Martin Nõukas
  • Martin Arusalu (projekti juht)
  • Roomet Saadi

Idee

Märkmik.

Tehnoloogia

Kasutatav tehnoloogia: C#, Windows Presentation Foundation.

Idee

WPF rakendus, mida kasutatakse digitaalse märkmiku pidamiseks. Saab lisada, kustutada, muuta ja vaadata märkmeid. Märkmed jagunevad erinevatesse kategooriatesse (näiteks sport, muusika, vaba aeg jne). Märkmete sisuks on vormindatud tekst. Pilte ega muud graafilist sisu ei ole. Märkmeid saab ka erinevate parameetrite järgi otsida (nagu kuupäev, sisu, kategooria). Olulisi märkmeid saab ka pinnida, mis tähendab seda, et need asuvad nimekirjas staatiliselt kõige üleval.

Analüüs

Tegemist on wpf rakendusega, mis võimaldab kasutajal lisada, kustutada, muuta, kuvada, otsida ja organiseerida märkmeid või memosid.

Funktsionaalsus

Must have

Rakenduses on kasutajate süsteem. Esmalt peab ennast kasutajaks registreerima sisestades oma kasutajanime ja parooli. Seejärel saab logida rakendusse sisse. Sisestades vale kasutajanime või parooli, kuvatakse kasutajale sellekohane veateade. Olles sisse logitud kuvatakse kasutajale tervitav „Tere, „ koos kasutajanimega, nimekiri kasutaja viimaste märgete pealkirjadest ning aktiivse märkme sisulahter.

Märkmete nimekirjas kuvatavad märkmed sorteeritakse esmalt prioriteedi, seejärel muutmise kuupäeva ja selle puudumisel sisestamise kuupäeva järgi. Valides nimekirjast mõne märkme, kuvatakse sisulahtris selle märkme loomise kuupäev, (olemasolul) muutmise kuupäev, prioriteet ja sisu. Kui nimekirjast on mõni märge valitud, siis seda saab kustutada või ka muuta. muudatuste salvestamiseks tuleb vajutada nuppu "Salvesta".

Märgetel on andmebaasis märkme ID, pealkiri, sisu, sisestamise kuupäev, muutmise kuupäev, lisaja ID ja prioriteedi ID. Igale märkmele saab lisada ka märksõnu ja paigutada see mingisse kategooriasse.

Prioriteedi ID järgi määratakse märkmele prioriteet. Need on eraldi andmebaasi tabelis ja juba süsteemi fikseeritud, ehk neid ei saa kasutaja lisada ega muuta. Prioriteedil on prioriteedi ID ja nimetus. Nimetusteks on „madal“, „keskmine“, „kõrge“. Prioriteedi määramine pole märkme loomise puhul kohustuslik. Juhul, kui sisestamisel prioriteeti ei määrata, saab märge vaikimisi prioriteediks „madal“.

Rakenduses on märkmete jaoks kategooriad. Igal kasutajal on omad kategooriad. Andmebaasis on eraldi kategooriate tabel ja atribuutideks on kategooria ID, lisaja ID ja nimetus. Esialgu kasutajal märkmete kategooriaid ei ole. Selle loomiseks tuleb kasutajal vajutada „loo kategooria“ nuppu, mis avab kategooria loomise vaate. Igal märkmel saab olla vaid üks kategooria. Kategooria valik märkmele toimub märkme loomise vaates. Kategooriasse paigutamine pole kohustuslik. Sellisel juhul ei saa märge mitte vaikimisi kategooriat, vaid jääb kategooriata.

Märkme loomise vaates saab ka märksõnu lisada. Märksõnade jaoks on andmebaasis tabel, mis sisaldab atribuute: märksõna ID ja nimetus. Topeltmärksõnade vältimiseks on märkmed märkmetega seotud vahetabeli abil, kus on seose ID, märksõna ID ja märkme ID. Märksõnade jaoks on eraldi tekstiväli ja neid eraldatakse komaga. Pärast ja enne märksõna olev tühi ruum (whitespace) eemaldatakse (trimmitakse), aga märksõna võib koosneda mitmest sõnast ehk see võib sisaldada tühikuid. Ühel märkmel võib olla mitu märksõna.

Märkmeid saab otsida, ehk filtreerida. Otsimiseks on eraldi vaade, mis sisaldab otsingulahtrit, otsitulemuste nimekirja ning aktiivse märkme sisulahtrit. Sisestades otsingulahtrisse otsitava sõne ja vajutades „Otsi“ otsitakse märkmeid, mille pealkiri, sisu, kategooria või märksõna sisaldab otsitavat ja mille lisaja ID on sisseloginud kasutaja ID. Otsingutulemused kuvatakse seejärel pealkirjade nimekirjana ning sarnaselt põhivaatele sorteeritakse esmalt prioriteedi, seejärel muutmise kuupäeva ja selle puudumisel loomise kuupäeva järgi. Valides nimekirjast mõne postituse pealkirja, kuvatakse sisulahtris selle märkme lisamise kuupäev, (olemasolul) muutmise kuupäev, prioriteet ja sisu.

Süsteemis toimub taustal toimingute logimine. Logikirjed salvestatakse eraldi andmebaasi tabelisse. Tabelis on logi ID, sissekande aeg ja kirjeldus. Toimingud, mida salvestatakse: õnnestunud sisselogimine, ebaõnnestunud sisselogimine, registreerimine, kategooria lisamine, märkme lisamine, märkme muutmine, märkme kustutamine, märksõna lisamine, märkme kategooria muutmine, otsingu teostamine, välja logimine.

Nice to have

Vastavalt kasutaja soovidele on võimalik märkmete erinevaid atribuute (pealkiri ning sisu) vormindada, muutes märkmeid visuaalselt väljapaistvaks ning tähtsaid/kindlaid osi tekstis niiöelda „highlight“-ida. Võimalik on anda pealkirjadele heading tüüpi välimus, kus pealkirjad on tavalisest tekstist natukene paksemad ja suuremad ning võimalus anda pealkirjale kolme erinevat stiili headingud (h1, h2, h3). Kui märkme sisus kasutatakse näiteks võõrsõna, siis selle saab muuta italic tüüpi tekstiks.

Disain

Kogu WPF rakenduse UX/UI pool võiks olla hästi läbi mõeldud ja töödeldud. Rakendus võiks olla hea väljanägemisega ning mugav. Kujundus on minimalistlik ja liidese elemendid disainitud Flat ideoloogia järgi. Tuleb valmis teha disaini prototüüp, ilmselt kasutades Adobe tarkvara ning seejärel juba kujundada kasutades XML-i või Visual Studio „drag and drop“ funktsionaalsust. Seda tuleb teha aga vaate ja akna kaupa. Igat vaadet ja akent tuleb eraldi kujundada ja läbi mõelda, mis ja kuidas sinna paremini sobiks. Võimalik, et läheb ka logo tegemiseks. Lõpuks võiks projekt näha välja professionaalne, tõsiseltvõetav ning terviklik. Disainida tuleb 5 vaadet - sisselogimise ja registreerimise vaade, põhivaade (nimekiri viimastest märgetest, navigatsioon), märkme lisamise vaade, kategooriate lisamise ja kustutamise vaade ning otsingu vaade. Igal vaatel on üks põhitegevus (call to action) mis on kontrastselt esile toodud. Põhivaate puhul on selleks sisselogimine (registreerimine on sekundaarne), põhivaate puhul uue märkme lisamise nupp, märkme ja kategooria lisamise vaadetes salvestamise nupp ning otsingu vaates "Otsi" nupp. Veateated kuvada punaselt ning igas vaates samal kohal. Ka prioriteetsemad märkmed peaksid värviliselt olema välja toodud.

Võimalikud probleemid

Võimalikeks probleemideks võivad olla: C# praktika puudumine (s.t vähe kogemust meil kõigil C# keelega), MVVM struktuuri implementeerimine, konfliktid koodi üleslaadimisega TFS-i, rühmana töö tegemine (ülesannete jagamine ja eraldi ülesannete lahendamine), ühtse arendusstiili rakendamine (muutujate, klasside jms nimetamine), ajapuudus või vale aja planeerimine.