DoubleTrouble

From EIK wiki

Meeskond ja rollid

  • Kaido Henrik Elias
  • Jekaterina Jakimets

Idee ja analüüs

Projekti idee

Projekti idee seisneb selles, et luua telefoniraamatu rakendus, kus kasutaja saab teenuse iContact abil salvestada kontakte ja nende seast otsida. Selline rakendus oleks vajalik selleks, et lihtsustada kasutajal kontaktide haldamist ning leida mugavalt ja kiirelt vajalikke andmeid.

Rakenduse sisu

Rakenduses on olemas järgmised võimalused (Must have):

Kasutaja saab teenuses kontakte lisada ja kustutada, muuta

Kasutaja saab kontaktide nime/telefoninumbri jne abil otsida

Luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks

Kasutajaid on võimalik lisada gruppidesse

Rakenduses võiksid olla lisavõimalused (Should have):

Kasutajal on võimalik lisada vajalike kontaktandmete liike

Kasutajatel on võimalik jagada omavahel kontakte ja kontaktide gruppe

Rakenduse funktsionaalsus kliendina:

on võimalik näha olemasolevaid kontakte

on võimalik kontakte muuta ja kustutada

on võimalik otsida kontakandmeid

on võimalik lisada kontakte gruppidesse

Rakenduse funktsionaalsus administraatorina:

on võimalik hallata telefoniraamatut nt lisada uusi välju lisaks telefoninumbrile

on võimalik registreerida uus kasutaja

on võimalik tellida uus parool

XML osa

XML Fail

<?xml version="1.0" encoding="utf-8" ?>
<raamatud>
  <raamat id="1" aasta="1943" keel="eng" zanr="1">
    <pealkiri><![CDATA[The Documents in the Case]]></pealkiri>
    <autorid>
      <autor><![CDATA[Dorothy L.Sayers]]></autor>
      <autor><![CDATA[Robert Eustace]]></autor>
    </autorid>
    <kirjeldus><![CDATA[The grotesquely grinning corpse in the Devonshire shack was a man who died horribly -- with a dish of mushrooms at his side.]]></kirjeldus>
    <hind valuuta="€">45</hind>
    <raamatukeeled>
      <raamatukeel value="rus">Vene keeles</raamatukeel>
      <raamatukeel value="est">Eesti keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
  <raamat id="2" aasta="1953" keel="eng" zanr="2">
    <pealkiri><![CDATA[The Adventures of Ellery Queen ]]></pealkiri>
    <autorid>
      <autor><![CDATA[Ellery Queen]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Collection of short stories.]]></kirjeldus>
    <hind valuuta="€">55</hind>
    <raamatukeeled>
      <raamatukeel value="ita">Itaalia keeles</raamatukeel>
      <raamatukeel value="est">Eesti keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="3" aasta="1562" keel="eng" zanr="2">
    <pealkiri><![CDATA[Killing me softly]]></pealkiri>
    <autorid>
      <autor><![CDATA[Nicci French]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Alice Loudon has it all: a devoted boyfriend, a marvelous circle of friends, a challenging job as a research scientist.]]></kirjeldus>
    <hind valuuta="€">35</hind>
    <raamatukeeled>
      <raamatukeel value="esp">Hispaania keeles</raamatukeel>
      <raamatukeel value="ger">Saksa keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="4" aasta="1343" keel="eng"  zanr="3">
    <pealkiri><![CDATA[The Frozen Deep]]></pealkiri>
    <autorid>
      <autor><![CDATA[Wilkie Collins]]></autor>
      <autor><![CDATA[Charles Dickens]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Based on the doomed 1845 expedition to the Arctic, The Frozen Deep is a dramatic tale of vengeance and self-sacrifice. ]]></kirjeldus>
    <hind valuuta="€">45</hind>
    <raamatukeeled>
      <raamatukeel value="ger">Saksa keeles</raamatukeel>
      <raamatukeel value="arm">Armeenia keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="5" aasta="1995" keel="est" zanr="1">
    <pealkiri><![CDATA[Fred Jussi läks metsa]]></pealkiri>
    <autorid>
      <autor><![CDATA[Katariina Jankovskaja]]></autor>
      <autor><![CDATA[Paul Meri]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Ta läks metsa]]></kirjeldus>
    <hind valuuta="€">20</hind>
    <raamatukeeled>
      <raamatukeel value="rus">Vene keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
</raamatud>

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="raamatud">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="raamat">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="pealkiri" type="xs:string" />
              <xs:element name="autorid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="autor" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="kirjeldus" type="xs:string" />
              <xs:element name="hind">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:unsignedByte">
                      <xs:attribute name="valuuta" type="xs:string" use="required" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="raamatukeeled">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="raamatukeel">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="value" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
            <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
            <xs:attribute name="keel" type="xs:string" use="required" />
            <xs:attribute name="zanr" type="xs:unsignedByte" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT 1

<?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="/">
      <head>
        <style>
          div {font-size:18px;margin:10;}
        </style>
        <title>Raamatud sorteeritud väljaande aasta järgi</title>
      </head>
      <body>
        <div style="font-size:20px">
        <ol>
          <xsl:for-each select="/raamatud/raamat">
            <xsl:sort select="@aasta" data-type="number" order="ascending"/>
              <li>
                <xsl:value-of select="pealkiri"/> (<xsl:value-of select="@aasta"/>)
                <br/>
                <p style="color:grey;font-size:14px" >
                  <xsl:value-of select="kirjeldus"/>
                </p>
                  <div>Autorid:</div>
                <ul>
                  <xsl:for-each select="autorid/autor">
                    <div style="font-size:16px;margin:2">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </div>
                  </xsl:for-each>
                 </ul>
                <div>Raamat on saadaval ka:</div>
                <ul>
                  <xsl:for-each select="raamatukeeled/raamatukeel">
                    <div style="font-size:16px;margin:2">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </div>
                  </xsl:for-each>
                </ul>
                <div>
                  Hind:
                  <xsl:value-of select="hind"/>
                  <xsl:value-of select="hind/@valuuta"/>
                 </div>
              </li>
            <br/>
          </xsl:for-each>
        </ol>
        </div>
      </body>
    </xsl:template>
</xsl:stylesheet>

XSLT1 fail

XSLT 2

<?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="/">
      <head>
        <style>
          div {font-size:18px;margin:10;}
        </style>
        <title>Eestikeelsed raamatud</title>
      </head>
      <body>
        <div style="font-size:20">Kõik eestikeelsed raamatud:</div>
        <ul>
        <xsl:for-each select="/raamatud/raamat">
          <xsl:variable name="otsitavKeel">est</xsl:variable>
          <xsl:variable name="pealkiri" select="pealkiri"/>
          <xsl:variable name="aasta" select="@aasta"/>
          <xsl:if test="@keel = $otsitavKeel">
            <li>
              <xsl:value-of select="$pealkiri"/>
              (<xsl:value-of select="$aasta"/>)
            </li>
          </xsl:if>
         <xsl:for-each select="raamatukeeled/raamatukeel">
            <xsl:variable name="keel" select="@value"/>
            <xsl:if test="$keel = 'est'">
              <li>
                <xsl:value-of select="$pealkiri"/> 
                (<xsl:value-of select="$aasta"/>)
                <div style="font-style:italic;color:grey"> (Tõlgitud)</div>
              </li>
              <br/>
            </xsl:if>
          </xsl:for-each>
        </xsl:for-each>
        </ul>
      </body>
    </xsl:template>
</xsl:stylesheet>

XSLT2 fail

Retsensioonid

XML retsensioon meeskonnale VRJ asub siin
XML retsensioon meeskonnale Givela asub siin

Blogi

  • 17.03 - Tiimi loomine.
  • 18.03 - Esimene kokkusaamine. Alustasime XML loomist ja Wiki lehe loomist. Seletasime lahti projekti idee ja lisasime vajalikud failid.
  • 4.04 - Valisime välja projektiteema ning arutasime selle üle, milline meie rakendus saab olema
  • 17.04 - Rakenduse analüüsi kirjeldamine wikisse