TÜC2

From EIK wiki

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

Lehekülg loodud: 05.03.2014

Meeskonna nimi: TÜC

Liikmed: Ülle Tiitson, Tiit Teder, Anna Carina Vainola

Projektijuht: Anna Carina Vainola

Rakenduse nimi: Küüt

Rakenduse idee: Otsin transporti, pakun transporti. Tegemist on Eesti sisese rakendusega, kuhu pannakse ülesse kuulutused autos olevate vabade kohtade kohta.


Kodutöö XML osa 8.märts

Esimese ülesande täitmiseks võtsime põhjaks jalgrataste informatsiooni. Jalgratastel on olemas kategooriad, mudeli nimi, pilt, tootja andmed, suurus, värvid, käikude informatsioon, kaal, piduritüüp, seisukord ning kirjeldus.

XML fail andmetega

<?xml version="1.0" encoding="utf-8" ?>
<Jalgrattad>
  <Kategooriad>
    <Kategooria>Linnaratas</Kategooria>
    <Kategooria>Meesteratas</Kategooria>
    <Kategooria>Naisteratas</Kategooria>
    <Kategooria>Maastikuratas</Kategooria>
    <Kategooria>Retro</Kategooria>
    <Kategooria>Elektriratas</Kategooria>
    <Kategooria>Lasteratas</Kategooria>
    <Kategooria>BMX</Kategooria>
    <Kategooria>Kokkupandav ratas</Kategooria>
    <Kategooria>Hübriid</Kategooria>
  </Kategooriad>
  <Jalgratas id="0">
    <Kategooriad>
      <Kategooria>Meesteratas</Kategooria>
      <Kategooria>Linnaratas</Kategooria>
    </Kategooriad>
    <PildiUrl>http://www.rattamees.ee/upload/eshop/images/1501/campus-gent.jpg</PildiUrl>
    <Mudel>Expert Campus</Mudel>
    <Tootja nimi="Campus">
      <Veebileht>www.campus.eu</Veebileht>
    </Tootja>
    <Suurus yhik="tolli">28</Suurus>
    <Varvused>
      <Varvus>Must</Varvus>
      <Varvus>Valge</Varvus>
      <Varvus>Punane</Varvus>
    </Varvused>
    <Kaigud arv="21"><![CDATA[Shimano Tourney STI]]></Kaigud>
    <Kaal yhik="kg">15.9</Kaal>
    <Kirjeldus><![CDATA[Helkurriba rehvidel, roostevabad poldid ja mutrid.]]></Kirjeldus>
    <Pidurityyp>V-pidurid</Pidurityyp>
    <Seisukord>Uus</Seisukord>
    <Hind yhik="euro">329.00</Hind>
  </Jalgratas>
  <Jalgratas id="1">
    <Kategooriad>
      <Kategooria>Naisteratas</Kategooria>
      <Kategooria>Maastikuratas</Kategooria>
    </Kategooriad>
    <PildiUrl>http://www.rattakeskus.ee/components/com_virtuemart/shop_image/product/FANCY444_43_4f942cfe0a699.jpg</PildiUrl>
    <Mudel>FANCY444 43</Mudel>
    <Tootja nimi="Panther">
      <Veebileht>www.pantherbike.com</Veebileht>
    </Tootja>
    <Suurus yhik="tolli">26</Suurus>
    <Varvused>
      <Varvus>Staratosilver</Varvus>
      <Varvus>Valge</Varvus>
    </Varvused>
    <Kaigud arv="24"><![CDATA[Shimano Alivio]]></Kaigud>
    <Kaal yhik="kg">14</Kaal>
    <Kirjeldus><![CDATA[Alumiinium raamiga naiste maastikuratas.]]></Kirjeldus>
    <Pidurityyp>Ketaspidurid</Pidurityyp>
    <Seisukord>Uus</Seisukord>
    <Hind yhik="euro">607.00</Hind>
  </Jalgratas>
  <Jalgratas id="2">
    <Kategooriad>
      <Kategooria>Meesteratas</Kategooria>
      <Kategooria>Linnaratas</Kategooria>
    </Kategooriad>
    <PildiUrl>http://www.rattakeskus.ee/components/com_virtuemart/shop_image/product/P332_CT_9__513c9808e4b14.jpg</PildiUrl>
    <Mudel>P332 CT-9</Mudel>
    <Tootja nimi="Panther">
      <Veebileht>www.pantherbike.com</Veebileht>
    </Tootja>
    <Suurus yhik="tolli">26</Suurus>
    <Varvused>
      <Varvus>Must</Varvus>
    </Varvused>
    <Kaigud arv="7"><![CDATA[Shimano Nexus]]></Kaigud>
    <Kaal yhik="kg">15</Kaal>
    <Kirjeldus><![CDATA[Ketikaitse, tagatuli.]]></Kirjeldus>
    <Pidurityyp>V-pidurid</Pidurityyp>
    <Seisukord>Uus</Seisukord>
    <Hind yhik="euro">579.00</Hind>
  </Jalgratas>
  <Jalgratas id="3">
    <Kategooriad>
      <Kategooria>Naisteratas</Kategooria>
      <Kategooria>Retroratas</Kategooria>
      <Kategooria>Linnaratas</Kategooria>
    </Kategooriad>
    <PildiUrl>http://firewhenreadypottery.com/wp-content/uploads/2010/10/barn-rusty-bike-2.jpg</PildiUrl>
    <Mudel>Retro</Mudel>
    <Tootja nimi="Tuvastamatu">
      <Veebileht></Veebileht>
    </Tootja>
    <Suurus yhik="tolli">25</Suurus>
    <Varvused>
      <Varvus>Rooste</Varvus>
    </Varvused>
    <Kaigud arv="1"><![CDATA[edaspidi]]></Kaigud>
    <Kaal yhik="kg">10</Kaal>
    <Kirjeldus><![CDATA[Põõsa lisakaal on 5 kg. Väikesed iluvead, aga pole midagi mida ei annaks parandada. Läbisõit originaalne. Otse Saksamaalt - Eelmine kasutaja sakslanna, kasutas pühapäeviti kirikusse sõitmiseks. Sadul pole hinna sees. Unikaalne.]]></Kirjeldus>
    <Pidurityyp>Kannapidur</Pidurityyp>
    <Seisukord>Kasutatud</Seisukord>
    <Hind yhik="euro">1000</Hind>
  </Jalgratas>
</Jalgrattad>

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="Jalgrattad">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Kategooriad">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Kategooria" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element maxOccurs="unbounded" name="Jalgratas">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Kategooriad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Kategooria" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="PildiUrl" type="xs:string" />
              <xs:element name="Mudel" type="xs:string" />
              <xs:element name="Tootja">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Veebileht" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="nimi" type="xs:string" />
                </xs:complexType>
              </xs:element>
              <xs:element name="Suurus">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:unsignedByte">
                      <xs:attribute name="yhik" type="xs:string" use="required" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Varvused">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Varvus" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Kaigud">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string" >
                      <xs:attribute name="arv" type="xs:unsignedByte" use="required"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Kaal">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:float">
                      <xs:attribute name="yhik" type="xs:string" use="required" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Kirjeldus" type="xs:string" />
              <xs:element name="Pidurityyp" type="xs:string" />
              <xs:element name="Seisukord" type="xs:string" />
              <xs:element name="Hind">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="yhik" 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:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSL 1. fail

<?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>
          <title>Jalgrattad</title>
        </head>
        <body>
          <h1>Jalgrattad:</h1>
          <xsl:for-each select="Jalgrattad/Jalgratas">
            <h2><xsl:value-of select="Mudel"/></h2>
              <div width="300">
                <xsl:value-of select="Kirjeldus"/>
              </div>
            
              <img width="200" height="150">
                <xsl:attribute name="src">
                  <xsl:value-of select="PildiUrl"/>
                </xsl:attribute>
              </img>
            <hr></hr>
            
            
          </xsl:for-each>
        
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

XSL 2. fail

<?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>
        <title>Meie jalgrattad</title>
      </head>
      <body>
        <h1>Jalgrattad müügiks:</h1>
        <div id="yles"></div>
        <xsl:for-each select="/Jalgrattad/Kategooriad/Kategooria">
          <xsl:variable name="Kat" select="."/>
          <h2>
            <xsl:value-of select="$Kat"/>
          </h2>
          <ul>
            <xsl:for-each select="/Jalgrattad/Jalgratas">
              <xsl:if test="Kategooriad/Kategooria=$Kat">
                <li>
                  <a>
                    <xsl:attribute name="href">
                      <xsl:text>#</xsl:text>
                      <xsl:value-of select="@id"/>
                    </xsl:attribute>
                    <xsl:value-of select="Mudel"/>
                  </a>
                </li>
              </xsl:if>
            </xsl:for-each>
          </ul>
        </xsl:for-each>
        <hr></hr>
        <p></p>
        <h2>Ratta mudelid:</h2>
        <xsl:for-each select="Jalgrattad/Jalgratas">
          <div>
            <xsl:attribute name="id">
              <xsl:value-of select="@id"/>
            </xsl:attribute>
            <h3>
              <xsl:value-of select="Mudel"/>
            </h3>
            <a href="#yles">Tagasi üles</a>
            <img width="200" height="150">
              <xsl:attribute name="src">
                <xsl:value-of select="PildiUrl"/>
              </xsl:attribute>
            </img>
            <table>
              <tr>
                <td>
                  <b>Tootja nimi</b>
                </td>
                <td>
                  <xsl:value-of select="Tootja/@nimi"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Suurus</b>
                </td>
                <td>
                  <xsl:value-of select="Suurus"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="Suurus/@yhik"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Värvus</b>
                </td>
                <td>
                  <ul>
                    <xsl:for-each select="Varvused/Varvus">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </xsl:for-each>
                  </ul>

                </td>
              </tr>
              <tr>
                <td>
                  <b>Käigud</b>
                </td>
                <td>
                  <xsl:value-of select="Kaigud/@arv"/>
                  <xsl:text> (</xsl:text>
                  <xsl:value-of select="Kaigud"/>
                  <xsl:text>)</xsl:text>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Kaal</b>
                </td>
                <td>
                  <xsl:value-of select="Kaal"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="Kaal/@yhik"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Piduritüüp</b>
                </td>
                <td>
                  <xsl:value-of select="Pidurityyp"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Seisukord</b>
                </td>
                <td>
                  <xsl:value-of select="Seisukord"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Hind</b>
                </td>
                <td>
                  <xsl:value-of select="Hind"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="Hind/@yhik"/>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Lisainfo</b>
                </td>
                <td>
                  <xsl:value-of select="Kirjeldus"/>
                </td>
              </tr>
            </table>
          </div>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

25.Mai Veebiteenus ja klientrakendused

Meie projektiks on rakendus „Küüt“, Eestis eraisikute vahelise transpordi pakkumiste kuulutamiseks. Meie rakenduses saab teha endale kasutaja, lisada kuulutusi ning kuulutustele vastata kommentaariga.

Kasutaja loomisel tuleb sisestada oma kasutajanimi, eesnimi, perekonnanimi, email ja parool. Telefoni number ei ole kohustuslik, kuid soovituslik. Sellisel juhul luuakse kasutajale konto automaatselt. Enda kasutajaga sisse logides näeb kasutaja enda kuulutusi ning saab neid muuta ja kustutada. Lisaks on link „Add a new advert“, millele vajutades tuleb kohe ette kuulutuse sisestamise aken.

Kuulutuse lisamine: Kuulutuse lisamisel saab valida, kas kuulutus on avalik või mitte ning kas ta on aktiivne või mitte. Kuulutusele tuleb sisestada, kust-kuhu toimub sõit, mis kuupäeval see aset võtab, mis kell alustatakse sõitu, kui palju on autos olevaid vabu kohti ning vaba koha hind. Kui lisatakse kuulutus, siis pöördutakse tagasi kasutaja enda kuulutuste juurde ning näeb seda kuulutust siis ka seal.

Projekti eesmärk on teha inimestele kergemaks auto transpordi jagamine omavahel. Aitame olla bussiliiklusest sõltumatu. Kuna portaalis facebook on olemas juba sellised jututeemad, siis meie mõte on teha sellele ligipääs mugavamaks.

Lae siit Web.API teenus koos vaadetega:

Web.API

Veebiteenus

Tegime Web.API'l põhineva veebiteenuse, milles on kogu informatsioon, mida meie rakenduses vaja läheb.

Klientrakendus

Tegime kaks klientrakendust: Web.API vaated, mis küsivad teenuse käest informatsiooni, kasutades httpClientit; WPF rakendus.

Web.API vaadetes saab kasutaja vaadata ilma sisse logimata üleval olevaid avalikustatud kuulutusi ja neid otsida alguslinna ja sihtkoha järgi. Kasutaja saab teha endale ka konto, millega on tal rakenduses rohkem võimalusi. Kui kasutaja on end sisse loginud, siis saab ta lisada ise kuulutusi, kustutada ja muuta neid, muuta oma andmeid kontol,(lisada kommentaare kuulutustele).

WPF rakenduse funktsioonid on samad, kuid seal on lisaks olemas ka Kalender. Kalender teeb kuulutuste vaatamise mugavamaks, sest saab kalendris lihtsalt vajutada kuupäevale, mille kuulutusi näha soovid. [1]

Logi

  • 05.03.2014 - Wiki lehe loomine
  • 05.03.2014 - XML fail, XML skeemifail, 1. XSL fail, pool 2. XSL failist
  • 14.03.2014 - XML failide retsensioonide valmimine
  • 25.05.2014 - Veebiteenuse ja klientrakenduste valmimine