Skeddl: Difference between revisions
No edit summary |
No edit summary |
||
Line 14: | Line 14: | ||
[https://wiki.itcollege.ee/index.php/Meeskond:_Spooky_Scary_Skeletons Esialgne projekt C# aines] | [https://wiki.itcollege.ee/index.php/Meeskond:_Spooky_Scary_Skeletons Esialgne projekt C# aines] | ||
''' | == Analüüs == | ||
AVE 3.0 on kodutööde planeerimise rakendus, kuhu registreerutud kasutaja saab lisada õppeaines antud kodutöid, tegevusi lisada neile esitamise tähtaegu ja muud lisainformatsiooni. Sisestatud ülesandeid saab jagada kas kõikide sama ainel osalejatega või siis privaatselt loodud grupis. | |||
AVE 3.0 on edasiarendus eelmisel semestril C# aines loodud rakendusest AVE 2.0. Eelmine ja ühtlasi esimene versioon sisaldas vaid kohaliku kalendri rakenduse funktsionaalsust ning ei võimaldanud ülesandeid kaastudengitega jagada. AVE 3.0 puhul on keskendume registreeritud kasutajate poolt ligipääsetavale online lahendusele. Samuti oleme õppinud vigadest ning muutnud andmebaasi mudelit. | |||
=== Mõisted === | |||
*'''Task''' - ülesanne, test, eksam, mille kasutaja kannab kalendrisse ja määrab vähemalt kohustuslikud atribuudid. Task'il saab olla vaid üks tähtaeg; | |||
*'''Subject''' - Taske grupeeriv atribuut; | |||
*'''Group''' - Taske grupeeriv atribuut, mis on ülem õppeainest (ehk kui grupp on määratud, siis pakutakse antud taski ainult selle grupi liikmetele). Grupp võib eksisteerida ka ilma õppeaineta; | |||
*'''Subscribe''' - õppeainega, grupiga või task'iga liitumine, mille tulemusena ilmub vastava aine/grupi task'id kasutaja kalendrisse; | |||
=== Rakenduse kirjeldus === | |||
Rakenduse eesmärgiks on hõlbustada kodutööde planeerimist ja tähtaegade järgimist. Rakendusse saab lisada kodutööde, testide ja eksamite tähtaegu. Sisestatud töid nimetame taskideks. Taskid võivad omakorda sisaldada muud antud ülesandega seotud infot (tähtaeg, kirjeldus, kommentaarid jne). | |||
Rakendus on põhiliselt mõeldud IT Kolledži õppeainete tähtaegade märkimiseks. Sellel eesmärgil on tähtaja juurde võimalik märkida õppeaine Info õppeainete kohta tuleb importida kooli õppeinfosüsteemidest. | |||
Rakenduse kasutamiseks on kohustuslik serveris konto loomine. Anonüümset kasutust ei ole. | |||
Kasutaja saab õppeainele subscribe'ida ja seda tehes saab kasutaja märkida ka oma õppegrupi või õppevormi (näiteks päevaõpe, kaugõpe, õhtuõpe - neid nimetame koondnimetusena “õppeaine versiooniks”). Kasutaja saab luua ka eraldiseisvaid õppetööga seotud gruppe. | |||
Rakendus kuvab kasutajale ka teiste antud aine deklareerinud kasutajate poolt märgitud tähtaegu ja lisainfot nende kohta. Kasutaja võib teiste lisatud taskile kommentaare lisada. | |||
Rakendus koosneb kahest põhilisest osast: veebiklient ja server. | |||
==== Klient ==== | |||
Klientprogramm võimaldab kasutajal lisada taske, hallata oma kasutajaprofiili ja vaadata ning lisada endale teiste poolt lisatud taske ja neile lisatud kommentaare. | |||
Veeniklient suhtleb serveriga üle API. | |||
Sisselogimisel küsitakse kasutajalt kasutajanime ja parooli, seejärel kuvatakse antud kasutaja töölaua, ning rakendus üritab autentida ja sünkroniseerida serveriga. | |||
Task'i lisamisel kalendrisse saab sellele lisada erinevat lisainfot (kirjeldus, töö detailsed nõuded, progress jmt). Rakendus hoiatab kasutajat, kui task'i täitmise tähtaeg on lähenemas. | |||
'''Kliendi must-have funktsionaalsus:''' | |||
* Peab olema võimalik kasutajaks registreerida (kasutajakonto olemsolu on kohustuslik programmi kasutamiseks); | |||
* Kasutaja peab saama sisse logida kasutajanime ja parooliga; | |||
* Kasutaja peab saama registreerida ennast gruppidesse ja/või erinevate õppeainetele/kursustele; | |||
* Kasutaja peab saama sisestada taski kirjeldust (taski) koos esitamise tähtajaga oma kalendrisse; | |||
* Kasutaja peab saama taski kirjeldusena märkida: | |||
** Task'i täitmise tähtaega; | |||
** Task'i liiki : ainetöö, essee, kursusetöö, lõputöö, referaat, praktika aruanne, eksam, test, muu; | |||
** Taskiga seotud õppeaine ettantud nimekirjast; | |||
** Taskiga seotud grupi. Kui grupp on valitud, siis edastatakse task vaid grupi liikmetele | |||
** soovi korral kommentaariväljale lisainfot, viidet õppematerjalidele jne; | |||
** aja, millal rakendus teavitab kasutajat tähtaja lähenemisest (vabatahtlik, vaikimisi 3 päeva enne); | |||
** kas task on alustamata, pooleli või lõpetatud (st taski staatust) | |||
* Rakendus peab töötama online režiimis; | |||
* Kasutaja peab saama muuta kalendrisse lisatud task’e. | |||
'''Kliendi nice-to-have funktsionaalsus:''' | |||
* Statistika tehtud ülesannete kohta. | |||
* Kasutajakonto loomisel CAPTCHA kasutamine | |||
==== Server ==== | |||
=== Andmebaasi skeem === | |||
[[File:AVE_3.0.jpg|800px]] | [[File:AVE_3.0.jpg|800px]] |
Revision as of 22:28, 1 April 2016
Tiim
- Karina Egipt
- Kärt Palm
- Joonatan Uusväli
- Siim Veskilt
- Aleksei Suvorov
Idee
To-do ja ülesannete/tegumite halduse rakendus kooli õppeainete tarvis. Võimaldab märkida kalendrisse tähtaegu, mis on seotud õppeainega ja lisada nende kohta vajalikku infot (eeldatav ajakulu, ülesande maht, õppematerjalid, jne). Keskne online andmebaas - kogu info on hallatav ja nähtav rakenduse kasutajatele. Online funktsionaalsus mis võimaldab "subscribeda" kas teatud õppeainesse, või gruppi. Sellisel juhul ilmuvad kalendrisse ka teiste antud grupis olevate kasutajate lisatud ülesanded, ning info nende kohta.
Analüüs
AVE 3.0 on kodutööde planeerimise rakendus, kuhu registreerutud kasutaja saab lisada õppeaines antud kodutöid, tegevusi lisada neile esitamise tähtaegu ja muud lisainformatsiooni. Sisestatud ülesandeid saab jagada kas kõikide sama ainel osalejatega või siis privaatselt loodud grupis.
AVE 3.0 on edasiarendus eelmisel semestril C# aines loodud rakendusest AVE 2.0. Eelmine ja ühtlasi esimene versioon sisaldas vaid kohaliku kalendri rakenduse funktsionaalsust ning ei võimaldanud ülesandeid kaastudengitega jagada. AVE 3.0 puhul on keskendume registreeritud kasutajate poolt ligipääsetavale online lahendusele. Samuti oleme õppinud vigadest ning muutnud andmebaasi mudelit.
Mõisted
- Task - ülesanne, test, eksam, mille kasutaja kannab kalendrisse ja määrab vähemalt kohustuslikud atribuudid. Task'il saab olla vaid üks tähtaeg;
- Subject - Taske grupeeriv atribuut;
- Group - Taske grupeeriv atribuut, mis on ülem õppeainest (ehk kui grupp on määratud, siis pakutakse antud taski ainult selle grupi liikmetele). Grupp võib eksisteerida ka ilma õppeaineta;
- Subscribe - õppeainega, grupiga või task'iga liitumine, mille tulemusena ilmub vastava aine/grupi task'id kasutaja kalendrisse;
Rakenduse kirjeldus
Rakenduse eesmärgiks on hõlbustada kodutööde planeerimist ja tähtaegade järgimist. Rakendusse saab lisada kodutööde, testide ja eksamite tähtaegu. Sisestatud töid nimetame taskideks. Taskid võivad omakorda sisaldada muud antud ülesandega seotud infot (tähtaeg, kirjeldus, kommentaarid jne).
Rakendus on põhiliselt mõeldud IT Kolledži õppeainete tähtaegade märkimiseks. Sellel eesmärgil on tähtaja juurde võimalik märkida õppeaine Info õppeainete kohta tuleb importida kooli õppeinfosüsteemidest.
Rakenduse kasutamiseks on kohustuslik serveris konto loomine. Anonüümset kasutust ei ole.
Kasutaja saab õppeainele subscribe'ida ja seda tehes saab kasutaja märkida ka oma õppegrupi või õppevormi (näiteks päevaõpe, kaugõpe, õhtuõpe - neid nimetame koondnimetusena “õppeaine versiooniks”). Kasutaja saab luua ka eraldiseisvaid õppetööga seotud gruppe.
Rakendus kuvab kasutajale ka teiste antud aine deklareerinud kasutajate poolt märgitud tähtaegu ja lisainfot nende kohta. Kasutaja võib teiste lisatud taskile kommentaare lisada.
Rakendus koosneb kahest põhilisest osast: veebiklient ja server.
Klient
Klientprogramm võimaldab kasutajal lisada taske, hallata oma kasutajaprofiili ja vaadata ning lisada endale teiste poolt lisatud taske ja neile lisatud kommentaare.
Veeniklient suhtleb serveriga üle API.
Sisselogimisel küsitakse kasutajalt kasutajanime ja parooli, seejärel kuvatakse antud kasutaja töölaua, ning rakendus üritab autentida ja sünkroniseerida serveriga.
Task'i lisamisel kalendrisse saab sellele lisada erinevat lisainfot (kirjeldus, töö detailsed nõuded, progress jmt). Rakendus hoiatab kasutajat, kui task'i täitmise tähtaeg on lähenemas.
Kliendi must-have funktsionaalsus:
- Peab olema võimalik kasutajaks registreerida (kasutajakonto olemsolu on kohustuslik programmi kasutamiseks);
- Kasutaja peab saama sisse logida kasutajanime ja parooliga;
- Kasutaja peab saama registreerida ennast gruppidesse ja/või erinevate õppeainetele/kursustele;
- Kasutaja peab saama sisestada taski kirjeldust (taski) koos esitamise tähtajaga oma kalendrisse;
- Kasutaja peab saama taski kirjeldusena märkida:
- Task'i täitmise tähtaega;
- Task'i liiki : ainetöö, essee, kursusetöö, lõputöö, referaat, praktika aruanne, eksam, test, muu;
- Taskiga seotud õppeaine ettantud nimekirjast;
- Taskiga seotud grupi. Kui grupp on valitud, siis edastatakse task vaid grupi liikmetele
- soovi korral kommentaariväljale lisainfot, viidet õppematerjalidele jne;
- aja, millal rakendus teavitab kasutajat tähtaja lähenemisest (vabatahtlik, vaikimisi 3 päeva enne);
- kas task on alustamata, pooleli või lõpetatud (st taski staatust)
- Rakendus peab töötama online režiimis;
- Kasutaja peab saama muuta kalendrisse lisatud task’e.
Kliendi nice-to-have funktsionaalsus:
- Statistika tehtud ülesannete kohta.
- Kasutajakonto loomisel CAPTCHA kasutamine
Server
Andmebaasi skeem
Meeskonna XML/XSLT ülesande postitus
19.03.2016
Kirjeldus:
- XML fail Taskide andmete edastamiseks (4 loogilist dimensiooni);
- XML faili skeemifail;
- XSL transformatsiooni faili loodud XML failis olevate Taski andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks.
- SkeddlTasksByStatus.xslt - Toob välja kõik etteantud grupi taskid taski staatuse järgi (alustamata, pooleli ja valmis);
- ShowPublicTasks.xslt - Tagastab kõik public Taskid koos kuupäevaga.
.zip fail on kättesaadav SIIT.
XML retsensioon 1
Retsensioon meeskonna Aeg XML failile.
Meeskonna Aeg XML faili eesmärk on edastada andmeid määratlemata ülesannete lahendamiseks kulunud aja kohta. XML faili struktuur ületab 4 loogilise dimensiooni nõude, sisaldades 5 loogilist dimensioon. Kolmel dimensioonil on kasutatud attribuute, kus ei ole piirdutud ainult id attribuudiga, jaotades ajaraportid id alusel nädalasteks arendusperioodideks, mida administraator saab kinnitada või tagasi lükata. Olemas on sobivad XSL transformatsioonid XML faili andmete muutmiseks HTML formaati (Activities) ja XML faili formaadi muutmiseks (Summary) XML formaati kui ka XML skeemifail. Summary transformatsioon sisaldab küll ainult ühte for-loopi, kuid meie hinnangul on see piisav antud lahendusele ja kunstlik kompleksuse juurde lisamine ülevaate puhul lisaväärtust ei tekitaks, kui just ei eraldata paremini kasutajate rolle. Activities transformatsioon on keerulisem, sisaldades for-each tsüklit teise for-each tsükli sees, koos konstruktsioonidega andmete loogiliseks ja terviklikuks esitamiseks. Iga ajaraporti juures on raporti tegija eesnimi, perekonnanimi, osakonnaline kuuluvus ja roll ja tema poolt lisatud sündmuste logid. XML fail valideerus vigadeta w3schools.com XML validaatoris. Kuna arenduskontekst ei ole veel üheselt selge wikilehel leitud info põhjal, siis võib-olla on mõistlik kasutaja roll muuta osakonna alamdimensiooniks ja lisada näiteks projekti juhtimise õiguse jaoks eraldi dimensioon, toetamaks võimaliku mugavusliidese arendamist lisana. Aja ühiku valik võiks olla paindlikum, praegu on tegevuse ühikuks ainult tunnid. Skeemifailis xs:string pikkus võiks olla piiratud andmete esitamise ja raportide kokkuvõtlikusele suunamise eesmärgil maksimaalse väärtusega. Miinusena tooksime välja XML koodi saatva dokumentatsioonilise poole puudulikust: paar selgitavat lauset wikis ja koodi visuaalse väljundi lisamine oleksid meeldivad. Üldiselt kood näeb välja puhas ja elementide nimede valik on hästi läbi mõeldud ja stiil pidev. Meie hinnangul vastab meeskonna Aeg projekti XML osa kõigile esitatud tingimustele.
XML retsensioon 2
Retsensioon meeskonna Enneaegsed XML failile.
Meeskonna Enneaegsed XML faili ülesanne on individuaalsete arvete kuvamine, XML transformatsioonidel aga nende kokkuvõtlik kuvamine nimekirjana ja sobivasse formaati genereerimine, eesmärgiga saada arved trükivormi. XML fail ületab 4 loogilise dimensiooni nõude, sisaldades 6 loogilist dimensioon. Ainult ühes dimensioonis on kasutatud rohkem kui kahte attribuuti korraga. Alamdimensioonides on kasutatud eristamiseks üksikuna esinevaid attribuute, mis on arvete või muu kaudselt seotud andmekogumite kuvamisel ka mõistlik. Olemas on nii XML skeemifail kui ka arvete nimekirja genereerimise transformatsioon andmete muutmiseks HTML formaati ja arvete üldnimekirja kuvamiseks mõeldud arvete genereerimise transformatsioon HTML formaati, mis muudab algset XML faili formaati. Arvete nimekirja kuvamise transformatsioon sisaldab ühte for-each tsüklit struktuuri loova xsl:choose valikuga. Teine, kõik arved genereeriv transformatsioon, on keeleliste konstruktsioonide poolest palju rikkalikum, sisaldades nii mitmetasemelist for-each tsüklit, hargemist ja väljundi kujundamist. Iga arve juures on välja toodud suur valik informatsiooni, seal hulgas arve number, tellimuse number, saaja informatsioon, tähtajainfo, märkused jne. XML faili struktuur on lihtne arvete kogum, mis on terviklik s.t võiks olla reaalses süsteemis kasutamiseks ja on loodud suure põhjalikkusega. Plussina tooksime välja XML koodiga kaasnevate näidiste olemasolu ja selgitavat informatsioon, mis täidab piisava, kuid mitte koormava, dokumentatsiooni rolli. Kood on puhas ja elementide nimetamisel on kasutatud läbivalt samat stiili, mis teeb koodi hästi loetavaks ja arusaadavaks. Meie hinnangul vastab meeskonna Enneaegsed projekti XML osa kõigile esitatud tingimustele.