Difference between revisions of "VVA"

From EIK wiki
Line 562: Line 562:
  
 
Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Arusaamatuks jäi see, et antud süsteem peaks asju ikkagi müüma. Saadud raha pärast annetatakse heategevusele, kuid "annetamis" hinda toodete juures ei ole, ehk siis võttes vastu näiteks külmiku inimene võib annetada ainult 1 euro senti. Peaks vist mingi algeline hind ikkagi olema, millest võiks annetamise summa algata. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!
 
Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Arusaamatuks jäi see, et antud süsteem peaks asju ikkagi müüma. Saadud raha pärast annetatakse heategevusele, kuid "annetamis" hinda toodete juures ei ole, ehk siis võttes vastu näiteks külmiku inimene võib annetada ainult 1 euro senti. Peaks vist mingi algeline hind ikkagi olema, millest võiks annetamise summa algata. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!
 +
 +
== Retsensioon meeskonna SHOP veebi- ja kliendirakendusele  ==
 +
 +
Meeskond SHOP on teinud oma veebiteenusele väga hea analüüsi, kust on juba näha, et andmebaas eeldusena on olemas ning olemeid on seal kohe kindlasti üle kuue. Analüüsis on välja toodud nii "must have" kui ka "nice to have" asjad, mida loodud teenus peab võimaldama. See aitab mõista, millega on täpsemalt tegu. Lahendus on täitnud kõik nõutud punktid, välja arvatud kaks: Kasutaja saab tagasiside, kui tal on ost sooritatud, Administraator saab kustutada ära kasutajaid. Funktsionaalsusest, mis võiks olla loodud tehtud ainult üks punkt. Lahendus ise on kenasti ära jaotatud erinevateks projektideks, nagu:
 +
 +
*BLL - mille näol on tegu äriloogika kihiga
 +
*DAL - andmebaasiga suhtlemiseks
 +
*Domain - erinevate mudelite jaoks
 +
*Identity - identiteedi loogika
 +
*WebApp - loodud ASP.NET Web API tehnoloogia põhjal
 +
 +
Väga meeldis, et <b>veebirakendus</b> on juba serveris, probleemi sisse logimisega ei olnud. Kõik funktsionaalsus, mis on rakenduses olemas töötab korrektselt, eriti meeldis, et on keele valiku võimalus. Samuti meeldis lehe user-friendly disain, kõik on hästi arusaadav ja nähtav. Ainuke probleem on mobiilse versiooni menüü hover'id, mis voolavad kokku taustaga.
 +
 +
Meeskonna SHOP <b>kliendirakendus</b> on tehtud WPF alusel. Probleemi sisse logimisega ei olnud. Kliendirakendusel on sama funktsionaalsus, mis on veebirakenduses. Ainsaks probleemiks oli see, et kui tahad uue akna kinni panna see ei sulge, vaid liigub hiire järgi.
 +
 +
  
  

Revision as of 10:47, 4 June 2016

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

Meeskond

  • Aleksandr Babõkin
  • Vladislav Kovaltšuk
  • Andrei Tverskoi
  • Vladislav Lahtarin

XML/XSD/XSLT

XML

<?xml version="1.0" encoding="utf-8" ?>
<arvutid>
  <arvuti tootekood="AA958345">
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[Apple]]></firma>
      <tyyp><![CDATA[MacBook Pro]]></tyyp>
      <hind><![CDATA[2500]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i7]]></mudel>
        <sagedus><![CDATA[2.5 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[AMD]]></tootja>
        <mudel><![CDATA[Radeon R9 M370X]]></mudel>
        <malu><![CDATA[2 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[16 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[512 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti tootekood="AA956189">
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[HP]]></firma>
      <tyyp><![CDATA[Office]]></tyyp>
      <hind><![CDATA[350]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[Core™ i3-4170]]></mudel>
        <sagedus><![CDATA[3.70 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[HD Graphics 4400]]></mudel>
        <malu><![CDATA[1.8 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[120 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti tootekood="AA237910">
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[Acer]]></firma>
      <tyyp><![CDATA[Gamer Plus]]></tyyp>
      <hind><![CDATA[1350]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i5-6600K]]></mudel>
        <sagedus><![CDATA[3.90 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[MSI]]></tootja>
        <mudel><![CDATA[Geforce GTX 960]]></mudel>
        <malu><![CDATA[4 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Kingstone]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[16 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Seagate]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[1 TB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti tootekood="AA394633">
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[Dell]]></firma>
      <tyyp><![CDATA[Gamer lite]]></tyyp>
      <hind><![CDATA[1000]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i3-4170]]></mudel>
        <sagedus><![CDATA[3.70 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Nvidia]]></tootja>
        <mudel><![CDATA[Geforce GT730]]></mudel>
        <malu><![CDATA[2 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Seagate]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[500 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti tootekood="AA225947">
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[MSI]]></firma>
      <tyyp><![CDATA[Gaming laptop]]></tyyp>
      <hind><![CDATA[3000]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i7-6820HK]]></mudel>
        <sagedus><![CDATA[2.7 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Nvidia]]></tootja>
        <mudel><![CDATA[Geforce GTX970M]]></mudel>
        <malu><![CDATA[6 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[8 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[256 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti tootekood="AA659835">
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[Toshiba]]></firma>
      <tyyp><![CDATA[Work laptop]]></tyyp>
      <hind><![CDATA[600]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i3-4030U]]></mudel>
        <sagedus><![CDATA[1.9 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[HD Graphics 4400]]></mudel>
        <malu><![CDATA[1 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[256 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
</arvutid>

XSD

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="arvutid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="arvuti">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="liik">
                <xs:complexType mixed="true">
                  <xs:sequence>
                    <xs:element name="firma" type="xs:string" />
                    <xs:element name="tyyp" type="xs:string" />
                    <xs:element name="hind" type="xs:integer" />
                    <xs:element name="valuuta" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="konfiguratsioon">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="protsessor">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="sagedus" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="videokaart">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="operatiivmalu">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="tyyp" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="pysimalu">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="tyyp" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </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 Kuvab kõik arvutid ja nende komponendide kirjeldust

<?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>Arvutid</title>
      </head>
      <body>
        <xsl:for-each select="arvutid/arvuti">
          <h2>
            <xsl:value-of select="firma" />
            <xsl:value-of select="liik" />
            <xsl:value-of select="tyyp"/>
            <xsl:value-of select="hind"/>
            <xsl:value-of select="valuuta"/>
          </h2>
          <xsl:for-each select="konfiguratsioon/protsessor">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/videokaart">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/operatiivmalu">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/pysimalu">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT Kuvab arvutite nimetust, mudelit ja hinda. Hind on sorteeritud kasvamise järjekorras

<?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>Hinna järgi</title>
      </head>
      <body>
        <table border="2">
          <tr>
            <th>Firma</th>
            <th>Mudel</th>
            <th>Hind</th>
          </tr>
          <xsl:for-each select="arvutid/arvuti/liik">
            <xsl:sort select="hind" data-type="number"></xsl:sort>
            <tr>
              <td>
                <xsl:value-of select="firma"/>
              </td>
              <td>
                <xsl:value-of select="tyyp"/>
              </td>
              <td>
                <xsl:value-of select="hind"/>
                <xsl:text> </xsl:text>
                <xsl:value-of select="valuuta"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>


Veebiteenuse analüüs - Toidu tellimuse teenus

Tehnoloogiad mida hakkame projektis kasutama:

  • ASP.NET Web Application: Web API + MVC
  • Class Library

Paketid:

  • Ninject
  • Ninject.Web.Common
  • Ninject.MVC3
  • Moq
  • Microsoft.Aspnet.Mvc
  • EntityFramework

Oodatav funktsionaalsus:

  • Kauba pakkumine
  • Kasutajate tuvastamine ning haldamine
  • Vähemalt 2 andmebaasi: kauba jaoks ja kasutajate jaoks
  • Võimalikult lihtne ja arusaadav disain
  • Mitme kasutaja toetamise võimalus

Must have:

Kasutajana tahan, et mul oleks võimalus:

  • Näha kogu kauba loetelu
  • Kauba sorteerimiseks kategooriate järgi
  • Näha kauba kirjeldust (nimetus, hind ja lühikirjeldus)
  • Kasutada ostukorvi
  • Lisada kaup ostukorvi
  • Kustutada kaup ostukorvist
  • Ostukorvis näha kauba kogusummat
  • Kauba tellimusel täita vormi (aadress, nimi jne)
  • Registreerida kasutajaks ja sisselogida

Administraatorina tahan, et oleks võimalus:

  • Lisada andmebaasi uued kaubad ning kustutada vanad vajaduse korral
  • Redigeerida kaupa (muuta nimetust, lühikirjeldust jne)
  • Näha e-kirjana vormi, mida täitis ostja kauba tellimisel
  • Saada ligipääsu administraatori paneelile oma kasutaja nimega ja parooliga

Nice to have:

  • Responsive design
  • Projekti tegemisel võivad lisanduda võimalused ja funktsionaalsus


Veebiteenuse kirjeldus

Allalaadida saab siit:Link

Tavakasutaja:
Teenuse kasutamiseks on vaja registreerida. Pärast seda saab siseneda ja kasutada teenust.
Esilehel on olemas külgmenüü – sellega saab filtreerida tooteid vastavalt sellele, mida kasutaja tahab tellida.
Esilehe keskosas on olemas loetelu toodetest, mida teenus pakkub. Toodetel on olemas nimetus, lühikirjeldus ja hind. Tooteid saab lisada ostukorvi vajutades nupule „Lisa“.
Esilehe ülemises osas on olemas lühikokkuvõte ostukorvist – toodete kogus ja kogusumma. Samas saab vajutades nuppu “Telli” minna ostukorvi peamise vaadele, kus on olemas info toodetest: kogus, nimetus, hind ja kogusumma.
Ostukorvi vaadest saab minna tagasi esilehele „Jätka ostmist“ nupule vajutades või nupu „Tellin“ abil minna tellimuse vormi täitmisele. Vormi peal küsitakse tellija nimi, aadress, kuhu toodeid tuua ning linn.
Peale seda genereerub e-kiri sisuga .eml formaadis, mis salvestatakse failina arvutisse. Selleks, et seda saada lugeda on vaja kasutada https://www.base64decode.org/ teenust. >
Selleks, et valida asukoht, kuhu .eml dokument tekkib on vaja minna projekti sees: FoodStore.Domain -> Concrete->EmailProcessor ja sisestada asukoht sellese muutujasse: public string FileLocation = @"home:\";

Administraator:
Administraatori paneeli ligipääsu saamiseks tuleb minna /AdminLogin/AdminLogin aadressile. Sisestada kasutajatunnus ja parool (admin@foodstore.com _Admin12). Pärast seda avaneb adminstraatori paneel.
Selle vaades on loetelu toodetest, toode juures on nupp „Kustuta“, mis kustutab toodet. Toode peale klikkides avaneb toode redigeerimise vaade, mis on tehtud nagu vorm. Samuti võib toodet lisada, selleks administraatori paneeli alumises osas on olemas nupp „Lisa toode“, mis avaneb toode lisamise vaadet.
Vajalik info toode lisamisel on: nimetus, lühikirjeldus, kategooria, hind(ei anna sisestada komadega arvu), võib ka pildi lisada.
Vormi lõppus saab muudatusi salvestada vajutades „Salvesta“ või lahkuda redigeerimise vaadest „Kustuta muudatused“ abil.

Projekti lühistruktuur:
FoodStore.Domain – Class Library – sisaldab olemeid ja loogikat, on loodud Entity Framework abil.
FoodStore.WebUI - ASP.NET MVC 5 – sisaldab kontrollereid ja vaateid. Esineb kasutajaliidesena.
Süsteemil on olemas 2 andmebaasit
• Toodete jaoks(EFDbcontext)
• Kasutajate jaoks(Default connection)
Veebi teenus kasutab standartseid(juba olemasolevaid) stiile: bootstrap.css, bootstrap.min.css, ErrorStyles.css, Site.css. Kuid oleme natuke muutunud seda disaini ning meie muudatused on kirjeldatud Custom.css
Kontrollerid asuvad kaustas Controllers.
Vaaded asuvad kaustas Views.
Veebiteenuse vaade muutub vastavalt ekraani suurusele(responsive design)

Lisa
Installitud paketid:
FoodStore.WebUI:

 <package id="Antlr" version="3.4.1.9004" targetFramework="net452" />
 <package id="bootstrap" version="3.0.0" targetFramework="net452" />
 <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
 <package id="jQuery" version="1.10.2" targetFramework="net452" />
 <package id="jQuery.Validation" version="1.11.1" targetFramework="net452" />
 <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
 <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" />
 <package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
 <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
 <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" />
 <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.0.0" targetFramework="net452" />
 <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" />
 <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.Facebook" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.MicrosoftAccount" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Owin.Security.Twitter" version="3.0.1" targetFramework="net452" />
 <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
 <package id="Modernizr" version="2.6.2" targetFramework="net452" />
 <package id="Moq" version="4.1.1309.1617" targetFramework="net452" />
 <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" />
 <package id="Ninject" version="3.0.1.10" targetFramework="net452" />
 <package id="Ninject.MVC3" version="3.0.0.6" targetFramework="net452" />
 <package id="Ninject.Web.Common" version="3.0.0.7" targetFramework="net452" />
 <package id="Owin" version="1.0" targetFramework="net452" />
 <package id="Respond" version="1.2.0" targetFramework="net452" />
 <package id="WebActivator" version="1.5" targetFramework="net452" />
 <package id="WebGrease" version="1.5.2" targetFramework="net452" />

FoodStore.Domain :

 <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
 <package id="Microsoft.AspNet.Mvc" version="5.0.0" targetFramework="net452" />
 <package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net452" />
 <package id="Microsoft.AspNet.WebPages" version="3.0.0" targetFramework="net452" />
 <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />

Klientrakenduse kirjeldus

Klientrakendus [WPF] - "YouTube - 50 latest most popular fresh videos".

Kirjeldus:
Antud rakendus kuvab viiskümmend viimast kõige värskemat ja populaarsemat videot YouTube'st.

Võimalused:
1) Näha listina viiskümmend viimast kõige värskemat ja populaarsemat videot YouTube'st.
2) Näha kanali nimetust, millelt on video postitatud. (channel)
3) Näha millal video on postitatud, kuupäev ja aeg. (published)
4) Näha palju on vaatamisi. (views)
5) Näha mitu meeldimist on videol. (likes)
6) Näha mitu mitte meeldimist on videol. (dislikes)
7) Näha mitu kommentaari on postitatud video all. (comments)
8) Näha video kirjeldust.
9) Näha video, mida kuvatakse "iframe" abil, kus on seatud kõik standartsed YouTube seaded:
* Play, pause nupp
* Heli tugevus
* Video nimetus
* Vaata hiljem
* Vaata veebilehel YouTube.com
* Täisekraan
* Kvaliteedi seaded
10) Kui meeldimised või kommentaarid videol on välja lülitatud, siis kasutajale kuvatakse:
* Likes are disabled.
* Dislikes are disabled.
* Comments are disabled.
11) Kasutajale pakutakse kolm nuppu:
* PREVIOUS - eelmine video.
* NEXT - järgmine video.
* REFRESH - värskendab videoid, nende statistilisi andmeid.

YouTube json lingid, kust võetakse andmed:
1) https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostpopular&key=AIzaSyAzZ0rqkWdi5kYdRZkDug_BzlBiBnJ5XJk&maxResults=50
2) https://www.googleapis.com/youtube/v3/videos?part=statistics&chart=mostpopular&key=AIzaSyAzZ0rqkWdi5kYdRZkDug_BzlBiBnJ5XJk&maxResults=50

Kokkuvõte:
Programm on täiesti valmis ja töötab korrektselt. Loodame, et Teile meeldib. Arvame, et rakendus võiks olla isegi kasutatav ka ärilistel eesmärkidel.

Link allalaadimiseks:
VVA KLIENTRAKENDUS - YouTube Project download source!

Lisad:
1) YouTube Data API
2) Võtme ja API registreerimine
3) Pilt:
VVAPilt.png


Retsensioon XML-failide kohta meeskonnale "Givela"

Meeskonna "Givela" XML failide sisu leiab siit!

Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Arusaamatuks jäi see, et antud süsteem peaks asju ikkagi müüma. Saadud raha pärast annetatakse heategevusele, kuid "annetamis" hinda toodete juures ei ole, ehk siis võttes vastu näiteks külmiku inimene võib annetada ainult 1 euro senti. Peaks vist mingi algeline hind ikkagi olema, millest võiks annetamise summa algata. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!

Retsensioon meeskonna SHOP veebi- ja kliendirakendusele

Meeskond SHOP on teinud oma veebiteenusele väga hea analüüsi, kust on juba näha, et andmebaas eeldusena on olemas ning olemeid on seal kohe kindlasti üle kuue. Analüüsis on välja toodud nii "must have" kui ka "nice to have" asjad, mida loodud teenus peab võimaldama. See aitab mõista, millega on täpsemalt tegu. Lahendus on täitnud kõik nõutud punktid, välja arvatud kaks: Kasutaja saab tagasiside, kui tal on ost sooritatud, Administraator saab kustutada ära kasutajaid. Funktsionaalsusest, mis võiks olla loodud tehtud ainult üks punkt. Lahendus ise on kenasti ära jaotatud erinevateks projektideks, nagu:

  • BLL - mille näol on tegu äriloogika kihiga
  • DAL - andmebaasiga suhtlemiseks
  • Domain - erinevate mudelite jaoks
  • Identity - identiteedi loogika
  • WebApp - loodud ASP.NET Web API tehnoloogia põhjal

Väga meeldis, et veebirakendus on juba serveris, probleemi sisse logimisega ei olnud. Kõik funktsionaalsus, mis on rakenduses olemas töötab korrektselt, eriti meeldis, et on keele valiku võimalus. Samuti meeldis lehe user-friendly disain, kõik on hästi arusaadav ja nähtav. Ainuke probleem on mobiilse versiooni menüü hover'id, mis voolavad kokku taustaga.

Meeskonna SHOP kliendirakendus on tehtud WPF alusel. Probleemi sisse logimisega ei olnud. Kliendirakendusel on sama funktsionaalsus, mis on veebirakenduses. Ainsaks probleemiks oli see, et kui tahad uue akna kinni panna see ei sulge, vaid liigub hiire järgi.



Arendusprotsess

  1. 16.03.16 - XML, XSD ja XSLT tegemine
  2. 18.03.16 - XML, XSD ja XSLT lisamine wiki'sse
  3. 26.03.16 - Retsensioon XML-failide kohta
  4. 17.04.16 - Veebiteenuse analüüsi lisamine
  5. 29.05.16 - Veebiteenuse kirjelduse ja allalaadimise lingi lisamine
  6. 29.05.16 - Klientrakenduse kirjelduse ja allalaadimise lingi lisamine