Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2017

From EIK wiki


Contents

Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2017

Eesmärk

Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust.

  • SOAP veebiteenuse puhul eeldatakse WCF tehnoloogia kasutamist. Vanema põlvkonna ASP.NET veebiteenuse loomine ei ole lubatud, kuna seda ei toeta ka Microsoft enam tänasel päeval.
  • REST teenuste loomisel tuleks kasutada ASP.NET Web API võimalusi.

Kaugem eesmärk on loomulikult hinne :).

Reeglid

Kodutöö koosneb kolmest eraldiseisvast ülesandest:

  • Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)
  • Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes
  • Luua klientrakendus

Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda. 1,2 ja viie liikmelised meeskonnad tuleks õppejõuga eraldi kooskõlastada.

Töö käiku kajastatakse http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.

Tähtajad

  • XML fail NB! Täpsem info
    • XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt 20. märts 2017.
    • Retsensioonid XML-failide kohta peavad tehtud olema 27. märts 2017.
    • Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.
  • Veebiteenus NB! Täpsem info
    • Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: 17.aprill 2017
    • Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 29. mai 2017.
    • Retsensioonid veebiteenuste kohta peavad tehtud olema 08. juuni 2017.


  • Klientrakendused NB! Täpsem info
    • Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 29. mai 2017.
    • Retsensioonid klientrakenduste kohta peavad tehtud olema 08. juuni 2017.


Hindamine

Üldised kriteeriumid

Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.

Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus.

Maksimumtulemuse annab (vähemalt 4/6):

  • Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)
  • Mobiilrakendused
  • AngularJS klientrakendus
  • Kogukondade kaasamine
  • Kasutajamugavus
  • Läbimõeldud töökorraldus
  • Lisavõimaluste realiseerimine (vt näidisteemad)

XML andmefail

Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning minimaalselt kaks sobivat XSL transformatsiooni faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. Transformatsioonid peavad sisaldama midagi enamat, kui ainult üks for-each klausel. Transformatsiooni käigus peaks kasutama vajadusel parameetreid ning kindlasti ka erinevaid tingimuste kontrolle.

XML-il peab olema vähemalt 4 loogilist dimensiooni.

<dim1>
  <dim2>
    <dim3>
      <dim4>
      </dim4>
    </dim3>
  </dim2>
</dim1>

Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.

Käesoleva ülesande käigus peab looma meeskonna ning selle wiki lehekülje

Veebiteenus

Loodav veebiteenus peab võimaldama:

  • Teenuse pakkumist
  • Teenuse kasutajate tuvastamist ning haldamist
  • Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes
  • Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.

Loodav veebiteenus peab toetama mitme kasutaja võimalust.

Loodav veebiteenus tuleb luua kasutades Windows Communication Foundation või ASP.NET MVC Web API tehnoloogiat

Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,


Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).

Klientrakendus

Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.

Variant1: teha klientrakendus enda loodud veebiteenusele

Variant2: teha klientrakendus mõnele levinud veebiteenusele. Näiteks:

Retsensioonid

Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.

Retsensioon peab sisaldama minimaalselt...

  • XML - ...200 sõna.
  • Veebiteenus - ...600 sõna.
  • Klientrakendus - ...600 sõna.

Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.

Konsultatsioonid

Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma
töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida
õppejõuga kokkuleppeid kontaktidel
mait.poska [ät] itcollege.ee või (+372 53 469 734)
(teksti originaalautor Priit Raspel)

Kaitsmisele registreerumine

Kaitsmine toimub ruumis 314 neljapäeval, 8ndal juunil peale konsultatsiooni, mis algab kell 16:00.

  • 16:30 - Bob's Burgers
  • 16:45 - Redundant Rappers
  • 17:00 - ...
  • 17:15 - Ott
  • 17:30 - ..
  • 17:45 - ..
  • 18:00 - ..
  • 18:15 - ..

kui nendest aegadest ei piisa, siis lisada aegu juurde ise 15 min tsükliga


Reede

  • 16:00 - Meeskond: QView (neljapäeval pole tiimi!)
  • 16:15 - Meeskond: HelpOut
  • 16:30 - Meeskond: VeebiGurmaanid
  • 16:45 -
  • 17:00 - Meeskond: Blogify
  • 17:15 - Meeskond: Sense Of Direction
  • 17.30 - ??? Profit
  • 17.45 -
  • 18.00 - Meeskond: Echo (Tiimiliikmed jõuavad selleks ajaks)

... kui nendest aegadest ei piisa, siis lisada aegu juurde ise 15 min tsükliga

Esmaspäev

  • 08:45 -
  • 09:00 - Unnamed team
  • 09:15 - RK
  • 09:30 - Kirde sai
  • 09:45 -
  • 10:00 - ..
  • 10:15* - Falador
  • Ott
  • Mjart *

..ülejäänud meeskonnad panevad nime kirja siia ning kaitsmine toimub päeva jooksul jooksvalt. Kaitsta saavad need, kellel on nimi siin kirjas

Teemad 2017 kevad

Kodutöö koosneb kolmest eraldiseisvast ülesandest:

  • Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)
  • Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes
  • Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele

NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.


Näidisteemad

Nimede pakkumise teenus

Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: autocompleter tarvis teenuse pakkumine

Ülesanne

Luua sobiva alguse järgi nimede pakkumise teenus:

  • alates kahetähelisetest algustest pakkuda sobivad nimesid
  • luua võimalus kasutajatel nimesid lisada
  • luua võimalus administraatoril nimesid muuta/kustutada
  • meeste ja naiste nimed peavad olema süsteemis eristatavad
  • luua võimalus, mis võimaldab kuvada populaarseid nimesid
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud

Külastusstatistika teenus

Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.

Ülesanne

Luua külastusstatistika teenus:

  • kasutaja saab teenuses registreerida külastusi
  • kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks

Lisavõimalused:

  • luua võimalus registreerida alamlehtede külastusstatistikat
  • luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)

Telefoniraamatu teenus

Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida

Ülesanne

Luua telefoniraamatu teenus:

  • kasutaja saab teenuses kontakte lisada ja kustutada
  • kasutaja saab kontaktide nime/telefoninumbri jne abil otsida
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • kasutajaid on võimalik lisada gruppidesse
  • kasutajal on võimalik lisada vajalike kontaktandmete liike
  • kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper

RSS voogude kogumise ja uudiste kuvamise teenus

Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda

Ülesanne

Luua RSS voogude haldusteenus:

  • kasutaja saab teenuses RSS vooge lisada ja kustudada
  • kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • kasutaja saab RSS vooge vaadata eraldi või grupeeritult
  • vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega

Meeskonnad 2017

Päevaõpe

Meeskond: Helistajad

Liikmed:

  • Kristjan Tõnismäe

Meeskonna koduleht: Helistajad

Retsentsioon meeskonnale:

Meeskond: QView

Liikmed:

  • Semjon Greef
  • Martin Nigul
  • Martin Nõukas
  • Margus Muru
  • Lisandra Noor

Meeskonna koduleht: Meeskond: QView

Retsentsioon meeskonnale: VeebiGurmaanid

Meeskond: Redundant Rappers

Liikmed:

  • Taavi Kliss
  • Kertu Nurmberg
  • Anneli Asser
  • Mart-Erki Nõumees

Meeskonna XML/XSD/XSLT.

Meeskonna lõpptoode: RedRap.

Meeskonna retsensioon XML-i osas meeskonnale Sense Of Direction.

Meeskonna retsensioon veebiteenuse osas meeskonnale Bob's Burgers.

Meeskonna retsensioon klientrakenduse osas meeskonnale Bob's Burgers.

Meeskond: Sense Of Direction

Liikmed:

  • Ilja Andrejev
  • Aleksandr Babõkin
  • Vladislav Lahtarin
  • Vladislav Kovaltšuk

Meeskonna koduleht: Sense Of Direction
XML/XSD/XSLT osa asub siin
Retsensioon XML-failide kohta meeskonnale "Poly" asub siin
Retsensioon meeskonna "Bob's Burgers" veebi- ja klienrakendusele asub siin

Meeskond: RK

Liikmed:

  • Raido Kivinurm

Esimene osa: XML / XSD / XSLT HTML / XSLT XML
Retsensioonid

Meeskond: Echo

Liikmed:

  • Mihkel Vajak
  • Janno Oolo
  • Mari-Liis Oldja
  • Arti Zirk

XML/XSD/XSLT

Retsensioon meeskonnale Redundant Rappers

Kood V1: Echo360

Meeskond: Bob's Burgers

Liikmed:

  • Aleksei Kopõlov
  • Sander Perens

Retsensioon meeskonnale VeebiGurmaanid

Meeskond: VeebiGurmaanid

Liikmed:

  • Koit Kõrvel
  • Marko Kask
  • Melissa Eenmaa
  • Joosep Koort

Retsentsioon meeskonnale: HelpOut

Meeskond: Muru

Liikmed:

  • Murdho Savila

Retsensioonid

Meeskond: Repi

Liikmed:

  • Renet Pirso

Retsensioon: BLOGIFY

Meeskond: HelpOut

Liikmed:

  • Mikk Sarapuu
  • Martin Paakspuu
  • Kerdo Kullamäe
  • Marvin Mardiat
  • Piret Pomerants

Meeskonna koduleht

Retsensioonid

  • XML/XSLT/XSD retsensioon meeskonnale Falador asub siin

Meeskond: Poly

Liikmed:

  • Kristian Kalm
  • Roland Kontson

Meeskond Nope

  • Raido Vell
  • Taavi Vesinurm
  • Kaspar Kaal
  • Lisette Noor
  • Madis Roosioks

Meeskonna koduleht: Nope

XML/XSLT/XSD
Retsensioon meeskonnale Bob's Burgers
Retsensioon meeskonnale Blogify

Meeskond Alt + Tab

Liikmed:

  • Mihkel Roots
  • Roland Soosaar
  • Krista Norak

Esimene osa: XML | XSD | XSLT HTML | XSLT XML

Analüüs


Retsensioon meeskonnale Muru

Meeskond: Kirde sai

Liikmed:

  • Taavi Teearu
  • Berit Põldoja

XML/XSD/XSLT

XML retsensioon Proovitud abielu

Klientrakenduse ja Veebiteenuse retsensioon meeskonnale Mjart

Meeskond: Unnamed Team

Liikmed:

  • Andreas Kirotar
  • Jaan Kostõgov

Meeskonna koduleht: Unnamed Team

Retsensioonid meeskondadele Falador ja Ott Retsensioonid kõige all

  • Veebiteenusele, meeskonnale Falador
  • Klientrakendus, meeskonnale Ott

Meeskond ??? Profit

  • Aivar Romandi
  • Frank Karl Koppel
  • Aldin Talve

Retsensioon meeskonnale Purgis

Meeskond: Purgis

Liikmed:

  • Märt Lõhmus
  • Kelli Lukas

Meeskonna koduleht: Purgis
Esimene osa asub siin

XML Retsensioon meeskonnale Alt + Tab

Meeskond: Falador

Liikmed:

  • Madis Lugus
  • Taavi Metsvahi
  • Elina Kuldkepp

Meeskonna koguleht: Meeskond: Falador
XML/XSD/XSLT
Veebiteenuse analüüs
XML retsensioon meeskonnale: QView
Veebiteenuse analüüsi retsensioon meeskonnale: QView

Teenuse repo asub siin: Teenus
Klientrakenduse repo asub siin: Klientrakendus

Meeskond: Blogify

Liikmed:

  • Hando Laasmägi
  • Tarvo Tammejuur
  • Cathy Toomast
  • Tõnn Vaher

XML etapi Retsensioon meeskonnale: Ott

LÕPPTOODE:SIIN (teenuse ja kliendi zipid + Käivitusjuhend)

Kliendi ja teenuse retsensioonid meeskonnale HelpOut

Meeskond: Proovitud abielu

Liikmed:

  • Elina Kuldkepp

XML/XSD/XSLT

XML Retsensioon meeskonnale Nope

Meeskond: Mjart

Liikmed:

  • Märt Häkkinen

XML/XSLT/XSD Retsensioon meeskonnale [Proovitud Abielu https://wiki.itcollege.ee/index.php/Talk:Proovitud_abielu]

Klientrakenduse/Teenuse retsensioon meeskonnale [Ott https://wiki.itcollege.ee/index.php/Talk:Ott]

Meeskond: Ott

Liige:

  • Ott Sõerumäe

Retsensioon meeskonnale Kirde sai

Meeskond: PageNotFound

Liige:

  • Arvo Paomees

Retsensioonid

Meeskond: TahaksLopetada

Liikmed:

  • Mart Naris

Meeskond: PhoneBookService

Liikmed:

  • Indrek Tamm

Meeskond: Sulased

Liikmed:

  • Siim Osa
  • Taavi Kivimaa

Koduleht
Restsensioon XML/XSD/XSLT


Kaugõpe

Meeskond: CoverMe

Liikmed:

  • Karit Kilgi
  • Sten Kaasik
  • Ragne Auling
  • Silja Kralik

Meeskonna koduleht: Meeskond: CoverMe

XML failide retsensioon meeskonnale PC KartKicker: Talk:Team_PC_KartKicker

XML failide retsensioon meeskonnale PC KartKicker: Talk:Team_Ticketer

Veebiteenuse retsensioon meeskonnale SPOT: Talk: Team_SPOT

Meeskond: SPOT

Liikmed:

  • Sigrid Pachel
  • Oliver Tiks

Esitatud tööd leiab meeskonna lehelt

Meeskond: JRT

Liikmed:

  • Riho Uusjärv
  • Jevgeni Gavrilov
  • Tiit Kuuskmäe

Retsensioon XML-failide kohta meeskonnale "PC KartKicker" [1]

Retsensioon XML-failide kohta meeskonnale "Ninjas in pyjamas" [2]

Restsensioon Veebiteenusele meeskonnale "SPOT" [3]

Meeskond: Ticketer

Liikmed:

  • Liina Abner
  • Krista Rüütel
  • Roland Türi

Meeskond: Ninjas in Pyjamas

Liikmed:

  • Anna Linskaja
  • Karen Grigorjan
  • Sergei Hristoforov

Meeskond: Talutooted

Liikmed:

  • Mihkel Matson
  • Taavi Tilk

XML/XSD/XSLT

Retsensioon: Talk:PC_KartKicker

Lõpptoode: Lõpptoode

Retsensioon lõpptootele: Talk:DevHelpVR2 [TODO]

Meeskond: DevHelp

Liikmed:

  • Martin Jääger
  • Kristo Leemets

XML failide retsensioon tiimile Ticketer, 26.03.2017: Talk:Ticketer

Lõpptoode: Lõpptoode

Projekti TFS: DevHelp2

Lõpptoote retsensioon: [TODO]

Meeskond: PC KartKicker

Liikmed:

  • Martin Kask
  • Rain Saarmäe
  • Jan Eerik

XML failide retsensioon meeskonnale DevHelpVR, 27.03.2017: Talk:DevHelpVR
XML failide retsensioon meeskonnale Ninjas in pyjamas, 27.03.2017: Talk:Ninjas_in_pyjamas

Link lõpptoote Git repositooriumile (ainult teenus).

Link meeskonna DevHelp lõpptoote retsensioonile

Meeskond: rent-A-bike

Liikmed:

  • Erika Ehmann

Meeskond: A$unik

Liikmed:

  • Hardi Antsov
  • Juhan Trink

Klientrakenduse retsensioon meeskonnale Ticketer.

Veebiteenuse retsensioon meeskonnale Team_SPOT.