Meeskond: Spooky Scary Skeletons: Difference between revisions
Line 10: | Line 10: | ||
== Analüüs == | == Analüüs == | ||
=== 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 (alamtähtajad, 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 | |||
Rakendusel on kaks töörežiimi: offline ja online. Online režiimi kasutamiseks peab kasutaja looma serverisse konto. Kasutaja saab ära märkida oma kooli(d) ja deklareeritud õppeained. Õppeainetele subscribe’ides 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 või mitteseotud gruppe. | |||
Online režiimi kasutades pakub rakendus kasutajale ka teiste antud aine deklareerinud kasutajate poolt märgitud tähtaegu ja lisainfot nende kohta. Kasutajale pakutakse automaatselt seda versioon taskist, mis hetkel on teiste kasutajate hulgas kõige populaarsem. Kasutaja võib selle tagasi lükata, kui task teda ei huvita, või võtta vastu mõne muu versiooni taskist. Kasutaja võib teiste lisatud taskile ka ise atribuute lisada, mis juhul neid muudatusi pakutakse ka teistele kasutajatele. | |||
Rakendus koosneb kahest põhilisest osast: klient ja server. | |||
=== Andmebaas === | === Andmebaas === | ||
=== Infovahetus === | === Infovahetus === |
Revision as of 23:01, 1 November 2015
Meeskond ja rollid
- Kärt Palm
- Karina Egipt - Projektijuht
- Erika Ehmann
- Silver Saks - Wiki pidaja
Idee
TODO list 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). Offline funktsionaalsus kohaliku andmebaasiga, mis replikeeritakse serverisse(kasutaja soovil). 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
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 (alamtähtajad, 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 Rakendusel on kaks töörežiimi: offline ja online. Online režiimi kasutamiseks peab kasutaja looma serverisse konto. Kasutaja saab ära märkida oma kooli(d) ja deklareeritud õppeained. Õppeainetele subscribe’ides 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 või mitteseotud gruppe. Online režiimi kasutades pakub rakendus kasutajale ka teiste antud aine deklareerinud kasutajate poolt märgitud tähtaegu ja lisainfot nende kohta. Kasutajale pakutakse automaatselt seda versioon taskist, mis hetkel on teiste kasutajate hulgas kõige populaarsem. Kasutaja võib selle tagasi lükata, kui task teda ei huvita, või võtta vastu mõne muu versiooni taskist. Kasutaja võib teiste lisatud taskile ka ise atribuute lisada, mis juhul neid muudatusi pakutakse ka teistele kasutajatele.
Rakendus koosneb kahest põhilisest osast: klient ja server.
Andmebaas
Infovahetus
Kasutajaliides
Kasutajakontode haldus
Võimalikud probleemid
Spam
Probleemi kirjeldus
Süsteemi võivad oma huvides ära kasutada spämmerid, täites grupi rämpsinfoga.
Lahendus
Kasutajakonto loomisel kasutada CAPTCHA-t.
Bayesian spam filter, mis kasutab õppimiseks kasutajate poolt aktsepteeritud/tagasi lükatud muudatusi.
API rate limiting.
Privaatsus
Probleemi kirjeldus
Tingimata tuleb kaitsta kasutaja poolt rakenduses privaatseks märgitud infot, ning kasutajakonto ligipääsuinfot. Kasutaja soovil peab olema võimalik rakendusest kõik temaga seotud info eemaldada.
Lahendus
Krüpteeritud andmevahetus teenusserveriga(TLS). Replikeerimisel privaatne info eelnevalt krüpteerida(parooli alusel genereerida sümmeetriline krüptovõti ja valida turvaline krüptoalgoritm). Kasutaja info eemaldamisel: mida teha teiste kasutajatega kes on antud info juba enda plaani lisanud?
Replikatsioonikonfliktid
Probleemi kirjeldus
Offline andmebaasi replikeerides serverisse võib juhul, kui kasutaja kasutab mitut klienti, tekkida ebakõla andmete vahel.
Lahendus
Konfliktide tuvastamine, ning kasutaja poolt nende manuaalne lahendamine. Andmebaasi disainides silmas pidada, et ei oleks võimalik duplikaatvõtmete tekkimine.
Projekti kirjeldus
Tehnoloogiad
Arendusmustrid
Versioonikontroll
Koodi stiilireeglid
Otsustasime, et kogu programmi kood, muutujanimed ja koodi kommentaarid on ingliskeelsed. Muutujanimedel kasutame järgmiseid reegleid:
- Klassi privaatmuutujad algavad _ prefiksiga;
- Klassi avalikud meetodid ja muutujad algavad suurtähega;
- Kõik muud muutujad algavad väiketähega;
Kõik muutujanimed peavad sisaldama ainult US-ASCII tähti või numbreid ( ^[a-zA-Z0-9]+$ ). Liigendamiseks on suurtähed.
Muutujad peavad võimalikult täpselt kirjeldama oma sisu abstraktsel tasemel. Erandiks on meetodi- ja funktsioonisisesed muutujad millede sisu on kontekstist lihtsalt tuletatav. Näiteks "i" tsükliloendurina jne.
Muutujanimed ei tohi sisaldada tüübiviidet.
"Maagilised" muutujad peavad olema deklareeritud konstantidena, ning omama kommentaari. Kõiki antud muutujaid peab olema võimalik programmi konfiguratsioonifailist muuta.
Litsents
Kogu rakendus avaldatakse GNU General Public License v3.0 all. (GPL)
Avaldatud failid
Arendusprotsess
- 8.10.2015 - Loodud wiki leht ja lepitud kokku esimene kohtumine idee leidmiseks ja algseks analüüsiks.
- 19.10.2015 - Esimene kohtumine. Leitud idee rakenduse loomiseks, määratud rollid esimeseks analüüsietapiks.
- 1.11.2015 - Teine kohtumine. Valmis analüüs.