Hubris: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 283: Line 283:
* Igakuiste soovituste saatmine meili teel
* Igakuiste soovituste saatmine meili teel


====Riskid ====
==== Riskid ====
* Nii uute trendide kui sarnaste jälgimiste saatmise algoritm võib osutuda keeruliseks.
* Nii uute trendide kui sarnaste jälgimiste saatmise algoritm võib osutuda keeruliseks.


Line 290: Line 290:
* Tähtajad: nii veebiteenus kui klientrakendus peavad olema valmis 24.05.2015
* Tähtajad: nii veebiteenus kui klientrakendus peavad olema valmis 24.05.2015


A
 
 
==== Andmebaaside esialgne mudel ====
'''Andmebaas muutub veel arenduse käigus vastavalt vajadustele'''
 
[http://enos.itcollege.ee/~apaalo/andmebaas.png ERD mudel]


== Klientrakendus ==
== Klientrakendus ==

Revision as of 21:30, 4 April 2015

Meeskond

  • Sander Maasikamäe
  • Allan Paalo
  • Madis Rääk

XML

Kirjeldus

Meie projektiks on luua filmide, raamatute, muusika jms. andmebaas/reklaamiplatvorm, kus on välja toodud nende: tiitel, selgitus, lisamise/avaldamise kuupäev/, like/dislike suhe ning võimalusel nende lingid. Kasutajad saavad lisada enda tehtud/kirjutatud või kuskilt leitud bände, filme, raamatuid ning teised kasutajad saavad neid hinnata.

XML

<?xml version="1.0" encoding="utf-8" ?>

<adverts>
  <advert id="1" type="movie">
    <title><![CDATA[Lord of the Rings]]></title>
    <body><![CDATA[Description here]]></body>
    <date>06.03.2015</date>
    <likes>10000</likes>
    <dislikes>0</dislikes>
    <urls>
      <videourl><![CDATA[www.youtube.com]]></videourl>
      <weburl><![CDATA[www.lotr.com]]></weburl>
    </urls>
  </advert>

  <advert id="2" type="book">
    <title><![CDATA[Fight Club]]></title>
    <body><![CDATA[First rule of fight club is: You do not talk about fight club.]]></body>
    <date>02.03.2015</date>
    <likes>0</likes>
    <dislikes>0</dislikes>
    <urls>
      <videourl><![CDATA[www.youtube.com]]></videourl>
      <weburl><![CDATA[www.soap.com]]></weburl>
    </urls> 
  </advert>

  <advert id="3" type="music">
    <title><![CDATA[No Connection]]></title>
    <body><![CDATA[some band]]></body>
    <date>03.03.2015</date>
    <likes>10</likes>
    <dislikes>4</dislikes>
    <urls>
      <videourl><![CDATA[]]></videourl>
      <weburl><![CDATA[]]></weburl>
    </urls>
  </advert>

  <advert id="4" type="music">
    <title><![CDATA[Prince]]></title>
    <body><![CDATA[]]></body>
    <date>06.03.2015</date>
    <likes>6736</likes>
    <dislikes>3938</dislikes>
    <urls>
      <videourl><![CDATA[www.youtube.com]]></videourl>
      <weburl><![CDATA[]]></weburl>
    </urls>
  </advert>

  <advert id="5" type="book">
    <title><![CDATA[Fahrenheit 451]]></title>
    <body><![CDATA[Ray Bradbury]]></body>
    <date>05.03.2015</date>
    <likes>5739</likes>
    <dislikes>222</dislikes>
    <urls>
      <videourl><![CDATA[]]></videourl>
      <weburl><![CDATA[]]></weburl>
    </urls>
  </advert>
</adverts>

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="adverts">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="advert">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="title" type="xs:string" />
              <xs:element name="body" type="xs:string" />
              <xs:element name="date" type="xs:string" />
              <xs:element name="likes" type="xs:unsignedInt" />
              <xs:element name="dislikes" type="xs:unsignedInt" />
              <xs:element name="urls">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="videourl" type="xs:string" />
                    <xs:element name="weburl" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedInt" use="required" />
            <xs:attribute name="type" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT

Esimene - All Adverts

<?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>
        <body>
          <table border="1">
            <tr>
              <th>Title</th>
              <th>Description</th>
              <th>Likes</th>
              <th>Dislikes</th>
            </tr>
            <xsl:for-each select="adverts/advert">
              <tr>
                <td>
                  <xsl:value-of select="title"/>
                </td>
                <td>
                  <xsl:value-of select="body"/>
                </td>
                <td>
                  <xsl:value-of select="likes"/>
                </td>
                <td>
                  <xsl:value-of select="dislikes"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Väljund: http://enos.itcollege.ee/~apaalo/all.png

Teine - All Books

<?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>
        <body>
          <table border="1">
            <tr>
              <th>Title</th>
              <th>Description</th>
              <th>Likes</th>
              <th>Dislikes</th>
            </tr>
            <xsl:for-each select="adverts/advert[@type='book']">
              <tr>
                <td>
                  <xsl:value-of select="title"/>
                </td>
                <td>
                  <xsl:value-of select="body"/>
                </td>
                <td>
                  <xsl:value-of select="likes"/>
                </td>
                <td>
                  <xsl:value-of select="dislikes"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Väljund: http://enos.itcollege.ee/~apaalo/books.png

Kolmas - More than 100 likes

<?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>
      <body>
        <table border="1">
          <tr>
            <th>Title</th>
            <th>Description</th>
            <th>Likes</th>
            <th>Dislikes</th>
          </tr>
          <xsl:for-each select="adverts/advert">
            <xsl:if test="likes &gt; 100">
              <tr>
                <td>
                  <xsl:value-of select="title"/>
                </td>
                <td>
                  <xsl:value-of select="body"/>
                </td>
                <td>
                  <xsl:value-of select="likes"/>
                </td>
                <td>
                  <xsl:value-of select="dislikes"/>
                </td>
              </tr>
            </xsl:if>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Väljund: http://enos.itcollege.ee/~apaalo/likes.png

Veebiteenus

Analüüs

Probleem

  • Puudub ühtne veebiteenus, kus leiaks informatsiooni nii filmide, raamatute kui ka muusika kohta.

Lahenduse üldkirjeldus

  • Meie projektiks on luua filmide, raamatute, muusika jms reklaamiplatvorm.
  • Külastajad saavad läbi klientrakenduse lugeda juba olemasolevaid postitusi ning neid hinnata.
  • Veebiteenus tagastaks minimaalse kuid kõige vajalikuma informatsiooni – tiitel, kirjeldus, erinevad kuupäevad, hinnangud, lingid.
  • Külastajad saavad samuti luua omale isikliku konto, millele nad saavad tellida soovitusi nii trendide kui sarnaste jälgimiste kohta. Kasutajana saavad nad ise lisada ka postitusi. Ebakorrektseid postitusi on võimalik raporteerida.

Funktsionaalsused

Must have

  • Postituste vaatamine
    • Nimekiri
    • Üksik postitus
  • Postituste lisamine
  • Postituste muutmine
  • Postituste kustutamine
  • Postituste hindamine
    • Positiivselt
    • Negatiivselt
  • Postituste raporteerimine
    • Raporteeritud postituste eemaldamine
  • Postituste otsimine
    • Läbi kõikide kategooriate
    • Läbi kindla kategooria

Nice to have

  • Igakuiste soovituste saatmine meili teel

Riskid

  • Nii uute trendide kui sarnaste jälgimiste saatmise algoritm võib osutuda keeruliseks.

Aksepteeritavad kriteeriumid ja tähtajad

  • Minimaalsete funktsionaalsuste list „must have“
  • Tähtajad: nii veebiteenus kui klientrakendus peavad olema valmis 24.05.2015


Andmebaaside esialgne mudel

Andmebaas muutub veel arenduse käigus vastavalt vajadustele

ERD mudel

Klientrakendus

Retsensioonid

Meeskonna tehtud retsensioonid

Meeskonnale tehtud retsensioonid

  • X: placeholder