Leemur: Difference between revisions
Line 514: | Line 514: | ||
- Versioonihaldus ülesse seada - Asjassepühendatute jaoks paikneb see siin: https://leemur.visualstudio.com/ ''15.05.2013.'' | - Versioonihaldus ülesse seada - Asjassepühendatute jaoks paikneb see siin: https://leemur.visualstudio.com/ ''15.05.2013.'' | ||
- Andmebaasiserver töökorda seada (OK - Rasmus). Installeeritud MS SQL Express 12 (version 11.0.3128.0) ''16.05.2013'' | - Andmebaasiserver töökorda seada (OK - Rasmus). Installeeritud MS SQL Express 12 (version 11.0.3128.0) ''16.05.2013'' | ||
- Domeeni mudel valmis teha | - Domeeni mudel valmis teha - OK | ||
- EF raamistik paika () | - EF raamistik paika () - OK | ||
- Luua standard Repod iga objekti klassi kohta (I{KlassiNimi}Repository + {KlassiNimi}Repository) | - Luua standard Repod iga objekti klassi kohta (I{KlassiNimi}Repository + {KlassiNimi}Repository) | ||
- Funktsionaalsuse teostus (Controllers) (Get + Post + Put + Delete) | - Funktsionaalsuse teostus (Controllers) (Get + Post + Put + Delete) - OK | ||
- Autentimine, Autoriseerimine | - Autentimine, Autoriseerimine - veidi problemaatiline. | ||
== Klientrakendus == | == Klientrakendus == |
Revision as of 20:25, 20 May 2013
Meeskond "Leemur"
- Liikmed
- Marika Mäemets
- Rasmus Hommuk
- Mairo Puusepp
- Einar Kivisalu
Idee
Et käesoleval hetkel on aktuaalne teedelagunemine ja augud tekivad igalepoole üleöö, siis on meie XML asfaldiaukude teemaline.
XML
XML fail
<?xml version="1.0" encoding="utf-8"?>
<teeauk>
<tänavad>
<tänav id = "CU00609359" tyyp = "tänav">
<nimi>Raja</nimi>
<pikkus yhik="meeter">856</pikkus>
<augud>
<auk id = "1">
<xkoord>6584427.3</xkoord>
<ykoord>537660</ykoord>
<sügavus yhik="meeter">0.08</sügavus>
<pindala yhik="ruutmeeter">0.4</pindala>
<teataja id = "1">
<nimi>Peeter Linnakodanik</nimi>
<roll>autojuht</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-04-10</likvideeritud>
</auk>
<auk id = "2">
<xkoord>6584348.6</xkoord>
<ykoord>537658.6</ykoord>
<sügavus yhik="meeter">0.8</sügavus>
<pindala yhik="ruutmeeter">0.54</pindala>
<teataja id = "1">
<nimi>Peeter Linnakodanik</nimi>
<roll>autojuht</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
</auk>
</augud>
</tänav>
<tänav id = "CU00464822" tyyp = "tänav">
<nimi>Ehitajate tee</nimi>
<pikkus yhik="meeter">23</pikkus>
<augud>
<auk id = "3">
<xkoord>6584526.2</xkoord>
<ykoord>537923.8</ykoord>
<sügavus yhik="meeter">0.9</sügavus>
<pindala yhik="ruutmeeter">0.5</pindala>
<teataja id = "2">
<nimi>Jüri Kõvaametnik</nimi>
<roll>Maanteeameti kontroll</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
<auk id = "4">
<xkoord>6584655.9</xkoord>
<ykoord>537637.5</ykoord>
<sügavus yhik="meeter">0.6</sügavus>
<pindala yhik="ruutmeeter">0.7</pindala>
<teataja id = "2">
<nimi>Jüri Kõvaametnik</nimi>
<roll>Maanteeameti kontroll</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
<auk id = "5">
<xkoord>6584532</xkoord>
<ykoord>537954.2</ykoord>
<sügavus yhik="meeter">0.6</sügavus>
<pindala yhik="ruutmeeter">1.7</pindala>
<teataja id = "2">
<nimi>Jüri Kõvaametnik</nimi>
<roll>Maanteeameti kontroll</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
<tänav id = "CU00464824" tyyp = "tänav">
<nimi>Sõpruse puiestee</nimi>
<pikkus yhik="meeter">4623</pikkus>
<augud>
<auk id = "6">
<xkoord>6584621.1</xkoord>
<ykoord>538267</ykoord>
<sügavus yhik="meeter">0.11</sügavus>
<pindala yhik="ruutmeeter">2.7</pindala>
<teataja id = "2">
<nimi>Jüri Kõvaametnik</nimi>
<roll>Maanteeameti kontroll</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
<tänav id = "CU00072238" tyyp = "tänav">
<nimi>Ranna tee</nimi>
<pikkus yhik="meeter">623</pikkus>
<augud>
<auk id = "11">
<xkoord>6587966.2</xkoord>
<ykoord>531049.2</ykoord>
<sügavus yhik="meeter">0.07</sügavus>
<pindala yhik="ruutmeeter">0.25</pindala>
<teataja id = "3">
<nimi>Mari Vallaametnik</nimi>
<roll>Vallavalitsuse insener</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
<tänav id = "CU00072411" tyyp = "tänav">
<nimi>Ranna tee</nimi>
<pikkus yhik="meeter">1023</pikkus>
<augud>
<auk id = "12">
<xkoord>6587827.8</xkoord>
<ykoord>531034.3</ykoord>
<sügavus yhik="meeter">0.07</sügavus>
<pindala yhik="ruutmeeter">0.75</pindala>
<teataja id = "3">
<nimi>Mari Vallaametnik</nimi>
<roll>Vallavalitsuse insener</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
<tänav id = "CU00069699" tyyp = "maantee">
<nimi>Klooga mnt</nimi>
<pikkus yhik="meeter">623</pikkus>
<augud>
<auk id = "13">
<xkoord>6588082</xkoord>
<ykoord>531159.8</ykoord>
<sügavus yhik="meeter">0.16</sügavus>
<pindala yhik="ruutmeeter">0.75</pindala>
<teataja id = "3">
<nimi>Mari Vallaametnik</nimi>
<roll>Vallavalitsuse insener</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
<tänav id = "CU02094396" tyyp = "tänav">
<nimi>Nõlvaku tänav</nimi>
<pikkus yhik="meeter">823</pikkus>
<augud>
<auk id = "11">
<xkoord>6579325.4</xkoord>
<ykoord>536312.7</ykoord>
<sügavus yhik="meeter">0.11</sügavus>
<pindala yhik="ruutmeeter">1.55</pindala>
<teataja id = "4">
<nimi>Ülo Vallavanem</nimi>
<roll>Vallavanem</roll>
</teataja>
<avastatud>2013-02-15</avastatud>
<likvideeritud>2013-02-15</likvideeritud>
</auk>
</augud>
</tänav>
</tänavad>
</teeauk>
XSD fail
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema1"
targetNamespace="http://tempuri.org/teeauk.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/teeauk.xsd"
xmlns:mstns="http://tempuri.org/teeauk.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:simpleType name="yhikpikkus">
<xs:restriction base="xs:string">
<xs:enumeration value="meeter"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yhiksygavus">
<xs:restriction base="xs:string">
<xs:enumeration value="meeter"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yhikpindala">
<xs:restriction base="xs:string">
<xs:enumeration value="ruutmeeter"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="teeauk">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs ="0" maxOccurs="unbounded" name="tänavad">
<xs:complexType>
<xs:choice>
<xs:element minOccurs ="0" maxOccurs="unbounded" name="tänav">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string"></xs:element>
<xs:element name="pikkus">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="yhik" type="yhikpikkus"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="augud">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="auk">
<xs:complexType>
<xs:sequence>
<xs:element name="xkoord" type="xs:double"></xs:element>
<xs:element name="ykoord" type="xs:double"></xs:element>
<xs:element name="sügavus">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="yhik" type="yhiksygavus"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="pindala">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="yhik" type="yhikpindala"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="teataja">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string"></xs:element>
<xs:element name="roll" type="xs:string"></xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:int"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="avastatud" type="xs:date"></xs:element>
<xs:element name="likvideeritud" type="xs:date" minOccurs ="0"></xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:int"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string"></xs:attribute>
<xs:attribute name="tyyp" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT failid
Asfaldiaukude tabel
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>Asfaldiaugud üle kogu maa</title>
</head>
<body>
<h1>Asfaldiaukude nimekiri</h1>
<ul>
<xsl:for-each select="/teeauk/tänavad/tänav">
<li>
<xsl:value-of select="nimi"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@tyyp"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="pikkus"/>
<xsl:value-of select="@yhik"/>
<xsl:text>-</xsl:text>
<table border="1">
<th>
<td>Koordinaadid</td>
<td>Sügavus ja pindlala</td>
<td>Teavitaja</td>
<td>Avastatud</td>
<td>Likvideeritud</td>
</th>
<xsl:for-each select="augud/auk">
<tr>
<td>
<xsl:value-of select="@id" />
</td>
<td>
<xsl:text>X </xsl:text>
<xsl:value-of select="xkoord" />
<br/>
<xsl:text>Y </xsl:text>
<xsl:value-of select="ykoord" />
</td>
<td>
<xsl:value-of select="sügavus" />
<br/>
<xsl:value-of select="pindala" />
</td>
<td>
<xsl:value-of select="teataja/nimi" />
<br/>
<xsl:value-of select="teataja/roll" />
</td>
<td>
<xsl:value-of select="avastatud" />
</td>
<td>
<xsl:value-of select="likvideeritud" />
<xsl:text>.</xsl:text>
</td>
</tr>
</xsl:for-each>
</table>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Aukudest teatajad
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>Asfaldiaugud üle kogu maa</title>
</head>
<body>
<h1>Aukudest teatajate nimekiri</h1>
<ul>
<xsl:for-each select="/teeauk/tänavad/tänav/augud/auk/teataja">
<li>
<xsl:value-of select="./nimi"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="./roll"/>
<xsl:text> </xsl:text>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>Teede/tänavate nimekiri</title>
</head>
<body>
<h1>Teede/tänavate nimekiri</h1>
<ul>
<xsl:for-each select="/teeauk/tänavad/tänav">
<li>
<xsl:value-of select="./nimi"/>
<xsl:text> - </xsl:text>
<xsl:value-of select="./pikkus"/>
<xsl:text> meetrit </xsl:text>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Retsensioonid
XML
XML
XML-failis on 6 loogilist dimensiooni. Tasemete kaupa välja kirjutatuna: tase 1: teeauk tase 2: tänavad tase 3: tänav (atribuudid: tüüp) tase 4: nimi, pikkus, augud tase 5: auk tase 6: xkoord, ykoord, sügavus, pindala, teataja, avastatud, likvideeritud. Atribuute on kasutatud nõuetele vastavas koguses. Taseme "tänav" juurde on loodud atribuut "tyyp", mis võib olla kas "tänav" või "maantee". Rühma Leemur oleks võinud paari sõnaga kommenteerida, miks on tänava ja maantee eristamine oluline.
XSD
XSD-faili põhjal võib aukudega tänavaid ka üldse mitte eksisteerida või olla piiramata arv. Põhimõtteliselt võiks tänavate arv olla piiratud mõne mõistliku numbriga, aga samas ei tohiks ka piiramata arv olla probleem. Dimensioon "tänavad" sisaldab järgmise tasemena elemente tüübist "tänav". Miks on sealjuures taseme "tänavad" elementide kirjeldamiseks kasutatud tag'i "choise", mille sees on ainult üks element? Dimensiooni "tänavad" elemendid peavad olema kirjeldatud kindlas järjekorras (nimi, pikkus, augud). Koodi loetavuse seisukohalt on hea, kui see nii on. Atribuutide kirjelduses võiks ehk augu pindala ja sügavus olla lubatud kirjeldada ka vastavalt sentimeetrites ja ruutsentimeetrites.
XSL
XSL-faile on kokku 3, mida on rohkem kui minimaalselt nõutud- 2. Asfaldiaukude tabel Tabelis on augu id, koordinaadid, pindala, teataja nimi ja roll, avastamise ja likvideerimise kuupäev. Aukudest teatajate tabel Tabelis näidatakse teatajate nimesid ja rollisid. Tänavate tabel Näidatakse tänavanimesid koos tänavate pikkustega. Mõne sõnaga võiks ehk kirjeldada, millist eesmärki html-kujule teisendatud tabelid kasutaja seisukohast võiksid täita.
Kokkuvõtvalt võib öelda, et meeskond "Leemur" on oma XML-, XSD -ja XSL-failid koostanud loogiliselt ja hästi struktureeritult.
Meeskond TeravC
Tiim "Leemur" on pakkunud välja XML liidese definitsiooni tänavaaukude kohta käiva info edastamiseks. Teema on igati ajakohane ning antud lahendus omab ka reaalset rakendust näiteks autojuhi GPS tarkvaras. Iseasi, et andmemahu kokkuhoiu mõttes võibolla oleks kasulik terved kohad edastada aukude asemel.
Esitatud lahendus vastab kodutöös nõutud tingimustele ja ootustele keerukuse osas ning isegi ületab neid. XML faili struktuur on arusaadav ja lisakommentaare ei vaja.
Näidisena välja pakutud XSLT abil õnnestub genereerida väljund nii HTML kui XML formaadis.
Andmete grupeerimine tänavate kaupa tundub mõistlik arvestades potentsiaalse info tarbija vajadust saada infot parasjagu läbitava tänava kohta. Tänava pikkuse esitamise vajadusest ei saa hästi aru. Aukudel on ka omadus taastekkida, antud struktuur võimaldab aga esitada ühe(viimase?) teataja ning parandaja. Rakenduse võib muidugi luua selliselt, et uuesti teatades muutub parandaja väli väljund XML'is uuesti tühjaks. samas oleks hea info aukude kohta, mis pidevalt lagunevad ja parandatud saavad.
XML välja nimetuses täpitähtede kasutamine ei pruugi olla alati hea mõte, ehkki on loomulikult lubatud.
Meeskond Hops
Veebiteenus
Jätkame asfaldiaukude teemaga, kuna tänavate seisukord on endiselt päevakorral olev teema ja ei ole näha, et see aktuaalsuse minetaks.
Veebiteenus peab olema valmis ja ja wikilehel kirjeldatud hiljemalt 20. mai 2013.
Retsensioonid veebiteenuste kohta peavad tehtud olema 27. mai 2013
- Loodav veebiteenus peab võimaldama:
- Teenuse pakkumist
- Teenuse kasutajate tuvastamist ning haldamist
- Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).
plaanitav funktsionaalsus
- teha teenus, mis väljastab viimased lisatud augud - teha teenus, mis väljastab valitud tänaval asuvad augud - teha teenus, mis väljastab kõige suurema aukude arvuga tänavad (suhtes pikkusega) - teha teenus, mis ... - teha teenus, mis ...
Tööd
- Versioonihaldus ülesse seada - Asjassepühendatute jaoks paikneb see siin: https://leemur.visualstudio.com/ 15.05.2013. - Andmebaasiserver töökorda seada (OK - Rasmus). Installeeritud MS SQL Express 12 (version 11.0.3128.0) 16.05.2013 - Domeeni mudel valmis teha - OK - EF raamistik paika () - OK - Luua standard Repod iga objekti klassi kohta (I{KlassiNimi}Repository + {KlassiNimi}Repository) - Funktsionaalsuse teostus (Controllers) (Get + Post + Put + Delete) - OK - Autentimine, Autoriseerimine - veidi problemaatiline.
Klientrakendus
Klientrakendused peavad olema valmis ja wikilehel kirjeldatud hiljemalt 10. juuni 2013. Retsensioonid veebiteenuste kohta peavad tehtud olema 15. juuni 2013
Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.
Variant1: teha klientrakendus enda loodud veebiteenusele