Meeskond:Error405: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Psoon (talk | contribs)
Psoon (talk | contribs)
 
(3 intermediate revisions by the same user not shown)
Line 215: Line 215:
===Kirjeldus===
===Kirjeldus===


Loodava teenuse eesmärgiks on anda nõutule inimesele hea söögiidee. Nimelt seisneb teenus selles, et kasutaja saab endale konto luua, kus ta saab ära määrata, millised on tema söögieelistused. Teenuses on eelnevalt olemas administraatorite poolt lisatud toidu retseptid (kusjuures oluline on, et eine peab olema võrdlemisi lihtsalt valmistatav). Teenus võimaldab ühe nupu vajutusega kuvada ette üks suvaline retsept, pakkudes teenuse kasutajale välja eine idee.
Loodav veebiteenus on andmebaas, millest on erinevate funktsioonide abil võimalik kätte saada toiduretsepte (sisuliselt kokaraamat). Veebiteenuse kõige tõenäolisemateks kasutajateks on igasugused kokanduslikud veebilehed, kuid näiteks ka online toidupoed. Ühesõnaga kõik rakendused, mis vajavad söögiretsepte. Teenus peaks olema väga paindlik ning võimaldama retseptide otsimist igal võimalikul moel, alustades täiesti suvalise retseptiga ning lõpetades väga spetsiifilisi toiduaineid sisaldavate retseptidega.


===Kasutaja===
===Kasutaja===
Line 224: Line 224:
   
   
1) RandomRecipe - tagastatakse suvaline söögiretsept<br>
1) RandomRecipe - tagastatakse suvaline söögiretsept<br>
2) LimitedRandomRecipe - tagastatakse suvaline söögiretsept, millele tuleb kaasa anda massiiv nendest toiduainetest, mida retsept sisaldada ei tohi<br>
2) RandomRecipeCat - tagastatakse suvaline söögiretsept etteantud kategooriast<br>
3) SpecificRecipe - tagastatakse retsept, milles kasutatakse etteantud toiduaineid<br>
3) LimitedRandomRecipe - tagastatakse suvaline söögiretsept, millele tuleb kaasa anda massiiv nendest toiduainetest, mida retsept sisaldada ei tohi<br>
4) Eelnevad funktsioonid mitmuses(tagastatakse etteantud arv retsepte)
4) LimitedRandomRecipeCat - nagu eelmine, kuid ka kategooria tuleb ette anda<br>
5) SpecificRecipe - tagastatakse retsept, milles kasutatakse etteantud toiduaineid<br>
6) SpecificRecipeCat - nagu eelmine, kuid ka kategooria tuleb ette anda<br>
7) Eelnevad funktsioonid mitmuses(tagastatakse etteantud arv retsepte)


===Administraator===
===Administraator===
Line 234: Line 237:
===Must Have===
===Must Have===


* Eelpool kirjeldatud funktsioonid
* Võimalus kasutajaid luua
* Võimalus kasutajaid luua
* Võimalus määrata eelistusi
* Administraatori võimalus kasutajaid hallata, sealjuures määrata veebiteenuse kasutuslimiite
* Võimalus kuvada suvalist retsepti kas kategooria põhjal või kõigist retseptidest
* Administraatori võimalus kasutajaid hallata
* Administraatoril võimalik retsepte lisada
* Administraatoril võimalik retsepte lisada
* Retseptid on kategooriatesse jaotatud
* Retseptid on kategooriatesse jaotatud
Line 243: Line 245:
===Nice to Have===
===Nice to Have===


* Automaatse ostunimekirja loomine retsepti valimisel
* Ülisuur andmebaas toiduretseptidest
* Ostukorvi nimekirja muutmine
* Teenuse seostamine nt Prisma Marketi e-poega (automaatne ostukorvi täitmine)


==Veebiteenus==
==Veebiteenus==

Latest revision as of 22:07, 4 April 2015

Liikmed

  • Priidik Soon
  • Mihkel Kivisild
  • Andre Kaur

VR2 Projekt

Etapp 1(XML failid)

XML fail

<?xml version="1.0" encoding="UTF-8"?>
<raamatukogud>
	<raamatukogu ID="1" nimi="TTÜ" linn="Tallinn" aadress="Akadeemia tee 1">
		<sektsioon ID="1" nimi="Matemaatika">
			<autor eesnimi="Peeter" perenimi="Puusemp">
				<teos>
					<pealkiri>Lineaaralgebra õpik</pealkiri>
					<aasta>2008</aasta>
				</teos>
				<teos>
					<pealkiri>Üldalgebra alused : õpik kõrgkoolidele</pealkiri>
					<aasta>2012</aasta>
				</teos>
			</autor>
			<autor eesnimi="Paolo" perenimi="Aluffi">
				<teos>
					<pealkiri>Algebra</pealkiri>
					<aasta>2009</aasta>
				</teos>
			</autor>
		</sektsioon>
		<sektsioon ID="2" nimi="Informaatika">
			<autor eesnimi="Peeter" perenimi="Lorents">
				<teos>
					<pealkiri>Informaatika teoreetilised alused: struktuurne aspekt</pealkiri>
					<aasta>2001</aasta>
				</teos>
				<teos>
					<pealkiri>Süsteemide maailm</pealkiri>
					<aasta>2006</aasta>
				</teos>
			</autor>
			<autor eesnimi="Jüri" perenimi="Kiho">
				<teos>
					<pealkiri>Algoritmid ja andmestruktuurid</pealkiri>
					<aasta>1997</aasta>
				</teos>
			</autor>
		</sektsioon>
	</raamatukogu>
	<raamatukogu ID="2" nimi="Keskraamatukogu" linn="Tallinn" aadress="Estonia pst 8">
		<sektsioon ID="1" nimi="Filosoofia">
			<autor eesnimi="Immanuel" perenimi="Kant">
				<teos>
					<pealkiri>Puhta mõistuse kriitika</pealkiri>
					<aasta>1781</aasta>
				</teos>
			</autor>
			<autor eesnimi="Werner" perenimi="Heisenberg">
				<teos>
					<pealkiri>Füüsika ja filosoofia</pealkiri>
					<aasta>2013</aasta>
				</teos>
			</autor>
		</sektsioon>
		<sektsioon ID="2" nimi="Ilukirjandus">
			<autor eesnimi="Friedebert" perenimi="Tuglas">
				<teos>
					<pealkiri>Väike Illimar</pealkiri>
					<aasta>1937</aasta>
				</teos>
				<teos>
					<pealkiri>Felix Ormusson</pealkiri>
					<aasta>1915</aasta>
				</teos>
			</autor>
			<autor eesnimi="Anton Hansen" perenimi="Tammsaare">
				<teos>
					<pealkiri>Kõrboja Peremees</pealkiri>
					<aasta>1922</aasta>
				</teos>
			</autor>
		</sektsioon>
	</raamatukogu>
</raamatukogud>

XSD fail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="raamatukogud">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="raamatukogu">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="sektsioon">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="autor">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="teos">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="pealkiri" type="xs:string" />
                                <xs:element name="aasta" type="xs:unsignedShort" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="eesnimi" type="xs:string" use="required" />
                        <xs:attribute name="perenimi" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="ID" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="nimi" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="ID" type="xs:unsignedInt" use="required" />
            <xs:attribute name="nimi" type="xs:string" use="required" />
            <xs:attribute name="linn" type="xs:string" use="required" />
            <xs:attribute name="aadress" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT fail HTML-i transformeerimiseks

<?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>Raamatukogud</title>
      </head>
      <body>
        <!--pealkiri millel on css stiili lisatud-->
        <div id="Pealkiri" style="background-color:DarkGray; padding:10px;">
          <h1>Raamatukogud</h1>
        </div>
        <!--xml failist loetud elemendid ja attribuudid koos css stiiliga-->
        <div id="RaamatukoguElementLehel" style="background-color:whitesmoke; padding:10px;">
          <xsl:for-each select="raamatukogud/raamatukogu">
            <h1>
              <!--väljastab raamatukogu nime väärtuse-->
              <xsl:value-of select="@nimi"/>
            </h1>
            <ol>
              <xsl:for-each select="sektsioon">
                <li>
                  <!--väljastab sektsiooni nime-->
                  <xsl:value-of select="@nimi"/>
                </li>
                <ol>
                  <xsl:for-each select="autor">
                    <li>
                      <!--Väljastame autori eesnime ja perekonnanime-->
                      <xsl:value-of select="@eesnimi"/>&#160;<!--tühik-->
                      <xsl:value-of select="@perenimi"/>
                    </li>
                    <ul>
                      <xsl:for-each select="teos">
                        <li>
                          <!--Väljastab teose pealkirja ja väljalaske aasta-->
                          <xsl:value-of select="pealkiri"/>&#160;(<xsl:value-of select="aasta"/>)
                        </li>
                      </xsl:for-each>
                    </ul>
                  </xsl:for-each>
                </ol>
              </xsl:for-each>
            </ol>
          </xsl:for-each>
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT fail XML-i formaadi muutmiseks

<?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="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>

  <xsl:template match="raamatukogud/raamatukogu/@*">
    <xsl:element name="{name()}">
      <xsl:value-of select="."/>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

Veebiteenuse analüüs

Kirjeldus

Loodav veebiteenus on andmebaas, millest on erinevate funktsioonide abil võimalik kätte saada toiduretsepte (sisuliselt kokaraamat). Veebiteenuse kõige tõenäolisemateks kasutajateks on igasugused kokanduslikud veebilehed, kuid näiteks ka online toidupoed. Ühesõnaga kõik rakendused, mis vajavad söögiretsepte. Teenus peaks olema väga paindlik ning võimaldama retseptide otsimist igal võimalikul moel, alustades täiesti suvalise retseptiga ning lõpetades väga spetsiifilisi toiduaineid sisaldavate retseptidega.

Kasutaja

Kasutaja on veebiteenuse kasutaja, kes saab endale registreerida konto. Kasutaja jaoks on veebiteenuses loodud funktsioonid, mida ta saab oma klientrakenduses välja kutsuda. Veebirakendus peab logi selle kohta kui palju mingi kasutaja on veebirakendust kasutanud. Et üks kasutaja ei saaks veebirakendust liialt koormata, piirame päringute arvu kasutaja kohta.

Funktsioonid

1) RandomRecipe - tagastatakse suvaline söögiretsept
2) RandomRecipeCat - tagastatakse suvaline söögiretsept etteantud kategooriast
3) LimitedRandomRecipe - tagastatakse suvaline söögiretsept, millele tuleb kaasa anda massiiv nendest toiduainetest, mida retsept sisaldada ei tohi
4) LimitedRandomRecipeCat - nagu eelmine, kuid ka kategooria tuleb ette anda
5) SpecificRecipe - tagastatakse retsept, milles kasutatakse etteantud toiduaineid
6) SpecificRecipeCat - nagu eelmine, kuid ka kategooria tuleb ette anda
7) Eelnevad funktsioonid mitmuses(tagastatakse etteantud arv retsepte)

Administraator

Administraator on veebiteenuse administraator. Tema saab lisada andmebaasi retsepte ja neid muuta ja ka kasutajaid kustutada vajadusel.

Must Have

  • Eelpool kirjeldatud funktsioonid
  • Võimalus kasutajaid luua
  • Administraatori võimalus kasutajaid hallata, sealjuures määrata veebiteenuse kasutuslimiite
  • Administraatoril võimalik retsepte lisada
  • Retseptid on kategooriatesse jaotatud

Nice to Have

  • Ülisuur andmebaas toiduretseptidest

Veebiteenus

arendamisel

Etapp 3(Klientrakendused)

Work in Progress