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

From EIK wiki


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

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 API2/ASP.NET Core 2.0/WCF 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

  • Veebiteenus NB! Täpsem info
    • Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: 01.aprill 2018. Lisaks on 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 peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 27. mai 2018.
    • Retsensioonid veebiteenuste kohta peavad tehtud olema 03. juuni 2018.


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


  • XML fail NB! Täpsem info
    • XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt 01. juuni 2018.
    • Retsensioonid XML-failide kohta peavad tehtud olema 05.juuni 2018.

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), paigaldusjuhend ning lahenduse kirjeldus.

Maksimumtulemuse annab (vähemalt 4/7):

  • Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)
  • Mobiilirakendused/Angularis/reactis loodud klientrakendus
  • Kogukondade kaasamine
  • Kasutajamugavus
  • Läbimõeldud töökorraldus
  • Lisavõimaluste realiseerimine (vt näidisteemad)
  • Korraliku arhitektuuriga kirjutatud kood

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.

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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)

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

Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama

05.06.2018

  • 15:00 - Miisiks
  • 15:15 - Maagikud
  • 15:30 - GoFood
  • 15:45 - Raavo V2™
  • 16:00 - LearnToDrive

Sellele päevale rohkem aegu juurde lisada ei saa


Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest

06.06.2018

  • 17:00 - Raamaturiiul
  • 17:15 - Pakiraam
  • ..


09.06.2018

  • 16:00 - MealPlannerSolo(Triin Oja)
  • 16:15 - Beer Pressure
  • 16:30 - <div>
  • 16:45 - NutriCheck
  • 17:00 - JääTuli
  • 17:15 - Ophelia
  • 17:30 - Kuldne Loojang
  • 17:45 - Hammas
  • 18:00 - VariousArtists
  • 18:15 - Pillar Of Autumn
  • 18:30 - Curry
  • 18:45 - WatchWinders
  • 19:00 - MOT
  • 19:15 - AmateurBB
  • 19:30 - Autolugu
  • 19:45 - VRII2018

Teemad 2018 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

Ü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 2018

Päevaõpe

Meeskond: HairSaloon

Liikmed:

  • Kaido Henrik Elias
  • Arvo Paomees

Meeskond: VariousArtists

Liikmed:

  • Ruudi Vinter
  • Madis Roosioks
  • Pavel Fleišer

Lõpptoode: ZIP

TFS: siin

XML: siin

Retsensioonid: siin

Meeskond: Maagikud

Liikmed:

  • Kristina Rästas
  • Simo Jaanus
  • Artur Tammiste
  • Rauno Lõhmus

Lõpptoote link

Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub siin

XML retsensioon tiimile LTD asub siin

Meeskond: RaamatuRiiul

Liikmed:

  • Alo Avi
  • Arnika Rästa
  • Marite Rammo

Meie XML: XML

Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks: retsensioonid

Meie veebiteenus ning klientrakendus. Zip

Meeskond: Autolugu

Liikmed:

  • Margus Põlma
  • Karl Erik Õunapuu

Veebiteenus: [1]

Klientrakendus: [2]

Meeskond: VRII2018

Liikmed:

  • Kaspar Kaal
  • Teet Adamson
  • Rahel Kangur

Meeskond: Raavo V2™

Liikmed:

  • Peeter Fridolin
  • Kristo Leesmann
  • Rando Rommot

Projekti retsensioon meeskonnale Maagikud

Meeskond: Pillar of Autumn

Liikmed:

  • Taavi Põder
  • Taavi Vesinurm (Meeskonnast lahkunud)
  • Raido Vell

Lõpptoode API ja klientrakendus: Lõpptoode

Meeskond: JääTuli

Liikmed:

  • Tarmo Luugus
  • Leho Kivistik
  • Hannes Mäeorg
  • Marten Tammeleht

Retsensioonid meeskonnale Raamaturiiul asuvad siin

Meeskond: JustABot

Liikmed:

  • Argo Hansen

Meeskond: Pakiraam

Liikmed:

  • Kristo Naeris
  • Indro Kottise

Klientrakendus siin ja veebiteenus siin

Retsensioon meeskonna Raavo v2 klientrakendusele : Retsensioon

Retsensioon meeskonna Raavo v2 veebiteenusele:

Retsensioon meeskonna Raavo v2 XML-ile : Retsensioon

Meeskond: GoFood

Liikmed:

  • Rando Kurel
  • Henrik Prangel
  • Markus Mänd
  • Edgar Tereping
  • Jane Kaldma

Lõpptoode: lõpptoote leiab siit

Meie rühma kirjutatud retsentsioonid rühmale Maagikud:Retsensioon

Meeskond: LearnToDrive

Liikmed:

  • Eve Ormisson
  • Carlos Kirtsi

Projekt asub siin, kliendina kasutame JustInCaseWPFi

Projekti retsensioon meeskonnale Maagikud

XML osa retsensioon meeskonnale RaamatuRiiul

Meeskond: Miisiiks

Liikmed:

  • Christo Aruste
  • Heleriin Malkov
  • Tõnis Prants

Veebiteenus

Veebiteenus v2 (05.06): Veebiteenus

Klientrakendus

Klientrakendus v2 (05.06): Klientrakendus

XML


Retsensioonid meeskonnale Raavo V2™

Veebiteenus: Retsensioon

Klientrakendus: Retsensioon

XML: XML

Meeskond: <div>

Liikmed:

  • Kaarel Pärtel
  • Marek Juhanson
  • Kai Kallastu

Retsensioonid rühmale Miisiiks™: veebiteenus, klientrakendus ja XML

Kaugõpe

Meeskond: BestInShow

Liikmed:

  • Liina Abner
  • Marju Pütsepp
  • Liisi Taimre

Lõpptoode veebiteenus: https://www.dropbox.com/s/j5ixmwmx45kxcyo/BestInShow.zip?dl=0
Kasutusjuhend: https://wiki.itcollege.ee/index.php/BestInShow#Kasutusjuhend
Lõpptoode klient: https://bitbucket.org/Marjup/bestinshow/
XML failid: Schema, XML ja XSLT HTML ja XML transformatsiooniks
Retsensioon veebiteenusele:Retsensioon projektile WatchWinders
Retsensioon klientrakendusele: TODO retsenseerime projekti WatchWinders
Retsensioon XML-ile: Retsensioon_WatchWinders_XML-ile
BestInShow meeskonda retsenseerib Curry

Meeskond: AssistDesq

Liikmed:

  • Karen Grigorjan

Meeskond: WatchWinders

Liikmed:

  • Toomas Juhkov
  • Kunnar Kukk
  • Tiit Kuuskmäe

Link klientrakendusele ja API-le
Retsensioon grupi "Kuldne Loojang" veebiteenusele

Meeskond: Kuldne loojang

Liikmed:

  • Andrus Seiman
  • Marko Belzetski
  • Priit Tiganik
  • Kristjan Peterson (loobus)


Lõpptoode: algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018


Meie tehtud retsensioonid:

Meeskond: Ophelia

Liikmed:

  • Siim Kallari
  • Andres Kepler (loobus)
  • Jorma Rebane

Lõpptoote link

Kasutusjuhend(Kaasas ka lõpptootes)

XML Ülesanne

Klientrakenduse retsensioon meeskonnale MealPlannerSolo

Meeskond: SharpRestoVRII

Liikmed:

  • Andres Aava (lahkunud liige)
  • Henri Annilo
  • Jaan Koolmeister
  • Lauri Üksti

Lähtekood: CSharpResto

XML: Wikis

Retsensioonid: Meeskonnale Hammas

Meeskond: BeerPressure

Liikmed:

  • Sigrid Aasma
  • Evelin Jõgi
  • Martin Kask
  • Marko Nõu

Projekt: TaisKohtApi

Lõpptoode: GitHub commit

XML: Beer Pressure XML/XSD/XSLT

Meie kirjutatud XML failide retsensioon: Team MOT retsensioon

Meie kirjutatud veebiteenuse retsensioon: Team MOT retsensioon

Meie kirjutatud klientrakenduse retsensioon: Team Kuldneloojang retsensioon

Meeskond: UCanDo

Liikmed:

  • Mart Raus
  • Ando Kiidron (loobus)
  • Liina Saar

Lõpptoode: UCanDo
XML: XML
XSD: XSD
XSLT > HTML: XSLT>HTML
XSLT > XML: XSLT>XML
Veebiteenuse retsensioon (GoFood): link
Klientrakenduse retsensioon (GoFood): link
XML retsensioon (Miisiiks): link

Meeskond: MOT

Liikmed:

  • Merike Meizner
  • Hardi Tiitus

Lõpptoode: http://enos.itcollege.ee/~mmeizner/MOT/
Meie kirjutatud veebiteenuse, klientrakenduse ja XML'i retsensioon: Team Raavo V2

Meeskond: MealPlanner

Liikmed:

  • Triin Oja
  • Rein Remsu

Meeskond: Curry

Liikmed:

  • Rain Elken
  • Peeter Ploom

Lõpptoode: link
Meie retsensioon BestInShow meeskonnale: link
XML: link
XSD: link
XSLT1: link
XSLT2: link

Curry meeskonna veebiteenust, klientrakendust ja XML-i retsenseerib meeskond KuldneLoojang. Curryle kirjutatud retsensioonid asuvad siin: link

Meeskond: Hammas

Liikmed:

  • Sten Lunden

Esitlus: slaidid
Lõpptoode: azure
Projekt: github
XML wiki
Veebiteenuse retsensioon meeskonnale GoFood
Klientrakenduse retsensioon meeskonnale GoFood
XML retsensioon meeskonnale MealPlannerSolo

Meeskond: LabLite

Liikmed:

  • Alex Kaska

Meeskond: AmateurBB

Liikmed:

  • Taavi Kivimaa

Veebiteenus: GitHub
Klientrakendus: GitHub
XML wiki
Veebiteenuse retsensioon wiki
Klientrakenduse retsensioon -
XML retsensioon -

Meeskond: MealPlannerSolo

Liikmed:

  • Triin Oja

XML
Veebiteenus ja klientrakendus- täiendatud 16.06.2018!

Meeskond: NutriCheck

Liikmed:

  • Artyom Likhachev

Project:
Veebiteenus
Klientrakendus
XML: TODO
Retsensioon: TODO