HMR: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Hluts (talk | contribs)
Hluts (talk | contribs)
Line 629: Line 629:


Rakenduses on tehtud ka kasutajate haldus. Olgu märkusena ära toodud, et esimesena on mõistlik end rakenduses registreerida kasutajanimega admin@admin.ee (salasõna omal valikul). See kindlustab, et te olete sees admini õigustega kasutajana ning pääsete ligi kogu rakenduse funktsionaalsusele. Lisaks sellele saate muuta ka muude kasutajate rolle. Registreerides muu nimega kasutaja näete tavakasutaja vaadet, ehk vaadet kus saab ainult tegevusi mingi ruumi vastu märkida (tegevused ja ruumid peavad eelnevald admini poolt sisestatud olema).
Rakenduses on tehtud ka kasutajate haldus. Olgu märkusena ära toodud, et esimesena on mõistlik end rakenduses registreerida kasutajanimega admin@admin.ee (salasõna omal valikul). See kindlustab, et te olete sees admini õigustega kasutajana ning pääsete ligi kogu rakenduse funktsionaalsusele. Lisaks sellele saate muuta ka muude kasutajate rolle. Registreerides muu nimega kasutaja näete tavakasutaja vaadet, ehk vaadet kus saab ainult tegevusi mingi ruumi vastu märkida (tegevused ja ruumid peavad eelnevald admini poolt sisestatud olema).
Admin saab teha paljusid operatsioone. Need operatsioonid on rakenduses intuitiivselt tajutavad, klikkige vasakul menüüs olevatel linkidel ja on näha mida teha annab. Admin saab vaadata ka api kasutamise logi.


Rakenduse koodi tutvustuseks tahaks ära märkida, et seal ei kasutata eraldi andmebaasi, vaid kõk andmed asuvad api andmebaasis. Rakenduse projekti ülesehitusest võib vähesel süvenemisel taoline mulje jääda, aga selline rakenduse lahenduse struktuur tulenes sellest, et kasutasime seal Entity Frameworki kontrollerite ja vaadete loomiseks. See on tunduvalt mugavam moodus kui vaateid manuaalselt luua.
Rakenduse koodi tutvustuseks tahaks ära märkida, et seal ei kasutata eraldi andmebaasi, vaid kõk andmed asuvad api andmebaasis. Rakenduse projekti ülesehitusest võib vähesel süvenemisel taoline mulje jääda, aga selline rakenduse lahenduse struktuur tulenes sellest, et kasutasime seal Entity Frameworki kontrollerite ja vaadete loomiseks. See on tunduvalt mugavam moodus kui vaateid manuaalselt luua.
Line 634: Line 636:
Api solutionis on olemas projekt RDCL. Tegemist on projektiga, mis kogub reaalselt internetis olevaid andmeid ja lisab need Sensordata andmebaasi, mida api saab edukalt välja kuvada. Tegemist on siis virtuaalselt loodud olukorraga, kus majas asuvate andurite näitajad ilmuvad edukalt rakenduses vaatamiseks. Selleks et need andmed ilmuksid tuleb RDCL panna startup projektiks ning see siis käivitada ja lasta sel veidi aega joosta.
Api solutionis on olemas projekt RDCL. Tegemist on projektiga, mis kogub reaalselt internetis olevaid andmeid ja lisab need Sensordata andmebaasi, mida api saab edukalt välja kuvada. Tegemist on siis virtuaalselt loodud olukorraga, kus majas asuvate andurite näitajad ilmuvad edukalt rakenduses vaatamiseks. Selleks et need andmed ilmuksid tuleb RDCL panna startup projektiks ning see siis käivitada ja lasta sel veidi aega joosta.


Lõpetuseks lingid zip failidele:
Kahjuks tuleb lõpetuseks nentida, et käesolevaks kuupäevaks (24.05.2015) ei ole me api ega rakendus veel täielikul määral valmis. Meie meeskond plaanib projekte oluliselt kaitsmise ajaks veel täiendada. Aga usume, et hektel valmisolev annab ka aimu, et vajalikud tehnoloogiad on rakendatud ja korralik toorik on olemas.
 
Api:


Rakendus:
Link API ja rakenduse zip failidele: http://enos.itcollege.ee/~hluts/vr2/


= Logi =
= Logi =

Revision as of 21:28, 24 May 2015

Idee

NutiHoone

Meeskond HMR

  • Harles Luts
  • Mattiko Kabanen
  • Ranek Runthal

XML formaadis admeedastus

XML andmefail

<?xml version="1.0" encoding="utf-8" ?>
<Solarsystem>
      <TableHeader>
      <Column id="1" units="">
        <Name lang="eng"><![CDATA[Name]]></Name>
        <Name lang="est"><![CDATA[Nimi]]></Name>
      </Column>
      <Column id="2" units="AU">
        <Name lang="eng"><![CDATA[Distance]]></Name>
        <Name lang="est"><![CDATA[Kaugus]]></Name>
      </Column>
      <Column id="3" units="bar">
        <Name lang="eng"><![CDATA[Pressure on surface]]></Name>
        <Name lang="est"><![CDATA[Rõhk pinnal]]></Name>
      </Column>
      <Column id="4" units="">
        <Name lang="eng"><![CDATA[Components of atmosphere]]></Name>
        <Name lang="est"><![CDATA[Atmosfääri peamised komponendid]]></Name>
      </Column>
      <Column id="5" units="">
        <Name lang="eng"><![CDATA[More information]]></Name>
        <Name lang="est"><![CDATA[Rohem teavet]]></Name>
      </Column>
   </TableHeader>
  <Planets count="8">
   <Planet mass="0.055" unit="em" distfromsun="0.46" dunits="AU">
      <Test>
        <![CDATA[No see on test!!!]]>
      </Test>
      <Name lang="eng">
        <![CDATA[Mercury]]>
      </Name>
      <Name lang="est">
        <![CDATA[Merkuur]]>
      </Name>
      <Atmosphere surfpress="0.001" punit="picobar">
         <Component percent="42" >
          <Name lang="eng"><![CDATA[Oxygen]]></Name>
          <Name lang="est"> <![CDATA[Hapnik]]></Name>
          <ChemElem atoms="2">O</ChemElem>
        </Component>
        <Component percent="29">
          <Name lang="eng">
            <![CDATA[Sodium]]></Name>
          <Name lang="est"><![CDATA[Naatrium]]></Name>
            <ChemElem>Na</ChemElem>
          </Component>
        <Component percent="22">
          <Name lang="eng"><![CDATA[Hydrogen]]></Name>
          <Name lang="est"><![CDATA[Vesinik]]></Name>
          <ChemElem atoms="2">H</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/mercuryfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="0.815" unit="em" distfromsun="0.7" dunits="AU">
      <Name lang="eng">
        <![CDATA[Venus]]>
      </Name>
      <Name lang="est">
        <![CDATA[Veenus]]>
      </Name>
      <Atmosphere surfpress="92" punit="bar">
        <Component percent="96.5">
          <Name lang="eng"><![CDATA[Carbon Dioxide]]></Name>
          <Name lang="est"> <![CDATA[Süsinik dioksiid]]></Name>
          <ChemElem atoms="1">C</ChemElem>
          <ChemElem atoms="2">O</ChemElem>
        </Component>
        <Component percent="3.5">
          <Name lang="est"><![CDATA[Lämmasik]]></Name>
          <Name lang="eng"><![CDATA[Nitrogen]]></Name>
          <ChemElem atoms="2">N</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/venusfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="1.0" unit="em" distfromsun="1.0" dunits="AU">
      <Name lang="eng">
        <![CDATA[Earth]]>
      </Name>
      <Name lang="est">
        <![CDATA[Maa]]>
      </Name>
      <Atmosphere surfpress="1014" punit="mbar">
        <Component percent="78.08">
          <Name lang="eng"><![CDATA[Nitrogen]]></Name>
          <Name lang="est"> <![CDATA[Lämmastik]]></Name>
          <ChemElem atoms="2">N</ChemElem>
        </Component>
        <Component percent="20.95">
          <Name lang="est">
            <![CDATA[Hapnik]]></Name>
          <Name lang="eng"><![CDATA[Oxygen]]></Name>
          <ChemElem atoms="2">O</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="0.64174" unit="em" distfromsun="1.5" dunits="AU">
      <Name lang="eng">
        <![CDATA[Mars]]>
      </Name>
      <Name lang="est">
        <![CDATA[Marss]]>
      </Name>
      <Atmosphere surfpress="1014" punit="mbar">
        <Component percent="95.32">
          <Name lang="eng"><![CDATA[Carbon Dioxide]]></Name>
          <Name lang="est"> <![CDATA[Süsinik dioksiid]]></Name>
          <ChemElem atoms="1">C</ChemElem>
          <ChemElem atoms="2">O</ChemElem>
        </Component>
        <Component percent="2.7">
          <Name lang="est"><![CDATA[Lämmastik]]></Name>
          <Name lang="eng"><![CDATA[Nitrogen]]></Name>
          <ChemElem atoms="2">N</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/marsfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="318" unit="em" distfromsun="5.2" dunits="AU">
      <Name lang="eng">
        <![CDATA[Jupiter]]>
      </Name>
      <Name lang="est">
        <![CDATA[Jupiter]]>
      </Name>
      <Atmosphere surfpress="1000" punit="bar">
        <Component percent="89.8">
          <Name lang="eng"><![CDATA[Molecular Hydorgen]]></Name>
          <Name lang="est"> <![CDATA[Molekulaarne vesinik]]></Name>
          <ChemElem atoms="2">H</ChemElem>
        </Component>
        <Component percent="10.2">
          <Name lang="est"><![CDATA[Heelium]]></Name>
          <Name lang="eng"><![CDATA[Helium]]></Name>
          <ChemElem atoms="1">He</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/jupiterfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="568" unit="em" distfromsun="9.5" dunits="AU">
      <Name lang="eng">
        <![CDATA[Saturn]]>
      </Name>
      <Name lang="est">
        <![CDATA[Saturn]]>
      </Name>
      <Atmosphere surfpress="1000" punit="bar">
        <Component percent="96.3">
          <Name lang="eng"><![CDATA[Molecular Hydorgen]]></Name>
          <Name lang="est"> <![CDATA[Molekulaarne vesinik]]></Name>
          <ChemElem atoms="2">H</ChemElem>
        </Component>
        <Component percent="3.25">
          <Name lang="est"><![CDATA[Heelium]]></Name>
          <Name lang="eng"><![CDATA[Helium]]></Name>
          <ChemElem atoms="1">He</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/saturnfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="87" unit="em" distfromsun="19.2" dunits="AU">
      <Name lang="eng">
        <![CDATA[Uranus]]>
      </Name>
      <Name lang="est">
        <![CDATA[Uraan]]>
      </Name>
      <Atmosphere surfpress="1000" punit="bar">
        <Component percent="82.5">
          <Name lang="eng"><![CDATA[Molecular Hydorgen]]></Name>
          <Name lang="est"> <![CDATA[Molekulaarne vesinik]]></Name>
          <ChemElem atoms="2">H</ChemElem>
        </Component>
        <Component percent="15.2">
          <Name lang="est"><![CDATA[Heelium]]></Name>
          <Name lang="eng"><![CDATA[Helium]]></Name>
          <ChemElem atoms="1">He</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/uranusfact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
    <Planet mass="568" unit="em" distfromsun="30.1" dunits="AU">
      <Name lang="eng">
        <![CDATA[Neptun]]>
      </Name>
      <Name lang="est">
        <![CDATA[Neptuun]]>
      </Name>
      <Atmosphere surfpress="1000" punit="bar">
        <Component percent="80.0">
          <Name lang="eng"><![CDATA[Molecular Hydorgen]]></Name>
          <Name lang="est"> <![CDATA[Molekulaarne vesinik]]></Name>
          <ChemElem atoms="2">H</ChemElem>
        </Component>
        <Component percent="19.0">
          <Name lang="est"><![CDATA[Heelium]]></Name>
          <Name lang="eng"><![CDATA[Helium]]></Name>
          <ChemElem atoms="1">He</ChemElem>
        </Component>
      </Atmosphere>
      <MoreInfo type="weblink">
        <![CDATA[http://nssdc.gsfc.nasa.gov/planetary/factsheet/neptunefact.html]]>
      </MoreInfo>
    </Planet>
    <!-- ........................................................................... -->
  </Planets>
  <Asteroids>
    <Asteroid>

    </Asteroid>
  </Asteroids>
</Solarsystem>

XML skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Solarsystem">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TableHeader">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Column">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Name">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="lang" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="units" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Planets">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Planet">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="Test" type="xs:string" />
                    <xs:element maxOccurs="unbounded" name="Name">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="lang" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Atmosphere">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="Component">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="Name">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="lang" type="xs:string" use="required" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element maxOccurs="unbounded" name="ChemElem">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="atoms" type="xs:unsignedInt" use="optional" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="percent" type="xs:decimal" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="surfpress" type="xs:decimal" use="required" />
                        <xs:attribute name="punit" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MoreInfo">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="type" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="mass" type="xs:decimal" use="required" />
                  <xs:attribute name="unit" type="xs:string" use="required" />
                  <xs:attribute name="distfromsun" type="xs:decimal" use="required" />
                  <xs:attribute name="dunits" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="count" type="xs:unsignedInt" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="Asteroids">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Asteroid" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XML transformatsioonifail

XSLT planeetide ülevaatetabeli genereerimiseks

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <style type="text/css">
          table, td, th { border: 1px solid gray }
          td {align:center;}
        </style>
        <title>Dummy list of planets</title>
      </head>
        <body>
          <h1>
            <xsl:choose>
            <xsl:when test="Solarsystem/Planets[@lang='est']">
              <![CDATA[Planeetide ülevaade]]>
            </xsl:when>
            <xsl:otherwise>
              <![CDATA[List of planets]]>
            </xsl:otherwise>
            </xsl:choose>
          </h1>
          <table>
            <tr>
              <xsl:for-each select="Solarsystem/TableHeader/Column">
                <th>
                   <xsl:value-of select="Name[@lang='eng']"/>
                  <xsl:if test="@units!=''">
                  (<xsl:value-of select="@units"/>)
                  </xsl:if>
                </th>
              </xsl:for-each>
            </tr>
              <xsl:for-each select="Solarsystem/Planets/Planet">
               <tr>
                <td>
                    <xsl:value-of select="Name[@lang='eng']"/>
                </td>
                <td>
                  <xsl:value-of select="@distfromsun"/>
                </td>
                <td>
                  <xsl:value-of select="Atmosphere/@surfpress"/>
                </td>
                <td>
                  <ul>
                  <xsl:for-each select="Atmosphere/Component">
                    <li>
                      <xsl:value-of select="Name[@lang='eng']"/>
                      (
                      <xsl:for-each select="ChemElem">
                        <xsl:value-of select="."/>
                        <xsl:if test="@atoms &gt; 1">
                          <sub>
                            <xsl:value-of select="@atoms"/>
                        </sub>
                        </xsl:if>
                      </xsl:for-each>
                      )
                      - [<xsl:value-of select="@percent"/>%]
                    </li>                  
                    
                  </xsl:for-each>
                  </ul>
                </td>
                <td>
                  <xsl:element name="a">
                    <xsl:attribute name="href">
                       <xsl:value-of select="MoreInfo"/>
                    </xsl:attribute>
                    <xsl:value-of select="MoreInfo"/>
                  </xsl:element>
                </td>
              </tr>
            </xsl:for-each>
          </table>
          <!--******************************************************************-->
          <h1>
            <xsl:choose>
              <xsl:when test="Solarsystem/Planets[@lang='est']">
                <![CDATA[Siseringi planeedid]]>
              </xsl:when>
              <xsl:otherwise>
                <![CDATA[Planets of inner circle]]>
              </xsl:otherwise>
            </xsl:choose>
          </h1>
          <table>
            <tr>
              <xsl:for-each select="Solarsystem/TableHeader/Column">
                <th>
                  <xsl:value-of select="Name[@lang='eng']"/>
                  <xsl:if test="@units!=''">
                    (<xsl:value-of select="@units"/>)
                  </xsl:if>
                </th>
              </xsl:for-each>
            </tr>
            <xsl:for-each select="Solarsystem/Planets/Planet">
              <xsl:if test="@distfromsun &lt; 1">
              <tr>
                <td>
                  <xsl:value-of select="Name[@lang='eng']"/>
                </td>
                <td>
                  <xsl:value-of select="@distfromsun"/>
                </td>
                <td>
                  <xsl:value-of select="Atmosphere/@surfpress"/>
                </td>
                <td>
                  <ul>
                    <xsl:for-each select="Atmosphere/Component">
                      <li>
                        <xsl:value-of select="Name[@lang='eng']"/>
                        (
                        <xsl:for-each select="ChemElem">
                          <xsl:value-of select="."/>
                          <xsl:if test="@atoms &gt; 1">
                            <sub>
                              <xsl:value-of select="@atoms"/>
                            </sub>
                          </xsl:if>
                        </xsl:for-each>
                        )
                        - [<xsl:value-of select="@percent"/>%]
                      </li>

                    </xsl:for-each>
                  </ul>
                </td>
                <td>
                  <xsl:element name="a">
                    <xsl:attribute name="href">
                      <xsl:value-of select="MoreInfo"/>
                    </xsl:attribute>
                    <xsl:value-of select="MoreInfo"/>
                  </xsl:element>
                </td>
              </tr>
              </xsl:if>
            </xsl:for-each>
          </table>
        </body>
      </html>
  </xsl:template>
</xsl:stylesheet>

XSLT sorteeritud tabeli genereerimiseks

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <style type="text/css">
          table, td, th { border: 1px solid gray }
          td {align:center;}
        </style>
        <title>Sort by weight</title>
      </head>

      <body>
        <table>
          <tr>
            <th>Planeedi nimi</th>
            <th>Planeedi mass(Earth masses)</th>
            <th>Kaugus päikesest(AU)</th>
          </tr>
          <xsl:for-each select="Solarsystem/Planets/Planet">
            <xsl:sort select="@mass" order="descending" data-type="number"/>
            <tr>
              <td>
                <xsl:value-of select="Name"/>
              </td>
              <td>
                <xsl:value-of select="@mass"/>
              </td>

              <td>
                <xsl:value-of select="@distfromsun"/>
              </td>

            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Planeetide ja nende infolinkide XML-i produtseermise XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" cdata-section-elements="Name Link"/>
    <xsl:template match="/">
    <Solarsystem>
      <Planets>
        <xsl:for-each select="Solarsystem/Planets/Planet">
        <Planet>
          <Name>
            <xsl:value-of select="Name"/>
          </Name>
          <Link>
            <xsl:value-of select="MoreInfo"/>
          </Link>
        </Planet>
          </xsl:for-each>
      </Planets>
      </Solarsystem>
  </xsl:template>
</xsl:stylesheet>

Retsensioon

Retsensioon meeskonnale HMR meeskonnalt /*Anonüümsed koodikommentaatorid*/ asub siin

Analüüs

Projekti esialgne andmebaasimudel on esitatud siin. Projekti esialgne kasutusjuhtude analüüs on esitatud siin.

Meil on firma (nimi, aadress, kontakt), või siis on elupaik (eraisikul), kus on mitu hoonet, mida jälgida. (Garaaz, kuur, elumaja, saunamaja). Igas hoones on korrused, korrustel on tsoonid, tsoonides on ruumid. Mõnikord on ühes tsoonis mitu ruumi, mõnikord ainult üks. Mõnikord on tsoonides mitu korrust korraga.Ruumides on andurid.

Anduriteks on meil liikumisandurid, akna- ja ukseandurid, temperatuuri andurid, suitsuandurid, klaasipurunemisandurid, elektripistiku andur, niiskusandur, CO2 andur, tuule suuna ja tugevuse andur, heliandur.

Anduritelt tuleb info (kas true või false või konkreetne number nagu temperatuur) mis salvestub baasi (anduri väärtus mingil ajahetkel).

Meil on kasutajad, kasutajad on jagatud rollidesse (admin, tavakasutaja, keegi kolmas), rollidel on erinevad õigused. Kui eramaja, siis adminid on ilmselt kõik pereliikmed, kolmandat kasutajat pole ja tavakasutajaks on külalised. Äripuhul on juhtkond ja spetsialistid näiteks administraatorid, kolmandad isikud siis juba erinevad ametimehed firma töötajate hulgast(koristaja, administraator, turvamees) ja tavakasutajad on kliendid ja osad töötajad kellel pole vajadust muid õigusi anda (ilmselgelt näevad nendest kasutajatest andurite väärtusi ainult need, kes pääsevad mingisse konkreetsesse ruumi, kus asub juhtpult või ekraan mis kuvab andurite väärtusi, seega päris kõik inimesed seal hoones ei kuulu tavakasutajate hulka).

Admin saab:

1.jälgida statistikat
2.näeb andurite hetke väärtusi, olekuid
3. saab panna valvesse hoonet, valvest maha
4. lülitada välja pistikuid kaugelt
5. näeb kasutajate statistikat
6. näeb ajalugu (andurite, valvessepaneku)
7. saab anda õigusi ja ära võtta

Keegi kolmas:

1. saab panna valvesse, maha võtta
2. näeb andurite väärtusi ja olekuid hetkel
3. saab välja lülitada pistikuid kaugelt

Tavakasutaja:

1. näeb andurite väärtusi ja olekuid hetkel

Veebiteenus ja klientrakendus

Anname väikese sissejuhatuse NutiHoone API-st ja klientrakendusest.

Tegemist on rakendusega mis laseb inimestel mingit hoonet hallata. Samuti annab rakendus aimu hoonet iseloomustavatest parameetritest. Lühidalt on arenduse idee selles, et maja ja tema kasutaja oleks teadlik maja olukorrast. Meie arendus koosneb kahest lahendusest (solution), millest esimeseks on api ning teiseks on rakendus. Esiteks tuleb tööle panna api ning seejärel rakendus, siis peaks asi toimima.

Rakenduses on tehtud ka kasutajate haldus. Olgu märkusena ära toodud, et esimesena on mõistlik end rakenduses registreerida kasutajanimega admin@admin.ee (salasõna omal valikul). See kindlustab, et te olete sees admini õigustega kasutajana ning pääsete ligi kogu rakenduse funktsionaalsusele. Lisaks sellele saate muuta ka muude kasutajate rolle. Registreerides muu nimega kasutaja näete tavakasutaja vaadet, ehk vaadet kus saab ainult tegevusi mingi ruumi vastu märkida (tegevused ja ruumid peavad eelnevald admini poolt sisestatud olema).

Admin saab teha paljusid operatsioone. Need operatsioonid on rakenduses intuitiivselt tajutavad, klikkige vasakul menüüs olevatel linkidel ja on näha mida teha annab. Admin saab vaadata ka api kasutamise logi.

Rakenduse koodi tutvustuseks tahaks ära märkida, et seal ei kasutata eraldi andmebaasi, vaid kõk andmed asuvad api andmebaasis. Rakenduse projekti ülesehitusest võib vähesel süvenemisel taoline mulje jääda, aga selline rakenduse lahenduse struktuur tulenes sellest, et kasutasime seal Entity Frameworki kontrollerite ja vaadete loomiseks. See on tunduvalt mugavam moodus kui vaateid manuaalselt luua.

Api solutionis on olemas projekt RDCL. Tegemist on projektiga, mis kogub reaalselt internetis olevaid andmeid ja lisab need Sensordata andmebaasi, mida api saab edukalt välja kuvada. Tegemist on siis virtuaalselt loodud olukorraga, kus majas asuvate andurite näitajad ilmuvad edukalt rakenduses vaatamiseks. Selleks et need andmed ilmuksid tuleb RDCL panna startup projektiks ning see siis käivitada ja lasta sel veidi aega joosta.

Kahjuks tuleb lõpetuseks nentida, et käesolevaks kuupäevaks (24.05.2015) ei ole me api ega rakendus veel täielikul määral valmis. Meie meeskond plaanib projekte oluliselt kaitsmise ajaks veel täiendada. Aga usume, et hektel valmisolev annab ka aimu, et vajalikud tehnoloogiad on rakendatud ja korralik toorik on olemas.

Link API ja rakenduse zip failidele: http://enos.itcollege.ee/~hluts/vr2/

Logi

25.02.15 - esimene projektimeeskonna käraja

06.03.15 - XML kodutöö esitamine

xml ja esialgne xslt on olemas. xsd ja üht-teist veel tuleb lähiajal.

07.03.15 - XML kodutöö esitamine

Kogu kompott peaks olema siis nüüd üles laetud

07.04.15 - Analüüsi esitamine

Analüüs üles laetud.