Meeskond: Spooky Scary Skeletons

From ICO wiki
Revision as of 00:01, 2 November 2015 by Kegipt (talk | contribs) (→‎Analüüs)
Jump to navigationJump to search

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.

Lisad

[1]