Meeskond "C terav"

From ICO wiki
Revision as of 15:56, 14 May 2011 by Msarv (talk | contribs)
Jump to navigationJump to search

Liikmed

  • Madis Sarv
  • Siim Sarv
  • Jaanus Vallmann

Idee

Kohviku omanikud saavad lisada oma kohvikulue päeva menüüsi, mida saavad teised komenteerida. Kohviku kohta on ka asukoht ja ajakava millal see lahti on. Toite saavad lisada ainult regristreerinud kasutajad, kes on kohviku omanikud. Kohviku omanikud saavad ka muuta oma kohviku andmeid ja lahtioleku aegu ning lisada erandpäevi(kas on üldse kinni või on pikemalt lahti). Omanik lisab päevakohta menüü, kui see saab sel päeval otsa märgib, et on otsas. Menüüs saab ta lisada toidule nime, tüübi ja infot selle kohta ning täis- ja pooliku portsioni hinnad. Tavakasutajad saavad komenteerida toite (sisestades oma nime ja komentaari) ning neid hinnata. Hinnata saab aint komentaari lisades. Tavakasutaja ei pea sisselogima.

Ülesanded

  • Madis Sarv - xml,teenuse metoodid, klientrakendus
  • Siim Sarv - xml,teenuse metoodid, klientrakendus
  • Jaanus Vallmann - xml,teenuse turva ja logi

XML

<?xml version="1.0" encoding="utf-8"?>
<kohvikud>
  <kohvik>
    <nimi>Kohvik1</nimi>
    <aadress laius="59.395515" pikkus="24.664993">
      <riik>Eesti</riik>
      <maakond>Harjumaa</maakond>
      <linnVald>Tallinn</linnVald>
      <tanav>Raja</tanav>
      <majaNR>C4</majaNR>
      <indeks>12315</indeks>
    </aadress>
    <lahtiOlekuAjad>
      <aeg>
        <nadalaPaevad>
          <nadalaPaev>esmaspäev</nadalaPaev>
          <nadalaPaev>teisipäev</nadalaPaev>
          <nadalaPaev>kolmapäev</nadalaPaev>
          <nadalaPaev>neljapäev</nadalaPaev>
          <nadalaPaev>reede</nadalaPaev>
        </nadalaPaevad>
        <avamisAeg>
          <tund>09</tund>
          <minut>00</minut>
        </avamisAeg>
        <sulgemisAeg>
          <tund>16</tund>
          <minut>00</minut>
        </sulgemisAeg>
      </aeg>
    </lahtiOlekuAjad>
    <erandPaevad>
      <kuuPaev>
        <paev>1</paev>
        <kuu>1</kuu>
        <aasta>2011</aasta>
        <avamisAeg>
          <tund>09</tund>
          <minut>00</minut>
        </avamisAeg>
        <sulgemisAeg>
          <tund>16</tund>
          <minut>00</minut>
        </sulgemisAeg>
      </kuuPaev>
    </erandPaevad>
    <menyyd>
      <menyy>
        <kuuPaev>
          <paev>23</paev>
          <kuu>2</kuu>
          <aasta>2011</aasta>
        </kuuPaev>
        <toidud>
          <toit>
            <nimi>Seljanka</nimi>
            <liik>Supp</liik>
            <info>Supp on kausis</info>
            <hinnad>
              <tais>1.80</tais>
              <poolik>1</poolik>
            </hinnad>
            <kommentaarid>
              <kommentaar>
                <nimi>Teet</nimi>
                <text>Jõhker oli</text>
                <hinnang>8</hinnang>
              </kommentaar>
            </kommentaarid>
            <otsas>1</otsas>
          </toit>
          <toit>
            <nimi>Pozarski kotlett</nimi>
            <liik>Praad</liik>
            <info>kotlett ja keedukartulid</info>
            <hinnad>
              <tais>2.5</tais>
              <poolik>2</poolik>
            </hinnad>
            <kommentaarid>
              <kommentaar>
                <nimi>Aivar</nimi>
                <text>Külmaks oli läinud</text>
                <hinnang>2</hinnang>
              </kommentaar>
            </kommentaarid>
            <otsas>0</otsas>
          </toit>
          <lisad>
            <lisa>
              <nimi>Praekartul</nimi>
              <otsas>0</otsas>
            </lisa>
            <lisa>
              <nimi>Riis</nimi>
              <otsas>0</otsas>
            </lisa>
            <lisa>
              <nimi>Ahjukartul</nimi>
              <otsas>0</otsas>
            </lisa>
          </lisad>
        </toidud>
      </menyy>
    </menyyd>
  </kohvik>
</kohvikud>

XML Schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="kohvikud">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="kohvik">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nimi" type="xs:string" />
              <xs:element name="aadress">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="riik" type="xs:string" />
                    <xs:element name="maakond" type="xs:string" />
                    <xs:element name="linnVald" type="xs:string" />
                    <xs:element name="tanav" type="xs:string" />
                    <xs:element name="majaNR" type="xs:string" />
                    <xs:element name="indeks" type="xs:integer" />
                  </xs:sequence>
                  <xs:attribute name="laius" type="xs:decimal" use="required" />
                  <xs:attribute name="pikkus" type="xs:decimal" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="lahtiOlekuAjad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="aeg">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nadalaPaevad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="nadalaPaev" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="avamisAeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:integer" />
                                <xs:element name="minut" type="xs:integer" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="sulgemisAeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:integer" />
                                <xs:element name="minut" type="xs:integer" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="erandPaevad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="kuuPaev">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="paev" type="xs:integer" />
                          <xs:element name="kuu" type="xs:integer" />
                          <xs:element name="aasta" type="xs:integer" />
                          <xs:element name="avamisAeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:integer" />
                                <xs:element name="minut" type="xs:integer" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="sulgemisAeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:integer" />
                                <xs:element name="minut" type="xs:integer" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="menyyd">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="menyy">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="kuuPaev">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="paev" type="xs:integer" />
                                <xs:element name="kuu" type="xs:integer" />
                                <xs:element name="aasta" type="xs:integer" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="toidud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="toit">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="nimi" type="xs:string" />
                                      <xs:element name="liik" type="xs:string" />
                                      <xs:element name="info" type="xs:string" />
                                      <xs:element name="hinnad">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="tais" type="xs:decimal" />
                                            <xs:element name="poolik" type="xs:decimal" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="kommentaarid">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="kommentaar">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="nimi" type="xs:string" />
                                                  <xs:element name="text" type="xs:string" />
                                                  <xs:element name="hinnang" type="xs:integer" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="otsas" type="xs:boolean" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="lisad">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element maxOccurs="unbounded" name="lisa">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="nimi" type="xs:string" />
                                            <xs:element name="otsas" type="xs:boolean" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
    <body>
    <h2>Kohvikud</h2>
    <table border="1">
      <tr bgcolor="#FFFF00">
        <th>Kohvik</th>
        <th>Aadress</th>
        <th>Lahtiolekuajad</th>
        <th>Erandpäevad</th>        
      </tr>
      <xsl:for-each select="kohvikud/kohvik">
        <tr>
          <td>
            <xsl:value-of select="nimi"/>
          </td>
          <td>
            <xsl:value-of select="aadress"/>
          </td>
          <td>
            <xsl:value-of select="lahtiOlekuAjad"/>
          </td>
          <td>
            <xsl:value-of select="erandPaevad"/>
          </td>                
        </tr>
      </xsl:for-each>
    </table>
    <h2>Menüü</h2>
      <table border="1">
        <tr bgcolor="#FFFF00">
          <th>Toit</th>
          <th>Liik</th>
          <th>Info</th>                
          <th>Hind</th>
          <th>Kommentaar</th>          
          <th>Otsas</th>
        </tr>        
        <xsl:for-each select="kohvikud/kohvik/menyyd/menyy/toidud/toit">
          <tr>
            <td>
              <xsl:value-of select="nimi"/>
            </td>
            <td>
              <xsl:value-of select="liik"/>
            </td>
            <td>
              <xsl:value-of select="info"/>
            </td>                         
            <td>
              <xsl:for-each select="hinnad">
              <table>
                <tr>
                  Täis: <xsl:value-of select="tais"/>
                  <tr />
                  Poolik: <xsl:value-of select="poolik"/>
                </tr>                 
              </table>
              </xsl:for-each>
            </td>
            <td>
              <xsl:for-each select="kommentaarid/kommentaar">
                <table>
                  <tr>
                    <td>
                      <xsl:value-of select="text"/> (<xsl:value-of select="nimi"/>) Hinnang: <xsl:value-of select="hinnang"/>
                    </td>
                  </tr>
                </table>                
              </xsl:for-each>
            </td>
            <td>              
              <xsl:value-of select="otsas"/>                    
            </td>
          </tr>
        </xsl:for-each>
      </table>
      <h3>Lisad</h3>
      <table border="1">
        <tr bgcolor="#FFFF00">
          <th>Liasd</th>
          <th>Otsas</th>
        </tr>
        <xsl:for-each select="kohvikud/kohvik/menyyd/menyy/toidud/lisad/lisa">
          <tr>
            <td>
              <xsl:value-of select="nimi"/>
            </td>
            <td>
              <xsl:value-of select="otsas"/>
            </td>
          </tr>
        </xsl:for-each>
      </table>
    </body>
    </html>  
  </xsl:template>
</xsl:stylesheet>

Veebiteenus

Klassijaotus

  • KasutajaKirjeClass - Sisaldab kasutajaga seotuid meetodeid näiteks Kasutaj kohta info saamine.
  • KohvikKirjeClass - Sisaldab kohvikuga seaotud meedodeid näiteks kohvikute kuvamine ja nende kohta käiva info muutmine.
  • KomentaarKirjeClass - Sisaldab meedodeid komenataaride vaatamiseks ja lisamiseks.
  • LahtiKirjeClass - Sisaldab meedodeid kohviku lahit oleku eagade kohta.
  • MenyyKirjeClass - Sisaldab infot kohviku menüüde lisamise muutmise kohta.
  • ToiduKirjeClass - Sisadab infot toidude kuvamise liisamise ja muutmise kohta.

Meedodite kirjeldused

  • AnnaMenyy() - Tagastab menüü vastavalt saadud menyyID-le.
  • AnnaMenyyKirje() - Tagasatb menüü kireje sisu vastavalt menyyKirjeID-le .
  • AnnaKoikMenyyd() - Tagastab kõik menüüd, mis ühel kohvikul võivad olla vastavlt kohvikID-le.
  • lisaMenyy() - Lisab uue menüü kohvikule vastavalt kohvikID-le.
  • lisaMenyyKirje() - Lisab uue menüü kirje vastavalt menyyID-le.
  • updateMenyy() - Uuendab menüüd vastavalt menyyKirjeID-le.
  • updateMenyyKirje() - Uuendab menüükirjet vastavalt menyyKirjeID-le.
  • delMenyy() - Kustaub menüü vastavalt menyyKirjeID-le.
  • delMenyyKirje() - Kustaub menüükirje vastavalt menyyKirjeID-le.
  • addtUpMenyyKirje() - Lissab hääle toidule menüükirjes vastavalt menyyKirjeID-le.
  • addtDownMenyyKirje() - Lissab negatiivsehääle toidule menüükirjes vastavalt menyyKirjeID-le.
  • AnnaKohvikud() - Tagastab kõik olemas olevad kohvikud.
  • AnnaKohvik() - Tagastab info kohviku kohta vastavlt kohvikID-le.
  • addKohvik() - Lisab uue kohviku andmebaasi.
  • delKohvik() - Eemaldab kohviku vastavlt kohvikID-le.
  • upKohvik() - Uuendab kohviku infot vastaval kohvikID-le.
  • annaKohvikuToidud() - Tagasdab kohvikus pakutavad toidud vastavalt saadud kohvikID-le.
  • annaToidud() - Annab kõikides kohvikutes olemasolevad toidud.
  • annaToiduTyyp() - Tagastab toidu tüüpi nime vastavalt tyypID-le.
  • annaToiduTyybid() - Tagastab kõik olemasolead erinevad toitude tüübid.
  • annaLisandid() - Tagastab kõik olemasolevad lisandid.
  • addToit() - Lisab uue toidu andmebaasi vajab toitTyypID ja toitKohvikID.
  • upToit() - Värskendab toidu infot andmebaasis vastavalt toitID-le ja toitTyypID-le.
  • delToit() - Kustutab toidu vastavalt toitID-le.
  • annaKasutajad() - Tagasdab kõik andmebaasis olemas olevad kasutajad.
  • annaKasutaja() - Tagastab kasutaj kohta nime ja kas kasutaja on aktiivne vastavalt saadud KasutajaID-le.
  • upKasutaja() - Uuendab kasutaja infot KasutajaID-le.
  • delKasutaja() - Muudab kasuta mitteaktiivseks KasutajaID-le.
  • addKasutaja() - Lisab uue kasutaja kasutajate tabelisse vaja ette anda kasutaja yunnus ja salasõna.
  • AddKohvikuKasutaja() - Seob kasutaja kindla kohvikuga vastavalt kohvikID ja kasutajaID.
  • delKohvikuKasutaja() - Kustutab kohviku kasutaja kohvikuKasutaja tabelis vastavalt kasutajaID-le.
  • annaKohvikuKasutajad() - Tagastab kohviu kasutajaid ja kohvkuid kkohvikID järgi.
  • checkKasutaja() - Kontrollib kas kasutaja sisestatud nimi ja parool on õiged.
  • addtUpKommentaar() - Annab poolthääle komentaarile vastavalt kommentaarID-le.
  • addtDownKommentaar() - Annab vastu hääle komentaaridele vastavalt kommentaarID-le.
  • addKommentaar() - Lisab uue komentaari komentaaride tabelisse vaja ette anda MenyyKirje_ID.
  • annaKommentaarid() - Annab komentaarid vastavlt menyyKirjeID-le.
  • annaKohvikuLahtiOlek() - Tagastab info kohviku lahtioleku aegade kohta, vastavlt kohvikuID-le.
  • addLahtiOlek() - Lisab kohvikule uue lahtioleku aja. Kasutades selleks kohvikuID.
  • delLahti() - Kustudab lahtioleku aja, vastavalt lahtiID-le.
  • updLahti() - Muudab lohtioleku aega, vastavalt lahtiID-le.

Andmebaas:

Koodinäited

Link kogu teenuse osa jaoks koos kõigi classidega asub siin

KlientRakendus