<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Slunden</id>
	<title>ICO wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Slunden"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Slunden"/>
	<updated>2026-05-05T22:42:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131641</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131641"/>
		<updated>2018-06-12T11:59:34Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - MealPlannerSolo(Triin Oja)&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
*17:30 - Kuldne Loojang&lt;br /&gt;
*17:45 - Hammas&lt;br /&gt;
*18:00 - VariousArtists&lt;br /&gt;
*18:15 - Pillar Of Autumn&lt;br /&gt;
*18:30 - Curry&lt;br /&gt;
*18:45 - WatchWinders&lt;br /&gt;
*19:00 - MOT&lt;br /&gt;
*19:15 - AmateurBB&lt;br /&gt;
*19:30 - Autolugu&lt;br /&gt;
*19:45 - VRII2018&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://drive.google.com/open?id=1Pq8Lhrs3G5mGiTje70ww-zMBNB5cXnRh ZIP]&lt;br /&gt;
&lt;br /&gt;
TFS: [https://variousartists.visualstudio.com/VariousArtists/_versionControl/changesets siin]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/VariousArtists#XML siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid: [https://wiki.itcollege.ee/index.php/VariousArtists#Retsensioonid siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenus ning klientrakendus.&#039;&#039;&#039; [https://www.dropbox.com/s/ugbvx4j4zdlbp68/RaamatuRiiul.7z?dl=0 Zip]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [http://enos.itcollege.ee/~mpolma/vr2/API.zip]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://github.com/karlerikounapuu/autolugu-front]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm (Meeskonnast lahkunud)&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode API ja klientrakendus:&#039;&#039;&#039; [https://github.com/taavip9/Veebirakendused-II Lõpptoode]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raamaturiiul asuvad [https://wiki.itcollege.ee/index.php/Jaatuli#Retsensioonid siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekt [https://wiki.itcollege.ee/index.php/LTD#Kood_ise asub siin, kliendina kasutame JustInCaseWPFi]&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/Miisiiks#XML_retsensioon  XML]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode veebiteenus:&#039;&#039;&#039; [https://www.dropbox.com/s/j5ixmwmx45kxcyo/BestInShow.zip?dl=0 https://www.dropbox.com/s/j5ixmwmx45kxcyo/BestInShow.zip?dl=0]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Kasutusjuhend:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BestInShow#Kasutusjuhend https://wiki.itcollege.ee/index.php/BestInShow#Kasutusjuhend]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode klient:&#039;&#039;&#039; [https://bitbucket.org/Marjup/bestinshow/ https://bitbucket.org/Marjup/bestinshow/]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML failid:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BestInShow#XML_failid Schema, XML ja XSLT HTML ja XML transformatsiooniks]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Retsensioon veebiteenusele:&#039;&#039;&#039;[https://docs.google.com/document/d/1C2pLotWV5dNU7TdBTTwZr9Lrh6VGtsN0FDzCzBWUBWg/edit?usp=sharing Retsensioon projektile WatchWinders]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon klientrakendusele: TODO retsenseerime projekti WatchWinders&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Retsensioon XML-ile:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BestInShow#Retsensioon_WatchWinders_XML-ile Retsensioon_WatchWinders_XML-ile]&amp;lt;br&amp;gt;&lt;br /&gt;
BestInShow meeskonda retsenseerib [https://wiki.itcollege.ee/index.php/Meeskond:Curry#Meie_retsensioonid_BestInShow_meeskonnale &#039;&#039;&#039;Curry&#039;&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AssistDesq Meeskond: AssistDesq]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
* Karen Grigorjan&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/WatchWinders#Link_klientrakendusele_ja_API-le Link klientrakendusele ja API-le]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://drive.google.com/file/d/1OtzOCPiWixsrbHcGCcdHgXIgz3_fsC7h/view Retsensioon grupi &amp;quot;Kuldne Loojang&amp;quot; veebiteenusele]&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* [https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0 .zip fail rakendus ja klient koos] &lt;br /&gt;
* [https://bitbucket.org/itcollegeprojects/loojang-app veebirakenduse repo] &lt;br /&gt;
* [https://bitbucket.org/itcollegeprojects/loojang-client klientrakenduse repo] &lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus XML:  link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie tehtud retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/Kuldneloojang#Veebiteenusele veebiteenuse retsensioon meeskonna Curry tööle.]&lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/Kuldneloojang#Klientrakendusele klientrakenduse retsensioon meeskonna Curry tööle.]&lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML-ile XML retsensioon meeskonna Curry tööle.]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/v63fkbjnd5umqqm/Ophelia.zip?dl=0 Lõpptoote link]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#L.C3.B5pptoote_kasutusjuhend Kasutusjuhend(Kaasas ka lõpptootes)]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#XML_.C3.9Clesanne XML Ülesanne]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#Klientrakenduse_retsensioon_meeskonnale_MealPlannerSolo Klientrakenduse retsensioon meeskonnale MealPlannerSolo]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/SharpRestoVRII#XML Wikis]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid: [https://wiki.itcollege.ee/index.php/SharpRestoVRII#Retsensioon_meeskonnale_Hammas Meeskonnale Hammas]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron (loobus)&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039; [https://drive.google.com/drive/folders/1GIgiG5NvmnnKoQYmWWbfV_9Nhs2dezz8?usp=sharing UCanDo] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML: &#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/UCanDo#XML XML] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSD: &#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/UCanDo#XSD XSD] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSLT &amp;gt; HTML: &#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/UCanDo#XSLT_.3E_HTML XSLT&amp;gt;HTML] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSLT &amp;gt; XML: &#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/UCanDo#XSLT_.3E_XML XSLT&amp;gt;XML]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon: &#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon: &#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon: &#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  [http://enos.itcollege.ee/~pploom/VR2/ link] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie retsensioon BestInShow meeskonnale: &#039;&#039;&#039;  [https://wiki.itcollege.ee/index.php/Meeskond:Curry#Meie_retsensioonid_BestInShow_meeskonnale link] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML: &#039;&#039;&#039;  [https://wiki.itcollege.ee/index.php/Meeskond:Curry#XML_andmefail link] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSD: &#039;&#039;&#039;  [https://wiki.itcollege.ee/index.php/Meeskond:Curry#XSD_schema_fail link] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSLT1: &#039;&#039;&#039;  [https://wiki.itcollege.ee/index.php/Meeskond:Curry#XSLT_transformatsioon:_XML_-.3E_HTML link] &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XSLT2: &#039;&#039;&#039;  [https://wiki.itcollege.ee/index.php/Meeskond:Curry#XSLT_transformatsioon:_XML_-.3E_XML link] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Curry meeskonna veebiteenust, klientrakendust ja XML-i retsenseerib meeskond KuldneLoojang. Curryle kirjutatud retsensioonid [https://wiki.itcollege.ee/index.php/Kuldneloojang#Meie_tehtud_retsensioonid asuvad siin: link]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esitlus:&#039;&#039;&#039; [http://enos.itcollege.ee/~slunden/ILD-core.pptx slaidid]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Veebiteenuse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Klientrakenduse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#XMLi_retsensioon_meeskonnale_MealPlannerSolo MealPlannerSolo]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&#039;&#039;&#039;Veebiteenus:&#039;&#039;&#039; [https://github.com/Tafkinz/AmateurBB/tree/BB-1 GitHub]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakendus:&#039;&#039;&#039; [https://github.com/Tafkinz/frontend GitHub]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/AmateurBB#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/AmateurBB#Retsensioon wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon&#039;&#039;&#039; -&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon&#039;&#039;&#039; -&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail XML]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[http://enos.itcollege.ee/~troja/VRII2018/ Veebiteenus ja klientrakendus]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&#039;&#039;&#039;Project:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;[https://www.dropbox.com/s/irgev5w9ofifg5m/vr2_service-v3.zip?dl=0 Veebiteenus]&lt;br /&gt;
&amp;lt;br/&amp;gt;[https://www.dropbox.com/s/7kn1u6z2481ligm/WebClient.zip?dl=0 Klientrakendus]&lt;br /&gt;
&amp;lt;br/&amp;gt;&#039;&#039;&#039;XML:&#039;&#039;&#039; TODO&lt;br /&gt;
&amp;lt;br/&amp;gt;&#039;&#039;&#039;Retsensioon:&#039;&#039;&#039; TODO&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131430</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131430"/>
		<updated>2018-06-08T09:39:50Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - MealPlannerSolo(Triin Oja)&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
*17:30 - Kuldne Loojang&lt;br /&gt;
*17:45 - Hammas&lt;br /&gt;
*18:00 - VariousArtists&lt;br /&gt;
*18:15 - Pillar Of Autumn&lt;br /&gt;
*18:30 - Curry&lt;br /&gt;
*18:45 - WatchWinders&lt;br /&gt;
*19:00 - MOT&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenus ning klientrakendus.&#039;&#039;&#039; [https://www.dropbox.com/s/ugbvx4j4zdlbp68/RaamatuRiiul.7z?dl=0 Zip]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm (Meeskonnast lahkunud)&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekt [https://wiki.itcollege.ee/index.php/LTD#Kood_ise asub siin, kliendina kasutame JustInCaseWPFi]&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/Miisiiks#XML_retsensioon  XML]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
Lõpptoode veebiteenus: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Lõpptoode klient: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
XML failid: [https://wiki.itcollege.ee/index.php/BestInShow#XML_failid Schema, XML ja XSLT HTML ja XML transformatsiooniks]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon veebiteenusele: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon klientrakendusele: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon XML-ile: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/v63fkbjnd5umqqm/Ophelia.zip?dl=0 Lõpptoote link]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#L.C3.B5pptoote_kasutusjuhend Kasutusjuhend(Kaasas ka lõpptootes)]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#XML_.C3.9Clesanne XML Ülesanne]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Veebiteenuse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Klientrakenduse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#XMLi_retsensioon_meeskonnale_MealPlannerSolo MealPlannerSolo]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail XML]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[http://enos.itcollege.ee/~troja/VRII2018/ Veebiteenus ja klientrakendus]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131428</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131428"/>
		<updated>2018-06-08T09:35:28Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten2.xml siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
===Veebiteenuse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Projekti arhitektuur vastab headele tavadele ja on üles ehitatud õppejõudude soovituste kohaselt - kasutusel teenuste kiht, mis omakord kasutab uow&#039;d ja repositooriumeid. Kasutusel nii generic kui ka custom repositooriumid. Kood on kirjutatud vastu liideseid (Interface). Kasutusel ka DTO&#039;d mis pannakse kokku Factorites. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Domeenimudel on samuti viisakas. Eksisteerib 12 olemit + kasutajate tabel. Stringid on limiteeritud, PK&#039;d ja FK&#039;d olemas. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kiiduväärt on ka see, et erinevalt mitmetest teistest proovitud projektidest buildis see esimese katsega ja Migrationid läksid kohe läbi. Eks oleks nice-to-have kui tekitatakse ka kohe mõned andmed millega testida (eriti kuna clientapp kippus vigu andma kui mõned objektid olid tühjad), aga ei olnud suur probleem ka ise andmeid tekitada.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Iga domeeniobjekti kohta eksisteerib kontroller, kuhu on süstitud samanimeline teenus. Siin on ehk tegu väikest viisi liiasusega, sest API seisukohast võiks siduvate tabelite andmeid välja anda läbi root-objekti. Näiteks ProductInShoppingListControlleri võiks ära kaotada ning ShoppingListController võiks neid andmeid välja anda olemasolevate päringute lisana (ShoppingListDTO võiks omada kollektsiooni List&amp;lt;ProductInShoppingList&amp;gt;, mille saaks täita kui EFShoppingListRepositoryst välja anda andmed kujul _db.ShoppingList.Include(x =&amp;gt; x.ProductsInShoppingLists). Alternatiivina võiks ProductInShoppingListControlleri meetodid üle viia ShoppingListControllerisse. Sõltumata sellest mis meetodit kasutada, jätaks refereerija alles kontrolleri ainult iga põhilise ’päriselu’ objekti kohta – Store, ShoppingList, Product, NutritionPlan etc ja serveeriks andmeid ainult läbi nende. See teeks ka API tarbija elu lihtsamaks, kuna objektid on intuitiivsemad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kõik kontrollerid (v.a SecurityController) on Authorize annotationiga illustreeritud nagu peabki. Seadistatud on ka Swaggeri endpoint.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
API funktsionaalsuse poolest on realiseeritud kasutajate loomine, autentimine ja andmebaasi salvestamine ning kontrollerid on valmis iga domeeniobjekti CRUD tegevusteks. Teenuste kihis keerulisemat äriloogikat veel ei ole, toimub suht üks-ühele DTO vs domeeniobjekti mappimine ning seejärel repostiooriumisse või tagasi kontrollerisse saatmine. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Lõpetuseks vaataks üle kuidas projekti suhestub hindamiskriteeriumitega:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel) – toote sihtgrupp on paigas, idee on üsna huvitav ja ambitsioonikas. Projekti sajaprotsendilise teostuse korral oleks monetiseerimine kindlasti mõeldav&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Mobiilirakendused/Angularis/reactis loodud klientrakendus – klientrakendus teostatud WPF’is. Konkreetne rakendus vajaks ilmselt Native\Hybrid mobiilset äppi, kuna kasutaja peaks tegevusi tegema mobiilsest seadmest erinevatel aegadel päeva jooksul&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kogukondade kaasamine – sihtgrupp on oma tervisest lugu pidavad inimesed. Ärilise edu korral võib see aidata inimestel teha igapäevaselt paremaid\teadlikumaid valikuid toidu osas ja omab seega positiivset mõju ühiskonnale&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kasutajamugavus – sõltub eelkõige klientäpi realisatsioonist. API kasutusmugavuse kohta on kommentaarid antud eelnevalt. Swaggeri olemasolu on väga abiks.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Läbimõeldud töökorraldus – projektil on versioonihaldus (millesse refereerija millegipärast sisse ei saanud), wiki lehel kirjeldatud lühidalt üldine idee ja soovitud funktsionaalsus. Eks analüüs võiks detailsem olla (andmeskeem jne), aga üldjoontes on lähenemine struktuurne&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Lisavõimaluste realiseerimine (vt näidisteemad) – klientäpp on veel üsna algusfaasis, seega on hetkel keskendutud pigem baasfunktsionaalsuse arendamisele&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Korraliku arhitektuuriga kirjutatud kood – projekti ülesehitus korralik, võiks veel julgemalt eksperimenteerida linq’i ja keerulisemate äriloogikate ehitamisel&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
===Klientrakenduse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Klientrakenduse funktsionaalsus:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Käivitamisel tuleb kasutaja registreerida, misjärel on võimalik sisse logida. Ilma registreerimata rakendust kasutada ei saa. Peale sisselogimist on realiseeritud kaks peamist kasutajajuhtu - toitumiskava loomine ning ostunimekirja tegemine. Lisaks sellele ka konto haldus (mis tähendab momendil rakendusest väljalogimist).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Toitumiskava loomisel tuleb sellele anda nimi, seejärel on võimalik tekitada nädalapäeva-spetsiifilisi kavasid. Peale seoste tekitamise momendil rohkem midagi teha ei saa - domeeniolemid on küllaltki algusjärgus ja peale võtmete seal väga palju rohkem salvestada ei ole. Toitumiskava on võimalik ka kustutada. Sel juhul kustutatakse automaatselt ka päevaspetsiifilised kavad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Ostunimekirja saab luua, peale mida antakse kasutajale võimalus sellesse tooteid lisada. Tooted on jagatud kategooriatesse, peale nimetuse on neil ka kaal, hind ja kasutajaliideses näha erinevad toiteväärtuse indikaatorid. Tootel ja hinnal on üks-mitmene suhe (tootel võib erinevates poodides olla erinev hind), ent päringutes seda momendil ei arvestada ja võetakse esimene leitud hind. Ostunimekirja lisamisel peab kasutaja sisestama koguse, klientrakendus arvutab seejärel vaates lõppsumma kokku. Koguse sisestamisel kontrollitakse, et tegu integeriga, ent sisestada saab ka null või miinusekoguse, mis salvestatakse ka baasi.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Pisut häiris see, et UI ei anna momendil tagasisidet - kas tehtud tegevus õnnestus või ebaõnnestus.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Tehniliselt on API&#039;ga suhtlemiseks loodud baasteenus kus on kirjas API aadress ja loogika tokeni headerisse lisamiseks. Domeeniobjekti-spetsiifilised teenuseklassid pärinevad samast baasklassist. Vaated saavad oma andmed ViewModelitelt, mis omakorda suhtlevad teenustega andmete saamiseks. Refereerija ei oma piisavalt kogemust WPF projektidega, et arhitektuuri süvitsi kommenteerida, ent tundub, et järgitakse MVVM mustrit. Kuna API annab välja puhtalt domeeni-, mitte äriobjekte, siis on ka klientrakendust raske ehitada. Näiteks, et toodetele hinnad arvutada, peab ProductService esiteks tooted pärima (GetProductsFromWebServiceAsync()), seejärel foreach tsüklis iga toote kohta eraldi API hinnapäringu tegema (GetPricesAsync()). Kui ostukorvis on 10 toodet, tehakse API&#039;sse 10 päringut. Selle asemel võiks API välja saata ostukorvi koos toodete ja hindadega - kümne päringu asemel saab siis hakkama ainult ühega.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===XMLi retsensioon meeskonnale MealPlannerSolo===&lt;br /&gt;
&amp;lt;p&amp;gt;Nii xml kui ka xsd failid valideeruvad (testitud http://www.utilities-online.info/xsdvalidation/). Nõue neljatasemelise hierarhia kohta on täidetud, samuti kasutatud kolmel dimensioonil atribuute, mis on enamat kui lihtsalt id. CDATA’t on kasutatud step elemendis, aga võiks julgelt kasutada ka kõigis muudes elementides, mis string andmetüüpi kannavad (näiteks ingredient). &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Skeemifailis - piiratud on toidukordade arv ühes menüüs neljale, atribuut unitoftime on muudetud unsignedBytest positiveIntegeriks (loogiline), element instructions peab esinema vähemalt ühe korra. Mitmete elementide (ingredient, toidukord) ID atribuudid on defineeritud kui nonNegativeInteger (lubatud väärtused { 0,1,2… }) Võibolla sellel on mingi spetsiifiline põhjus, aga ehk saaks ka siin kasutada positiveIntegeri (väärtused { 1,2… }).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Html transformatsioon – tekitatakse viisakas html vaade, kus andmed tabelisse ja listi paigutatakse. Kasutusel foreach tsükkel ja choose avaldis.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Xml transformatsioon – foreach tsükliga loetakse iga menüü toidukordadest välja retseptinimi ning kuvatakse vastavalt koostisosadele allergeenid. Kasutusel samuti foreach ja choose.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131421</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131421"/>
		<updated>2018-06-07T10:23:58Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
*17:30 - Kuldne Loojang&lt;br /&gt;
*17:45 - Hammas&lt;br /&gt;
*18:00 - VariousArtists&lt;br /&gt;
*18:15 - Pillar Of Autumn&lt;br /&gt;
*18:30 - Curry&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenus ning klientrakendus.&#039;&#039;&#039; [https://www.dropbox.com/s/ugbvx4j4zdlbp68/RaamatuRiiul.7z?dl=0 Zip]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm (Meeskonnast lahkunud)&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekt [https://wiki.itcollege.ee/index.php/LTD#Kood_ise asub siin, kliendina kasutame JustInCaseWPFi]&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/Miisiiks#XML_retsensioon  XML]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
Lõpptoode veebiteenus: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Lõpptoode klient: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
XML failid: [https://wiki.itcollege.ee/index.php/BestInShow#XML_failid Schema, XML ja XSLT HTML ja XML transformatsiooniks]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon veebiteenusele: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon klientrakendusele: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon XML-ile: TODO&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/v63fkbjnd5umqqm/Ophelia.zip?dl=0 Lõpptoote link]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#L.C3.B5pptoote_kasutusjuhend Kasutusjuhend(Kaasas ka lõpptootes)]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Ophelia#XML_.C3.9Clesanne XML Ülesanne]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Veebiteenuse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon&#039;&#039;&#039; meeskonnale [https://wiki.itcollege.ee/index.php/Hammas#Klientrakenduse_retsensioon_meeskonnale_GoFood GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon&#039;&#039;&#039; In progress&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail XML]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[http://enos.itcollege.ee/~troja/VRII2018/ Veebiteenus ja klientrakendus]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131420</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131420"/>
		<updated>2018-06-07T10:21:34Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten2.xml siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
===Veebiteenuse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Projekti arhitektuur vastab headele tavadele ja on üles ehitatud õppejõudude soovituste kohaselt - kasutusel teenuste kiht, mis omakord kasutab uow&#039;d ja repositooriumeid. Kasutusel nii generic kui ka custom repositooriumid. Kood on kirjutatud vastu liideseid (Interface). Kasutusel ka DTO&#039;d mis pannakse kokku Factorites. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Domeenimudel on samuti viisakas. Eksisteerib 12 olemit + kasutajate tabel. Stringid on limiteeritud, PK&#039;d ja FK&#039;d olemas. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kiiduväärt on ka see, et erinevalt mitmetest teistest proovitud projektidest buildis see esimese katsega ja Migrationid läksid kohe läbi. Eks oleks nice-to-have kui tekitatakse ka kohe mõned andmed millega testida (eriti kuna clientapp kippus vigu andma kui mõned objektid olid tühjad), aga ei olnud suur probleem ka ise andmeid tekitada.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Iga domeeniobjekti kohta eksisteerib kontroller, kuhu on süstitud samanimeline teenus. Siin on ehk tegu väikest viisi liiasusega, sest API seisukohast võiks siduvate tabelite andmeid välja anda läbi root-objekti. Näiteks ProductInShoppingListControlleri võiks ära kaotada ning ShoppingListController võiks neid andmeid välja anda olemasolevate päringute lisana (ShoppingListDTO võiks omada kollektsiooni List&amp;lt;ProductInShoppingList&amp;gt;, mille saaks täita kui EFShoppingListRepositoryst välja anda andmed kujul _db.ShoppingList.Include(x =&amp;gt; x.ProductsInShoppingLists). Alternatiivina võiks ProductInShoppingListControlleri meetodid üle viia ShoppingListControllerisse. Sõltumata sellest mis meetodit kasutada, jätaks refereerija alles kontrolleri ainult iga põhilise ’päriselu’ objekti kohta – Store, ShoppingList, Product, NutritionPlan etc ja serveeriks andmeid ainult läbi nende. See teeks ka API tarbija elu lihtsamaks, kuna objektid on intuitiivsemad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kõik kontrollerid (v.a SecurityController) on Authorize annotationiga illustreeritud nagu peabki. Seadistatud on ka Swaggeri endpoint.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
API funktsionaalsuse poolest on realiseeritud kasutajate loomine, autentimine ja andmebaasi salvestamine ning kontrollerid on valmis iga domeeniobjekti CRUD tegevusteks. Teenuste kihis keerulisemat äriloogikat veel ei ole, toimub suht üks-ühele DTO vs domeeniobjekti mappimine ning seejärel repostiooriumisse või tagasi kontrollerisse saatmine. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Lõpetuseks vaataks üle kuidas projekti suhestub hindamiskriteeriumitega:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel) – toote sihtgrupp on paigas, idee on üsna huvitav ja ambitsioonikas. Projekti sajaprotsendilise teostuse korral oleks monetiseerimine kindlasti mõeldav&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Mobiilirakendused/Angularis/reactis loodud klientrakendus – klientrakendus teostatud WPF’is. Konkreetne rakendus vajaks ilmselt Native\Hybrid mobiilset äppi, kuna kasutaja peaks tegevusi tegema mobiilsest seadmest erinevatel aegadel päeva jooksul&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kogukondade kaasamine – sihtgrupp on oma tervisest lugu pidavad inimesed. Ärilise edu korral võib see aidata inimestel teha igapäevaselt paremaid\teadlikumaid valikuid toidu osas ja omab seega positiivset mõju ühiskonnale&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kasutajamugavus – sõltub eelkõige klientäpi realisatsioonist. API kasutusmugavuse kohta on kommentaarid antud eelnevalt. Swaggeri olemasolu on väga abiks.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Läbimõeldud töökorraldus – projektil on versioonihaldus (millesse refereerija millegipärast sisse ei saanud), wiki lehel kirjeldatud lühidalt üldine idee ja soovitud funktsionaalsus. Eks analüüs võiks detailsem olla (andmeskeem jne), aga üldjoontes on lähenemine struktuurne&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Lisavõimaluste realiseerimine (vt näidisteemad) – klientäpp on veel üsna algusfaasis, seega on hetkel keskendutud pigem baasfunktsionaalsuse arendamisele&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Korraliku arhitektuuriga kirjutatud kood – projekti ülesehitus korralik, võiks veel julgemalt eksperimenteerida linq’i ja keerulisemate äriloogikate ehitamisel&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
===Klientrakenduse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Klientrakenduse funktsionaalsus:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Käivitamisel tuleb kasutaja registreerida, misjärel on võimalik sisse logida. Ilma registreerimata rakendust kasutada ei saa. Peale sisselogimist on realiseeritud kaks peamist kasutajajuhtu - toitumiskava loomine ning ostunimekirja tegemine. Lisaks sellele ka konto haldus (mis tähendab momendil rakendusest väljalogimist).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Toitumiskava loomisel tuleb sellele anda nimi, seejärel on võimalik tekitada nädalapäeva-spetsiifilisi kavasid. Peale seoste tekitamise momendil rohkem midagi teha ei saa - domeeniolemid on küllaltki algusjärgus ja peale võtmete seal väga palju rohkem salvestada ei ole. Toitumiskava on võimalik ka kustutada. Sel juhul kustutatakse automaatselt ka päevaspetsiifilised kavad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Ostunimekirja saab luua, peale mida antakse kasutajale võimalus sellesse tooteid lisada. Tooted on jagatud kategooriatesse, peale nimetuse on neil ka kaal, hind ja kasutajaliideses näha erinevad toiteväärtuse indikaatorid. Tootel ja hinnal on üks-mitmene suhe (tootel võib erinevates poodides olla erinev hind), ent päringutes seda momendil ei arvestada ja võetakse esimene leitud hind. Ostunimekirja lisamisel peab kasutaja sisestama koguse, klientrakendus arvutab seejärel vaates lõppsumma kokku. Koguse sisestamisel kontrollitakse, et tegu integeriga, ent sisestada saab ka null või miinusekoguse, mis salvestatakse ka baasi.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Pisut häiris see, et UI ei anna momendil tagasisidet - kas tehtud tegevus õnnestus või ebaõnnestus.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Tehniliselt on API&#039;ga suhtlemiseks loodud baasteenus kus on kirjas API aadress ja loogika tokeni headerisse lisamiseks. Domeeniobjekti-spetsiifilised teenuseklassid pärinevad samast baasklassist. Vaated saavad oma andmed ViewModelitelt, mis omakorda suhtlevad teenustega andmete saamiseks. Refereerija ei oma piisavalt kogemust WPF projektidega, et arhitektuuri süvitsi kommenteerida, ent tundub, et järgitakse MVVM mustrit. Kuna API annab välja puhtalt domeeni-, mitte äriobjekte, siis on ka klientrakendust raske ehitada. Näiteks, et toodetele hinnad arvutada, peab ProductService esiteks tooted pärima (GetProductsFromWebServiceAsync()), seejärel foreach tsüklis iga toote kohta eraldi API hinnapäringu tegema (GetPricesAsync()). Kui ostukorvis on 10 toodet, tehakse API&#039;sse 10 päringut. Selle asemel võiks API välja saata ostukorvi koos toodete ja hindadega - kümne päringu asemel saab siis hakkama ainult ühega.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131382</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131382"/>
		<updated>2018-06-06T09:48:05Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
*17:30 - Kuldne Loojang&lt;br /&gt;
*17:45 - Hammas&lt;br /&gt;
*18:00 - VariousArtists&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekt [https://wiki.itcollege.ee/index.php/LTD#Kood_ise asub siin, kliendina kasutame JustInCaseWPFi]&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/Miisiiks#XML_retsensioon  XML]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Veebiteenuse retsensioon&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#Veebiteenuse_retsensioon_meeskonnale_GoFood Meeskonnale GoFood]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Klientrakenduse retsensioon&#039;&#039;&#039; In progress&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML retsensioon&#039;&#039;&#039; In progress&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail: XML]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131380</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131380"/>
		<updated>2018-06-06T09:03:26Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Veebiteenuse retsensioon meeskonnale GoFood */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten2.xml siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
===Veebiteenuse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Projekti arhitektuur vastab headele tavadele ja on üles ehitatud õppejõudude soovituste kohaselt - kasutusel teenuste kiht, mis omakord kasutab uow&#039;d ja repositooriumeid. Kasutusel nii generic kui ka custom repositooriumid. Kood on kirjutatud vastu liideseid (Interface). Kasutusel ka DTO&#039;d mis pannakse kokku Factorites. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Domeenimudel on samuti viisakas. Eksisteerib 12 olemit + kasutajate tabel. Stringid on limiteeritud, PK&#039;d ja FK&#039;d olemas. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kiiduväärt on ka see, et erinevalt mitmetest teistest proovitud projektidest buildis see esimese katsega ja Migrationid läksid kohe läbi. Eks oleks nice-to-have kui tekitatakse ka kohe mõned andmed millega testida (eriti kuna clientapp kippus vigu andma kui mõned objektid olid tühjad), aga ei olnud suur probleem ka ise andmeid tekitada.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Iga domeeniobjekti kohta eksisteerib kontroller, kuhu on süstitud samanimeline teenus. Siin on ehk tegu väikest viisi liiasusega, sest API seisukohast võiks siduvate tabelite andmeid välja anda läbi root-objekti. Näiteks ProductInShoppingListControlleri võiks ära kaotada ning ShoppingListController võiks neid andmeid välja anda olemasolevate päringute lisana (ShoppingListDTO võiks omada kollektsiooni List&amp;lt;ProductInShoppingList&amp;gt;, mille saaks täita kui EFShoppingListRepositoryst välja anda andmed kujul _db.ShoppingList.Include(x =&amp;gt; x.ProductsInShoppingLists). Alternatiivina võiks ProductInShoppingListControlleri meetodid üle viia ShoppingListControllerisse. Sõltumata sellest mis meetodit kasutada, jätaks refereerija alles kontrolleri ainult iga põhilise ’päriselu’ objekti kohta – Store, ShoppingList, Product, NutritionPlan etc ja serveeriks andmeid ainult läbi nende. See teeks ka API tarbija elu lihtsamaks, kuna objektid on intuitiivsemad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kõik kontrollerid (v.a SecurityController) on Authorize annotationiga illustreeritud nagu peabki. Seadistatud on ka Swaggeri endpoint.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
API funktsionaalsuse poolest on realiseeritud kasutajate loomine, autentimine ja andmebaasi salvestamine ning kontrollerid on valmis iga domeeniobjekti CRUD tegevusteks. Teenuste kihis keerulisemat äriloogikat veel ei ole, toimub suht üks-ühele DTO vs domeeniobjekti mappimine ning seejärel repostiooriumisse või tagasi kontrollerisse saatmine. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Lõpetuseks vaataks üle kuidas projekti suhestub hindamiskriteeriumitega:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel) – toote sihtgrupp on paigas, idee on üsna huvitav ja ambitsioonikas. Projekti sajaprotsendilise teostuse korral oleks monetiseerimine kindlasti mõeldav&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Mobiilirakendused/Angularis/reactis loodud klientrakendus – klientrakendus teostatud WPF’is. Konkreetne rakendus vajaks ilmselt Native\Hybrid mobiilset äppi, kuna kasutaja peaks tegevusi tegema mobiilsest seadmest erinevatel aegadel päeva jooksul&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kogukondade kaasamine – sihtgrupp on oma tervisest lugu pidavad inimesed. Ärilise edu korral võib see aidata inimestel teha igapäevaselt paremaid\teadlikumaid valikuid toidu osas ja omab seega positiivset mõju ühiskonnale&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kasutajamugavus – sõltub eelkõige klientäpi realisatsioonist. API kasutusmugavuse kohta on kommentaarid antud eelnevalt. Swaggeri olemasolu on väga abiks.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Läbimõeldud töökorraldus – projektil on versioonihaldus (millesse refereerija millegipärast sisse ei saanud), wiki lehel kirjeldatud lühidalt üldine idee ja soovitud funktsionaalsus. Eks analüüs võiks detailsem olla (andmeskeem jne), aga üldjoontes on lähenemine struktuurne&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Lisavõimaluste realiseerimine (vt näidisteemad) – klientäpp on veel üsna algusfaasis, seega on hetkel keskendutud pigem baasfunktsionaalsuse arendamisele&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Korraliku arhitektuuriga kirjutatud kood – projekti ülesehitus korralik, võiks veel julgemalt eksperimenteerida linq’i ja keerulisemate äriloogikate ehitamisel&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131379</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=131379"/>
		<updated>2018-06-06T09:01:51Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten2.xml siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
===Veebiteenuse retsensioon meeskonnale GoFood===&lt;br /&gt;
&amp;lt;p&amp;gt;Projekti arhitektuur vastab headele tavadele ja on üles ehitatud õppejõudude soovituste kohaselt - kasutusel teenuste kiht, mis omakord kasutab uow&#039;d ja repositooriumeid. Kasutusel nii generic kui ka custom repositooriumid. Kood on kirjutatud vastu liideseid (Interface). Kasutusel ka DTO&#039;d mis pannakse kokku Factorites. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Domeenimudel on samuti viisakas. Eksisteerib 12 olemit + kasutajate tabel. Stringid on limiteeritud, PK&#039;d ja FK&#039;d olemas. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kiiduväärt on ka see, et erinevalt mitmetest teistest proovitud projektidest buildis see esimese katsega ja Migrationid läksid kohe läbi. Eks oleks nice-to-have kui tekitatakse ka kohe mõned andmed millega testida (eriti kuna clientapp kippus vigu andma kui mõned objektid olid tühjad), aga ei olnud suur probleem ka ise andmeid tekitada.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Iga domeeniobjekti kohta eksisteerib kontroller, kuhu on süstitud samanimeline teenus. Siin on ehk tegu väikest viisi liiasusega, sest API seisukohast võiks siduvate tabelite andmeid välja anda läbi root-objekti. Näiteks ProductInShoppingListControlleri võiks ära kaotada ning ShoppingListController võiks neid andmeid välja anda olemasolevate päringute lisana (ShoppingListDTO võiks omada kollektsiooni List&amp;lt;ProductInShoppingList&amp;gt;, mille saaks täita kui EFShoppingListRepositoryst välja anda andmed kujul _db.ShoppingList.Include(x =&amp;gt; x.ProductsInShoppingLists). Alternatiivina võiks ProductInShoppingListControlleri meetodid üle viia ShoppingListControllerisse. Sõltumata sellest mis meetodit kasutada, jätaks refereerija alles kontrolleri ainult iga põhilise ’päriselu’ objekti kohta – Store, ShoppingList, Product, NutritionPlan etc ja serveeriks andmeid ainult läbi nende. See teeks ka API tarbija elu lihtsamaks, kuna objektid on intuitiivsemad.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Kõik kontrollerid (v.a SecurityController) on Authorize annotationiga illustreeritud nagu peabki. Seadistatud on ka Swaggeri endpoint.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
API funktsionaalsuse poolest on realiseeritud kasutajate loomine, autentimine ja andmebaasi salvestamine ning kontrollerid on valmis iga domeeniobjekti CRUD tegevusteks. Teenuste kihis keerulisemat äriloogikat veel ei ole, toimub suht üks-ühele DTO vs domeeniobjekti mappimine ning seejärel repostiooriumisse või tagasi kontrollerisse saatmine. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Lõpetuseks vaataks üle kuidas projekti suhestub hindamiskriteeriumitega:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel) – Toote sihtgrupp on paigas, idee on üsna huvitav ja ambitsioonikas. Projekti sajaprotsendilise teostuse korral oleks monetiseerimine kindlasti mõeldav&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Mobiilirakendused/Angularis/reactis loodud klientrakendus – klientrakendus teostatud WPF’is. Konkreetne rakendus vajaks ilmselt Native\Hybrid mobiilset äppi, kuna kasutaja peaks tegevusi tegema mobiilsest seadmest erinevatel aegadel päeva jooksul&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kogukondade kaasamine – sihtgrupp on oma tervisest lugu pidavad inimesed. Ärilise edu korral võib see aidata inimestel teha igapäevaselt paremaid\teadlikumaid valikuid toidu osas ja omab seega positiivset mõju ühiskonnale&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Kasutajamugavus – sõltub eelkõige klientäpi realisatsioonist. API kasutusmugavuse kohta on kommentaarid antud eelnevalt. Swaggeri olemasolu on väga abiks.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Läbimõeldud töökorraldus – projektil on versioonihaldus (millesse refereerija millegipärast sisse ei saanud), wiki lehel kirjeldatud lühidalt üldine idee ja soovitud funktsionaalsus. Eks analüüs võiks detailsem olla (andmeskeem jne), aga üldjoontes on lähenemine struktuurne&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Lisavõimaluste realiseerimine (vt näidisteemad) – klientäpp on veel üsna algusfaasis, seega on hetkel keskendutud pigem baasfunktsionaalsuse arendamisele&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
	Korraliku arhitektuuriga kirjutatud kood – projekti ülesehitus korralik, võiks veel julgemalt eksperimenteerida linq’i ja keerulisemate äriloogikate ehitamisel&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131378</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131378"/>
		<updated>2018-06-06T05:58:33Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Kaitsmisele registreerumine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
*17:30 - Kuldne Loojang&lt;br /&gt;
*17:45 - Hammas&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse, klientrakenduse ja XML retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekt [https://wiki.itcollege.ee/index.php/LTD#Kood_ise asub siin, kliendina kasutame JustInCaseWPFi]&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
XML: [https://wiki.itcollege.ee/index.php/Miisiiks#XML_retsensioon  XML]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039; In progress&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail: XML]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131357</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131357"/>
		<updated>2018-06-05T19:05:45Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse ja klientrakenduse retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon] TODO &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039; In progress&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail: XML]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131352</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131352"/>
		<updated>2018-06-05T18:51:42Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse ja klientrakenduse retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon] TODO &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;XML&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Hammas#XML wiki]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039; In progress&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail: XML]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131351</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=131351"/>
		<updated>2018-06-05T18:49:46Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskond: Hammas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - Miisiks&lt;br /&gt;
*15:15 - Maagikud &lt;br /&gt;
*15:30 - GoFood&lt;br /&gt;
*15:45 - Raavo V2™&lt;br /&gt;
*16:00 - LearnToDrive&lt;br /&gt;
Sellele päevale rohkem aegu juurde lisada ei saa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Allpool olevate päevadele võib vabalt aegasid juurde lisada 15min sammga. Reegel on, et aegu lisame järjest&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;06.06.2018&#039;&#039;&#039;&lt;br /&gt;
*17:00 - Raamaturiiul&lt;br /&gt;
*17:15 - Pakiraam&lt;br /&gt;
*..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;09.06.2018&#039;&#039;&#039;&lt;br /&gt;
*16:00 - Triin Oja&lt;br /&gt;
*16:15 - Beer Pressure&lt;br /&gt;
*16:30 - &amp;amp;lt;div&amp;amp;gt;&lt;br /&gt;
*16:45 - NutriCheck&lt;br /&gt;
*17:00 - JääTuli&lt;br /&gt;
*17:15 - Ophelia&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse ja klientrakenduse retsensioon tiimile Raavo V2 asub [https://docs.google.com/document/d/1fxmdLa94Do1u5WlmPQjSd4mMmdbDw5WmDne547jqQc4/edit siin]&lt;br /&gt;
&lt;br /&gt;
XML retsensioon tiimile LTD asub [https://docs.google.com/document/d/15rMhpqyG5XHsvOCZJp88ucHkiMa5Non6BbYwBBKT2_Y/edit siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&#039;&#039;&#039;Meie XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/RaamatuRiiul#XML XML]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie veebiteenuse ja klientrakenduse retsensioonid meeskonnale Miisiiks:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Miisiiks retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2™#Retsentsioonid Maagikud]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
Klientrakendus [https://github.com/knaeris/VR2Klient siin] ja veebiteenus [https://github.com/knaeris/VR2Projekt siin]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 klientrakendusele : [https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam#Retsensioonid Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna Raavo v2 veebiteenusele:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
Lõpptoode: [https://wiki.itcollege.ee/index.php/GoFood#Projektikood lõpptoote leiab siit]&lt;br /&gt;
&lt;br /&gt;
Meie rühma kirjutatud retsentsioonid rühmale Maagikud:[https://wiki.itcollege.ee/index.php/GoFood#Retsensioon_rühmale_Maagikud  Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
Projekti retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#Projekti_retsensioon Maagikud]&lt;br /&gt;
&lt;br /&gt;
XML osa retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/LTD#XML_retsensioon RaamatuRiiul]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/e2vu3ukgckyc2x5/MiisiiksWS.zip?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
Veebiteenus v2 (05.06): [https://www.dropbox.com/s/4acyvc9c7h08xl6/MiisiiksWS-v2.rar?dl=0 Veebiteenus]&lt;br /&gt;
&lt;br /&gt;
[https://www.dropbox.com/s/iwtheohp5mn0lek/MiisiiksC.zip?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus v2 (05.06): [https://www.dropbox.com/s/m6ijv2yyqthebgr/MiisiiksC2-v2.rar?dl=0 Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Miisiiks#XML XML]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid meeskonnale Raavo V2™&lt;br /&gt;
&lt;br /&gt;
Veebiteenus: [https://wiki.itcollege.ee/index.php/Miisiiks#Veebiteenuse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
Klientrakendus: [https://wiki.itcollege.ee/index.php/Miisiiks#Klientrakenduse_retsensioon Retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
Retsensioonid rühmale [https://wiki.itcollege.ee/index.php/Miisiiks Miisiiks™]: [https://docs.google.com/document/d/1gQmas-Fay_XHHhLInKM92152vYeFdFflDIRozN63mxA/edit?usp=sharing veebiteenus, klientrakendus ja XML]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed&#039;&#039;&#039;:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson (loobus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
algselt üles laetud 02.06.2018, bugide parandusi lisatud 04.06.2018&lt;br /&gt;
* .zip fail rakendus ja klient koos: https://www.dropbox.com/s/4h9bvq4k6388fmo/loojang.zip?dl=0&lt;br /&gt;
* veebirakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-app&lt;br /&gt;
* klientrakenduse repo: https://bitbucket.org/itcollegeprojects/loojang-client&lt;br /&gt;
* XML: [https://wiki.itcollege.ee/index.php/Kuldneloojang#XML_.C3.BClesande_kirjeldus link meie Wiki lehele]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid:&#039;&#039;&#039;&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler (loobus)&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi TaisKohtApi]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip GitHub commit]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/BeerPressure#XML.2FXSD.2FXSLT Beer Pressure XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML failide retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#XML_retsensioon_by_meeskond_BeerPressure: Team MOT retsensioon] TODO &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:MOT#Veebiteenuse_retsensensioon_by_meeskond_BeerPressure: Team MOT retsensioon]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Talk:Kuldneloojang#Klientrakenduse_retsensensioon_by_meeskond_BeerPressure: Team Kuldneloojang retsensioon]&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar (loobus)&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/ &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse, klientrakenduse ja XML&#039;i retsensioon:&#039;&#039;&#039; [https://docs.google.com/document/d/16WL12wmvQ_TPcY_-4pG_kjwtstQoX5meEYcigE4Febw/edit?usp=sharing: Team Raavo V2]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; [https://ildtest.azurewebsites.net azure]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; [https://github.com/lundens/ild-core github]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/MealPlannerSolo#XML_andmefail: XML]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130629</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130629"/>
		<updated>2018-05-16T21:42:22Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Transformatsioon XMLi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten2.xml siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130628</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130628"/>
		<updated>2018-05-16T21:41:48Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Transformatsioon XMLi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&lt;br /&gt;
Grupeerime tooted laopõhiselt. Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml2 siin].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130627</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130627"/>
		<updated>2018-05-16T21:36:47Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Transformatsioon HTMLi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&lt;br /&gt;
Transformatsioon nähtav [http://enos.itcollege.ee/~slunden/Sten.xml siin] &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130626</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130626"/>
		<updated>2018-05-16T21:27:19Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Transformatsioon XMLi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130625</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130625"/>
		<updated>2018-05-16T21:27:10Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Transformatsioon HTMLi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130624</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130624"/>
		<updated>2018-05-16T21:27:00Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Skeemifail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130623</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130623"/>
		<updated>2018-05-16T21:26:12Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Skeemifail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Name&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element name=&amp;quot;et-EE&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;ru-RU&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;en-GB&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; name=&amp;quot;fi-FI&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Prices&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Sales&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:attribute name=&amp;quot;Special&amp;quot; type=&amp;quot;xs:decimal&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Properties&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence minOccurs=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Property&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Type&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Value&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;Availability&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Stock&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Name&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;AvailableQty&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;parentId&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon HTMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;/Products&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;html&amp;gt;&lt;br /&gt;
        &amp;lt;head&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;Tooted&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body style=&amp;quot;list-style-type:square&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;Product&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div style=&amp;quot;border-style:solid;margin-bottom:5px;width:33%&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;Name/et-EE&amp;quot;/&amp;gt; &lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@parentId&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; Toode on hierarhias!&amp;lt;/span&amp;gt; &lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;n&amp;quot; select =&amp;quot;count(Name/*)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;$n &amp;gt; 1&amp;quot;&amp;gt;&lt;br /&gt;
                Tõlked:&lt;br /&gt;
                &amp;lt;!-- Tõlked. Kõik mis pole et-EE --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Name/*[not(local-name()=&#039;et-EE&#039;)]&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;local-name()&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              Hind &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:when test=&amp;quot;Prices/@Special&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;strike&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/strike&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;Prices/@Special&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Prices/@Sales&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                  &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                &lt;br /&gt;
              &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Properties/*&amp;quot;&amp;gt;&lt;br /&gt;
                Atribuudid:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Properties/Property&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Type&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Value&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;Availability/*&amp;quot;&amp;gt;&lt;br /&gt;
                Saadavus:&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Availability/Stock&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;Name&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; tk.&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;     &lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;/html&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transformatsioon XMLi===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot; &lt;br /&gt;
&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; media-type=&amp;quot;text/xml&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:key name=&amp;quot;groups&amp;quot; match=&amp;quot;Product/Availability/Stock/Name&amp;quot; use=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;Products&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- get unique stocks by Muenchian grouping http://www.jenitennison.com/xslt/grouping/muenchian.html --&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:for-each select=&amp;quot;Product/Availability/Stock/Name[generate-id()=generate-id(key(&#039;groups&#039;,.)[1])]&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;xsl:variable name=&amp;quot;stockID&amp;quot; select=&amp;quot;../@id&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;stock&amp;gt;&lt;br /&gt;
         &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;$stockID&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;&lt;br /&gt;
           &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;xsl:for-each select=&amp;quot;key(&#039;groups&#039;,.)&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &amp;lt;product&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../@id&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;xsl:attribute name=&amp;quot;qty&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Availability/Stock[@id=$stockID]/AvailableQty&amp;quot;/&amp;gt;&lt;br /&gt;
             &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
             &amp;lt;name&amp;gt;&lt;br /&gt;
               &amp;lt;xsl:value-of select=&amp;quot;../../../Name/et-EE&amp;quot; /&amp;gt;&lt;br /&gt;
             &amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;/product&amp;gt;&lt;br /&gt;
         &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
         &amp;lt;/stock&amp;gt;&lt;br /&gt;
       &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130622</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130622"/>
		<updated>2018-05-16T21:23:40Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* XML andmefail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
===Andmefail===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130621</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130621"/>
		<updated>2018-05-16T21:22:07Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* XML andmefail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML andmefail==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Products&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;727&amp;quot; parentId=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, roheline 5cm 10g]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;en-GB&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, green 5cm 10g]]&amp;gt;&amp;lt;/en-GB&amp;gt;&lt;br /&gt;
      &amp;lt;fi-FI&amp;gt;&amp;lt;![CDATA[TWINKY STAR refill, vihreä 5cm 10g]]&amp;gt;&amp;lt;/fi-FI&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;860.00&amp;quot; Special=&amp;quot;791.20&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Värv]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[Roheline]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Läbimõõt]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[5cm]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Kaal]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[10g]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;25.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;19.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;231&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[ENDO BOX Dia-Dent 60+4pesa Medium ümar]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;17.50&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Properties /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;3.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
  &amp;lt;Product id=&amp;quot;190&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&lt;br /&gt;
      &amp;lt;et-EE&amp;gt;&amp;lt;![CDATA[DENTIRO Light 5l]]&amp;gt;&amp;lt;/et-EE&amp;gt;&lt;br /&gt;
      &amp;lt;ru-RU&amp;gt;&amp;lt;![CDATA[Light 5л]]&amp;gt;&amp;lt;/ru-RU&amp;gt;&lt;br /&gt;
    &amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Prices Sales=&amp;quot;24.50&amp;quot; Special=&amp;quot;14.95&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Availability&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Maneezi]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;114.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
      &amp;lt;Stock id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;&amp;lt;![CDATA[Hansakeskus]]&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;AvailableQty&amp;gt;223.00&amp;lt;/AvailableQty&amp;gt;&lt;br /&gt;
      &amp;lt;/Stock&amp;gt;&lt;br /&gt;
    &amp;lt;/Availability&amp;gt;&lt;br /&gt;
    &amp;lt;Properties&amp;gt;&lt;br /&gt;
      &amp;lt;Property&amp;gt;&lt;br /&gt;
        &amp;lt;Type&amp;gt;&amp;lt;![CDATA[Varjund]]&amp;gt;&amp;lt;/Type&amp;gt;&lt;br /&gt;
        &amp;lt;Value&amp;gt;&amp;lt;![CDATA[A4]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;
      &amp;lt;/Property&amp;gt;&lt;br /&gt;
    &amp;lt;/Properties&amp;gt;&lt;br /&gt;
  &amp;lt;/Product&amp;gt;&lt;br /&gt;
&amp;lt;/Products&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=130201</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018&amp;diff=130201"/>
		<updated>2018-04-01T16:42:19Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Meeskonnad 2018 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2018=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*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.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API2/ASP.NET Core 2.0/WCF võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#039;&#039;&#039;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. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilirakendused/Angularis/reactis loodud klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
* Korraliku arhitektuuriga kirjutatud kood&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* 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)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/PillarOfAutumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekti TFS:&#039;&#039;&#039; TODO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML retsensioon:&#039;&#039;&#039;&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse retsensioon:&#039;&#039;&#039;&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud klientrakenduse retsensioon:&#039;&#039;&#039;&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TFS:&#039;&#039;&#039; Coming...&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130009</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130009"/>
		<updated>2018-03-30T11:59:23Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==XML andmefail==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130008</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130008"/>
		<updated>2018-03-30T11:57:50Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;br /&gt;
==Retsensioonid==&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130007</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130007"/>
		<updated>2018-03-30T11:22:08Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Minimaalsed ärilised nõudmised */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe avalik osa (&#039;&#039;storefront&#039;&#039;)&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Poe haldusosa (&#039;&#039;backend&#039;&#039;)&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130006</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130006"/>
		<updated>2018-03-30T11:20:16Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
===Põhilised kasutusjuhud===&lt;br /&gt;
* Lõppklient&lt;br /&gt;
** Ligipääs ainult &#039;&#039;storefrondile&#039;&#039;&lt;br /&gt;
** Soovi korral autendib ennast&lt;br /&gt;
** Otsib tooteid&lt;br /&gt;
** Lisab ja eemaldab tooteid oma ostukorvist&lt;br /&gt;
** Viib ostuprotsessi lõpuni:&lt;br /&gt;
*** ..valides transpordimeetodi&lt;br /&gt;
*** ..valides maksemeetodi&lt;br /&gt;
** Kui kasutaja on autenditud jääb ostusündmus kasutaja ajalukku&lt;br /&gt;
&lt;br /&gt;
* Administraator&lt;br /&gt;
** Ligipääs poe halduslehele&lt;br /&gt;
** Saab luua uusi tooteid ja toodetega seotud olemeid&lt;br /&gt;
** Saab hõlpsasti navigeerida hinnakirjas ja seda muuta (&#039;&#039;in-line edit&#039;&#039;)&lt;br /&gt;
** Saab defineerida müügikampaaniaid ja &#039;&#039;ad-hoc&#039;&#039; allahindlusi&lt;br /&gt;
** Omab ülevaadet põhilistest ärilistest indikaatoritest&lt;br /&gt;
*** Tellimuste arv&lt;br /&gt;
*** Klientide arv&lt;br /&gt;
*** ...&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130002</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130002"/>
		<updated>2018-03-30T11:05:08Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Projekti kirjeldus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas peaks lahenduse arhitektuur olema võimalikult modulaarne, võimaldades lisaarendusi tulevikus.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kliendid jne)&lt;br /&gt;
* Dashboard (&#039;&#039;nice to have&#039;&#039;)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS(?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130001</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130001"/>
		<updated>2018-03-30T10:54:02Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Projekti kirjeldus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas tuleks lahenduse arhitektuur teostada nii, et tulevikus oleks laienduste ehitamine võimalikult lihtne.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard (nice to have)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130000</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=130000"/>
		<updated>2018-03-30T10:51:51Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Projekti kirjeldus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. Eesmärk on ehitada võimalikult õhuke e-kommertskiht mis vastaks minimaalsetele ärilistele nõudmistele. Samas tuleks toote arhitektuur teostada nii, et tulevikus oleks laienduste ehitamine võimalikult lihtne.&lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
** Toodete variatsioonid&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaania kestus&lt;br /&gt;
** Kampaania sihtgrupp (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard (nice to have)&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus) ja aruandlus ==&amp;gt; SSRS&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129999</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129999"/>
		<updated>2018-03-30T10:42:13Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasiskeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmemudel===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129998</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129998"/>
		<updated>2018-03-30T10:39:40Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasi skeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasiskeem===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129997</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129997"/>
		<updated>2018-03-30T10:39:31Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasi skeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
[[File:Schema.gif|800px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129996</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129996"/>
		<updated>2018-03-30T10:38:55Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasi skeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
[[File:Schema.gif|800px|thumb]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129995</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129995"/>
		<updated>2018-03-30T10:37:25Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasi skeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
[[File:Schema.gif]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129994</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129994"/>
		<updated>2018-03-30T10:36:30Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Andmebaasi skeem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
[[File:Schema.jpg]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Schema.gif&amp;diff=129993</id>
		<title>File:Schema.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Schema.gif&amp;diff=129993"/>
		<updated>2018-03-30T10:35:58Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129992</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129992"/>
		<updated>2018-03-30T10:35:41Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
[[File:Example.jpg]]&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129968</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129968"/>
		<updated>2018-03-29T18:37:48Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Minimaalsed ärilised nõudmised */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Registreerunud kasutajad&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129965</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129965"/>
		<updated>2018-03-29T17:44:43Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Minimaalsed ärilised nõudmised */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
** Otsing&lt;br /&gt;
** Tootegrupi, hankija filtreering&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvihaldus&lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud transpordimeetodites&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga maksmisel&lt;br /&gt;
* Üldine kasutajate autoriseerimine, konto, ostuajalugu &lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide haldus (CRUD)&lt;br /&gt;
* Müügikampaaniate haldus&lt;br /&gt;
** Toote, hankija, tootegrupi tasemel&lt;br /&gt;
** Protsentuaalne ja fikseeritud allahindlus&lt;br /&gt;
** Kampaanial võib olla kestus&lt;br /&gt;
** Kampaania võib olla kindlale kliendirühmale (sisseloginud või VIP kasutajad jne)&lt;br /&gt;
* Dashboard&lt;br /&gt;
** Viimased tellimused&lt;br /&gt;
** Viimased registreerunud kliendid&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Väljatrükid (arve, tellimus)&lt;br /&gt;
* Aruandlus (SSRS?)&lt;br /&gt;
* Tootepildid&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129672</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129672"/>
		<updated>2018-03-22T11:20:07Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;br /&gt;
* Azure hosting&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129671</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129671"/>
		<updated>2018-03-22T11:18:51Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti kirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
===Minimaalsed ärilised nõudmised===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
===Tehniline baas===&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129670</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129670"/>
		<updated>2018-03-22T11:17:36Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Tehniline lahendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
==Tehniline baas==&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129669</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129669"/>
		<updated>2018-03-22T11:15:51Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Minimaalsed ärilised nõudmised */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Hinnakirja, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
==Tehniline lahendus==&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129668</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129668"/>
		<updated>2018-03-22T11:15:16Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Tehniline lahendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Toodete, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
==Tehniline lahendus==&lt;br /&gt;
* ASP.NET Core 2.0 (API)&lt;br /&gt;
* AngularJS (klient)&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129667</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129667"/>
		<updated>2018-03-22T11:12:52Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Toodete, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
==Tehniline lahendus==&lt;br /&gt;
* ASP.NET Core 2.0&lt;br /&gt;
* AngularJS&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129666</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129666"/>
		<updated>2018-03-22T11:12:07Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
* Tellimuse väljatrükk PDFi.&lt;br /&gt;
* Lokaliseeritud EE\RU\EN&lt;br /&gt;
* SEO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Toodete, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist (momendil) väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;br /&gt;
* Teavitused E-mailile&lt;br /&gt;
&lt;br /&gt;
==Tehniline lahendus==&lt;br /&gt;
* ASP.NET Core 2.0&lt;br /&gt;
* AngularJS&lt;br /&gt;
* IdentityServer 4&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129665</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129665"/>
		<updated>2018-03-22T11:02:35Z</updated>

		<summary type="html">&lt;p&gt;Slunden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Toodete, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skoobist väljas&#039;&#039;&#039; &lt;br /&gt;
* &#039;&#039;Responsive design&#039;&#039;&lt;br /&gt;
* Tootepildid&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129664</id>
		<title>Hammas</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hammas&amp;diff=129664"/>
		<updated>2018-03-22T10:59:31Z</updated>

		<summary type="html">&lt;p&gt;Slunden: Created page with &amp;quot;==Meeskond==  * Sten Lunden  ==Projekti lühikirjeldus== E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele.   ==Minimaalsed ärilised nõudmised==  &amp;#039;&amp;#039;&amp;#039;Store...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele. &lt;br /&gt;
&lt;br /&gt;
==Minimaalsed ärilised nõudmised==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Storefront&#039;&#039;&#039;&lt;br /&gt;
* Ladustatud toodete kuvamine&lt;br /&gt;
* Hinnakujundus&lt;br /&gt;
* Ostukorvi haldus&lt;br /&gt;
* Kasutajate autoriseerimine, ostuajalugu &lt;br /&gt;
* Omniva ja SmartPosti pakiautomaatide valikud&lt;br /&gt;
* Integratsioon Maksekeskuse API&#039;ga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Backend&#039;&#039;&#039; &lt;br /&gt;
* Toodete, hankijate, tootegruppide, müügikampaaniate haldus (CRUD)&lt;br /&gt;
&lt;br /&gt;
==Projekti lühikirjeldus==&lt;br /&gt;
E-poe lahendus hambaraviseadmeid ja -tehnikat müüvale ettevõttele&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Disaster_recovery_as_a_service_(DRaaS)&amp;diff=99306</id>
		<title>Disaster recovery as a service (DRaaS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Disaster_recovery_as_a_service_(DRaaS)&amp;diff=99306"/>
		<updated>2015-12-18T12:49:45Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Kasutus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sissejuhatus==&lt;br /&gt;
&#039;&#039;&#039;Disaster Recovery as a Service&#039;&#039;&#039; ehk &#039;&#039;&#039;DRaaS&#039;&#039;&#039; on tõrkesiirdeteenus, mis võimaldab avariitaastet pilveteenusena, eeldusel, et kaitstavaid füüsilisi või virtuaalseid servereid hostitakse ja\või replikeeritakse (kolmanda osapoole) pilves. DRaaSi loetakse üheks neljast pilveteenuste põhiklastrist (lisaks [https://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 - infrastructure as a service (IaaS)], [https://en.wikipedia.org/wiki/Platform_as_a_service platform as a service (PaaS)], ja [https://en.wikipedia.org/wiki/Software_as_a_service software as a service (SaaS)]).&lt;br /&gt;
&lt;br /&gt;
==Kasutus==&lt;br /&gt;
2013. aastal Ponemon instituudi poolt läbiviidud uuring näitas, et andmekeskuste maasolekuaja minut maksab keskmiselt $7,900 (41% kasv võrreldes 2010. aastaga), illustreerides fakti, et &#039;&#039;downtime&#039;&#039; on kulukas ja kallineb iga aastaga. See on loonud DRaaS&#039;ile hea kasvupinnase eelkõige väiksemate kuni keskmiste ettevõtete seas, kellel puudub kompetents ja ressursid efektiivse tõrkestrateegia juurutamiseks - selle saab teenusena sisse osta ning nõuded ja vajadused (taasteajad ja -punktid) teenusetaseme lepingus defineerida.&lt;br /&gt;
&lt;br /&gt;
Suurematel ettevõtete seas ei ole DRaaS veel oluliselt levinud. Põhjuseks asjaolu, et tihti kasutavad nad mitmeid erinevaid heterogeenseid andmekeskuseid, olemasoleva avariitaaste seadmete\tehnika dekomisjoneerimine on kulukas ning tegu on üsna uue tehnoloogiaga, mis teeb suuremad investeeringud riskantseks.&lt;br /&gt;
&lt;br /&gt;
==Arhitektuur==&lt;br /&gt;
&lt;br /&gt;
DRaaSi arhitektuur varieerub vastavalt sellele, kuidas pilve kasutatakse.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;To Cloud DRaaS&#039;&#039;&#039; : Kaitstav objekt (andmed või applikatsioon) asub kliendi primaarses andmekeskuses ning pilve kasutatakse vaid sealt andmete taastamiseks&lt;br /&gt;
*&#039;&#039;&#039;In Cloud DRaaS&#039;&#039;&#039; : Nii allikas kui ka taastamiseks kasutatavad koopiad asuvad pilves&lt;br /&gt;
*&#039;&#039;&#039;From Cloud DRaaS&#039;&#039;&#039; : Kaitstav objekt asub pilves, varundus tehakse kliendi lokaalsesse andmekeskusse, tõrgete korral taastatakse sealt andmed pilve tagasi&lt;br /&gt;
&lt;br /&gt;
==Plussid==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Hind:&#039;&#039;&#039; Traditsiooniline avariitaastestrateegia eeldab investeeringuid andmekeskusesse, serverite ja võrguseadmete soetuskulusid, lisaks halduskulusid (elekter, tööjõud, rent). Pilveteenusena maksab ettevõte vaid oma serverite &#039;&#039;snapshottide&#039;&#039; varunduse eest. Ehk tegu on [https://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS] teenusega, mis aktiveerub ainult tõrkestsenaariumi korral.&lt;br /&gt;
*&#039;&#039;&#039;Testimine:&#039;&#039;&#039; Isegi kui tõrkesiirdestrateegia on paigas, tuleb seda regulaarselt testida. Virtualiseeritud teenus võimaldab luua isoleeritud &#039;&#039;sandbox&#039;&#039; keskkonna, kus erinevaid tõrkestsenaariume läbi mängida, samal ajal töökeskkonnale mõju mitte avaldades.   &lt;br /&gt;
*&#039;&#039;&#039;Paindlikkus:&#039;&#039;&#039; Võimalus lihtsalt taastada ainult üks virtuaalmasin või terve serveripark.&lt;br /&gt;
*&#039;&#039;&#039;Taasteaeg:&#039;&#039;&#039; Andmete taastamine füüsilisest andmekeskusest (koos võimalike &#039;&#039;startup&#039;&#039; protseduuridega) võtab reeglina kauem aega kui &#039;&#039;snapshoti&#039;&#039; taastamine pilvest.&lt;br /&gt;
&lt;br /&gt;
==Miinused==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Riskihaldus:&#039;&#039;&#039; Ärikriitiliste funktsioonide üleandmine kolmandale osapoolele eeldab põhjalikku eeltööd koostööpartneri valikul. Teenusepakkuja suutlikkust teenusetasemelepingut oleks soovitav regulaarselt kontrollida.&lt;br /&gt;
*&#039;&#039;&#039;Andmete käsitlemine:&#039;&#039;&#039; Tulenevalt DRaaSi suhtelisest noorusest võivad teenusepakkuja kohustused ja vastutus andmete käsitlemisel jääda halli alasse, mis loob pinnase turvaprobleemideks.&lt;br /&gt;
*&#039;&#039;&#039;Sõltuvus võrguühendusest:&#039;&#039;&#039; Kui traditsioonilisest andmekeskusest saab andmeid vajadusel ka füüsiliselt andmekandjalt taastada, siis eeldus DRaaSi toimimiseks on suure läbilaskevõimega võrguühendus.&lt;br /&gt;
*&#039;&#039;&#039;Hind:&#039;&#039;&#039; Suured DRaaS lahendused ei ole odavad ega lihtsad ning on tihti väga agressiivsete teenusetasemelepingutega. Oluliseks saavad ka kulud laivõrkudele, mille läbilaskevõime peab vastavalt lisanduvatele nõudmistele kasvama.&lt;br /&gt;
&lt;br /&gt;
==DRaaS lahenduste pakkujad==&lt;br /&gt;
[[File:GartnerDraaS-e1429898315567.png|400px|thumb|right|]]&lt;br /&gt;
2015. aastal avaldatud Gartneri uuringust saab välja tuua kolm liidrit DRaaS teenusepakkujate turul.&lt;br /&gt;
&lt;br /&gt;
*[http://www.sungardas.co.uk/Pages/default.aspx &#039;&#039;&#039;Sungard Availability Services&#039;&#039;&#039;], Suurbritannias asuv ettevõte, mis opereerib Euroopas 14 andmekeskusega;&lt;br /&gt;
*[http://www.ibm.com &#039;&#039;&#039;IBM&#039;&#039;&#039;], oma [http://www-935.ibm.com/services/uk/en/it-services/business-continuity/ Resiliency Services] portfoolioga;&lt;br /&gt;
*[http://www.ntt.com &#039;&#039;&#039;NTT Communications&#039;&#039;&#039;], Jaapanis baseeruv, Fortune Global 500 nimekirja üks kõrgemail positsioonil olevaid telecom-ettevõtteid;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtlikult moodustavad turu infrastruktuuri spetsialistid (IBM, HP, NTT), virtualiseerimisele ja salvestussüsteemidele pühendunud (Acronis and VMware) ning talitluspidevusteenust (&#039;&#039;business continuity&#039;&#039;) pakkuvad ettevõtted, kusjuures interpretatsioon DRaaSist varieerub vastavalt ettevõtte põhitegevusalale.&lt;br /&gt;
&lt;br /&gt;
==Tulevik==&lt;br /&gt;
&lt;br /&gt;
Gartneri uuring näitab, et suurim kliendisegment DRaaSile on 2015. aastal väike-ettevõtted, põhjendades seda teenuse uudsuse ja suurettevõtete konservatiivsusega, ent ennustab kasvu ka suurkliendisegmendis, niipea kui teenuse hind ja kasutegur on tasakaalu leidnud. Pilveteenusele omased kallid virtuaalmasinate korduvlõivud olid peamised väljatoodud probleemkohad suurettevõtetele, kes olid sunnitud neid oma vajadustest tingituna suuremates kogustes rentima.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Recovery_as_a_service https://en.wikipedia.org/wiki/Recovery_as_a_service]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.datacenterknowledge.com/archives/2015/04/24/gartner-names-sungard-leader-first-draas-magic-quadrant http://www.datacenterknowledge.com/archives/2015/04/24/gartner-names-sungard-leader-first-draas-magic-quadrant]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.emersonnetworkpower.com/documentation/en-us/brands/liebert/infographics/documents/ponemon-infographic-cost%20of%20downtime-r11-13-final.pdf http://www.emersonnetworkpower.com/documentation/en-us/brands/liebert/infographics/documents/ponemon-infographic-cost%20of%20downtime-r11-13-final.pdf]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.linkedin.com/pulse/draas-silver-lining-cloud-andrew-voules https://www.linkedin.com/pulse/draas-silver-lining-cloud-andrew-voules]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://searchdisasterrecovery.techtarget.com/tip/The-pros-and-cons-of-IT-disaster-recovery-outsourcing http://searchdisasterrecovery.techtarget.com/tip/The-pros-and-cons-of-IT-disaster-recovery-outsourcing]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://whatis.techtarget.com/definition/disaster-recovery-as-a-service-DRaaS http://whatis.techtarget.com/definition/disaster-recovery-as-a-service-DRaaS]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
&lt;br /&gt;
Sten Lunden, AK31&lt;br /&gt;
&lt;br /&gt;
2015&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Disaster_recovery_as_a_service_(DRaaS)&amp;diff=99305</id>
		<title>Disaster recovery as a service (DRaaS)</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Disaster_recovery_as_a_service_(DRaaS)&amp;diff=99305"/>
		<updated>2015-12-18T12:48:37Z</updated>

		<summary type="html">&lt;p&gt;Slunden: /* Sissejuhatus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sissejuhatus==&lt;br /&gt;
&#039;&#039;&#039;Disaster Recovery as a Service&#039;&#039;&#039; ehk &#039;&#039;&#039;DRaaS&#039;&#039;&#039; on tõrkesiirdeteenus, mis võimaldab avariitaastet pilveteenusena, eeldusel, et kaitstavaid füüsilisi või virtuaalseid servereid hostitakse ja\või replikeeritakse (kolmanda osapoole) pilves. DRaaSi loetakse üheks neljast pilveteenuste põhiklastrist (lisaks [https://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 - infrastructure as a service (IaaS)], [https://en.wikipedia.org/wiki/Platform_as_a_service platform as a service (PaaS)], ja [https://en.wikipedia.org/wiki/Software_as_a_service software as a service (SaaS)]).&lt;br /&gt;
&lt;br /&gt;
==Kasutus==&lt;br /&gt;
2013. aastal Ponemon instituudi poolt läbiviidud uuring näitas, et andmekeskuste maasolekuaja minut maksab keskmiselt $7,900 (41% kasv võrreldes 2010. aastaga), illustreerides fakti, et &#039;&#039;downtime&#039;&#039; on kulukas ja kallineb iga aastaga. See on loonud DRaaS&#039;ile hea kasvupinnase eelkõige väiksemate kuni keskmiste ettevõtete seas, kellel puudub kompetents ja ressursid efektiivse tõrkestrateegia juurutamiseks - selle saab teenusena sisse osta ning nõuded ja vajadused (taasteajad ja -punktid) teenusetaseme lepingus defineerida.&lt;br /&gt;
&lt;br /&gt;
Suurematel ettevõtete seas ei ole DRaaS veel oluliselt levinud. Põhjuseks eelkõige see, et tihti kasutavad nad mitmeid erinevaid heterogeenseid andmekeskuseid, olemasoleva avariitaaste seadmete\tehnika dekomisjoneerimine on kulukas ning tegu on üsna uue tehnoloogiaga, mis teeb suuremad investeeringud riskantseks.&lt;br /&gt;
&lt;br /&gt;
==Arhitektuur==&lt;br /&gt;
&lt;br /&gt;
DRaaSi arhitektuur varieerub vastavalt sellele, kuidas pilve kasutatakse.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;To Cloud DRaaS&#039;&#039;&#039; : Kaitstav objekt (andmed või applikatsioon) asub kliendi primaarses andmekeskuses ning pilve kasutatakse vaid sealt andmete taastamiseks&lt;br /&gt;
*&#039;&#039;&#039;In Cloud DRaaS&#039;&#039;&#039; : Nii allikas kui ka taastamiseks kasutatavad koopiad asuvad pilves&lt;br /&gt;
*&#039;&#039;&#039;From Cloud DRaaS&#039;&#039;&#039; : Kaitstav objekt asub pilves, varundus tehakse kliendi lokaalsesse andmekeskusse, tõrgete korral taastatakse sealt andmed pilve tagasi&lt;br /&gt;
&lt;br /&gt;
==Plussid==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Hind:&#039;&#039;&#039; Traditsiooniline avariitaastestrateegia eeldab investeeringuid andmekeskusesse, serverite ja võrguseadmete soetuskulusid, lisaks halduskulusid (elekter, tööjõud, rent). Pilveteenusena maksab ettevõte vaid oma serverite &#039;&#039;snapshottide&#039;&#039; varunduse eest. Ehk tegu on [https://en.wikipedia.org/wiki/Cloud_computing#Infrastructure_as_a_service_.28IaaS.29 IaaS] teenusega, mis aktiveerub ainult tõrkestsenaariumi korral.&lt;br /&gt;
*&#039;&#039;&#039;Testimine:&#039;&#039;&#039; Isegi kui tõrkesiirdestrateegia on paigas, tuleb seda regulaarselt testida. Virtualiseeritud teenus võimaldab luua isoleeritud &#039;&#039;sandbox&#039;&#039; keskkonna, kus erinevaid tõrkestsenaariume läbi mängida, samal ajal töökeskkonnale mõju mitte avaldades.   &lt;br /&gt;
*&#039;&#039;&#039;Paindlikkus:&#039;&#039;&#039; Võimalus lihtsalt taastada ainult üks virtuaalmasin või terve serveripark.&lt;br /&gt;
*&#039;&#039;&#039;Taasteaeg:&#039;&#039;&#039; Andmete taastamine füüsilisest andmekeskusest (koos võimalike &#039;&#039;startup&#039;&#039; protseduuridega) võtab reeglina kauem aega kui &#039;&#039;snapshoti&#039;&#039; taastamine pilvest.&lt;br /&gt;
&lt;br /&gt;
==Miinused==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Riskihaldus:&#039;&#039;&#039; Ärikriitiliste funktsioonide üleandmine kolmandale osapoolele eeldab põhjalikku eeltööd koostööpartneri valikul. Teenusepakkuja suutlikkust teenusetasemelepingut oleks soovitav regulaarselt kontrollida.&lt;br /&gt;
*&#039;&#039;&#039;Andmete käsitlemine:&#039;&#039;&#039; Tulenevalt DRaaSi suhtelisest noorusest võivad teenusepakkuja kohustused ja vastutus andmete käsitlemisel jääda halli alasse, mis loob pinnase turvaprobleemideks.&lt;br /&gt;
*&#039;&#039;&#039;Sõltuvus võrguühendusest:&#039;&#039;&#039; Kui traditsioonilisest andmekeskusest saab andmeid vajadusel ka füüsiliselt andmekandjalt taastada, siis eeldus DRaaSi toimimiseks on suure läbilaskevõimega võrguühendus.&lt;br /&gt;
*&#039;&#039;&#039;Hind:&#039;&#039;&#039; Suured DRaaS lahendused ei ole odavad ega lihtsad ning on tihti väga agressiivsete teenusetasemelepingutega. Oluliseks saavad ka kulud laivõrkudele, mille läbilaskevõime peab vastavalt lisanduvatele nõudmistele kasvama.&lt;br /&gt;
&lt;br /&gt;
==DRaaS lahenduste pakkujad==&lt;br /&gt;
[[File:GartnerDraaS-e1429898315567.png|400px|thumb|right|]]&lt;br /&gt;
2015. aastal avaldatud Gartneri uuringust saab välja tuua kolm liidrit DRaaS teenusepakkujate turul.&lt;br /&gt;
&lt;br /&gt;
*[http://www.sungardas.co.uk/Pages/default.aspx &#039;&#039;&#039;Sungard Availability Services&#039;&#039;&#039;], Suurbritannias asuv ettevõte, mis opereerib Euroopas 14 andmekeskusega;&lt;br /&gt;
*[http://www.ibm.com &#039;&#039;&#039;IBM&#039;&#039;&#039;], oma [http://www-935.ibm.com/services/uk/en/it-services/business-continuity/ Resiliency Services] portfoolioga;&lt;br /&gt;
*[http://www.ntt.com &#039;&#039;&#039;NTT Communications&#039;&#039;&#039;], Jaapanis baseeruv, Fortune Global 500 nimekirja üks kõrgemail positsioonil olevaid telecom-ettevõtteid;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtlikult moodustavad turu infrastruktuuri spetsialistid (IBM, HP, NTT), virtualiseerimisele ja salvestussüsteemidele pühendunud (Acronis and VMware) ning talitluspidevusteenust (&#039;&#039;business continuity&#039;&#039;) pakkuvad ettevõtted, kusjuures interpretatsioon DRaaSist varieerub vastavalt ettevõtte põhitegevusalale.&lt;br /&gt;
&lt;br /&gt;
==Tulevik==&lt;br /&gt;
&lt;br /&gt;
Gartneri uuring näitab, et suurim kliendisegment DRaaSile on 2015. aastal väike-ettevõtted, põhjendades seda teenuse uudsuse ja suurettevõtete konservatiivsusega, ent ennustab kasvu ka suurkliendisegmendis, niipea kui teenuse hind ja kasutegur on tasakaalu leidnud. Pilveteenusele omased kallid virtuaalmasinate korduvlõivud olid peamised väljatoodud probleemkohad suurettevõtetele, kes olid sunnitud neid oma vajadustest tingituna suuremates kogustes rentima.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Recovery_as_a_service https://en.wikipedia.org/wiki/Recovery_as_a_service]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.datacenterknowledge.com/archives/2015/04/24/gartner-names-sungard-leader-first-draas-magic-quadrant http://www.datacenterknowledge.com/archives/2015/04/24/gartner-names-sungard-leader-first-draas-magic-quadrant]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.emersonnetworkpower.com/documentation/en-us/brands/liebert/infographics/documents/ponemon-infographic-cost%20of%20downtime-r11-13-final.pdf http://www.emersonnetworkpower.com/documentation/en-us/brands/liebert/infographics/documents/ponemon-infographic-cost%20of%20downtime-r11-13-final.pdf]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.linkedin.com/pulse/draas-silver-lining-cloud-andrew-voules https://www.linkedin.com/pulse/draas-silver-lining-cloud-andrew-voules]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://searchdisasterrecovery.techtarget.com/tip/The-pros-and-cons-of-IT-disaster-recovery-outsourcing http://searchdisasterrecovery.techtarget.com/tip/The-pros-and-cons-of-IT-disaster-recovery-outsourcing]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://whatis.techtarget.com/definition/disaster-recovery-as-a-service-DRaaS http://whatis.techtarget.com/definition/disaster-recovery-as-a-service-DRaaS]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
&lt;br /&gt;
Sten Lunden, AK31&lt;br /&gt;
&lt;br /&gt;
2015&lt;/div&gt;</summary>
		<author><name>Slunden</name></author>
	</entry>
</feed>