Meeskond "GAP"

From ICO wiki
Revision as of 01:17, 4 June 2011 by Areedla (talk | contribs)
Jump to navigationJump to search

Liikmed

  • Priit Siimo - projektijuht, klientrakendus
  • Gaspar Karm - veebiteenus
  • Andrus Reedla - veebiteenus, andmemudel


Planeering

  • Arenduskeskond - Visual Studio 2010
  • Kliendirakendus valmib Asp.net projektina
  • Veebiteenus - WCF
  • Andmebaasina kasutame SQL2008
  • Andmemudeli koostamiseks kasutasime QSEE Superlite-i
  • Meeskonna suhtlus vahendiks on Skype ning versioonihaldustarkvara TortoiseSVN ning MyVersionControl


Teenus

Tegemist on universaalse tarkvaraga hulgifirmadele. Näidiseks on võetud arvutikaupade hulgimüügiga tegelev firma, kellel on tosin edasimüüjat. Hulgifirmale valmistatakse tarkvara, mis võimaldab temal omakorda oma klientidele (arvutikaupade edasimüüjatele) pakkuda tootevaliku teenust.

St, et hulgifirma klient, ei pea hakkama ise oma veebilehele sisestama pakutavaid tooteid, vaid kasutab selleks hulgifirma poolt pakutavat teenust. Läbi teenuse on võimalik pärida kõik tellitavad tooted, koos piltide, kirjelduse, hindade ja muu vajalikuga.

Võit mõlemale poolele:

1. Edasimüüjad ei pea enam tegelema andmete uuendamisega ja nende kliendid saavad tellida alati kõige uuemaid tooteid.

2. Hulgimüüjal tekib suur konkurentsieelis võrreldes teiste pakkujatega.


Veebiteenused

Kasutajatega seotud meetodid:

  • String GetData()
  • ICollection<Product> GetProducts(int comp_id) - tagastab listi toodetega
  • Product GetProduct(int id) - tagastab kindla id-ga toote
  • ICollection<Category> GetCategories() - tagastab listi tootegruppidega
  • ICollection<Comment> GetProductComments(int proID) - tagastab listi kindla toote kommentaaridega
  • void SetProductComment(Comment c) - lisab kommentaari
  • int GetStatistic() - tagastab statistika


Administreerimisega seotd meetodid:

  • void InsertProduct(Product p) - lisab toote
  • void UpdateProduct(Product p) - uuendab toote
  • void DeleteProduct(Product p) - kustutab toote
  • void InsertProductGroup(Category cat) - lisab tootegrupi
  • void DeleteProductGroup(Category cat) - kustutab tootegrupi

Kood

Veebiteenus [1]

Kliendirakendus [2]

Andmemudel

XML

<?xml version="1.0" encoding="utf-8"?>
<TeenusedKaubad>
  <TeenusKaup>
    <Nimetused>
      <Nimetus keel =""></Nimetus>
    </Nimetused>
    <Kood></Kood>
    <Kirjeldused>
      <Kirjeldus>
        <Keel></Keel>
        <Tekst></Tekst>
      </Kirjeldus>
    </Kirjeldused>
    <Hinnad>
      <Hind>
        <HinnaGrupp></HinnaGrupp>
        <Valuuta></Valuuta>
        <Vaartus></Vaartus>
      </Hind>
    </Hinnad>
    <Kogus></Kogus>
    <Grupid>
      <Grupp></Grupp>
    </Grupid>
    <Parameetrid>
      <Parameeter>
        <Nimetus></Nimetus>
        <Vaartus></Vaartus>
        <Yhik></Yhik>
      </Parameeter>
    </Parameetrid>
    <Pildid>
      <Pilt>
        <Nimi></Nimi>
        <Aadress></Aadress>
      </Pilt>
    </Pildid>
    <Kommentaarid>
      <Kommentaar>
        <Autor></Autor>
        <Pealkiri></Pealkiri>
        <Tekst></Tekst>
        <Hinnang></Hinnang>
        <Aeg>
          <Aasta></Aasta>
          <Kuu></Kuu>
          <KuuPaev></KuuPaev>
          <Tund></Tund>
          <Minut></Minut>
        </Aeg>
      </Kommentaar>
    </Kommentaarid>
  </TeenusKaup>
</TeenusedKaubad>

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="TeenusedKaubad">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TeenusKaup">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Nimetused">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Nimetus">
                      <xs:complexType>
                        <xs:attribute name="keel" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Kood" />
              <xs:element name="Kirjeldused">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Kirjeldus">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Keel" />
                          <xs:element name="Tekst" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Hinnad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Hind">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="HinnaGrupp" />
                          <xs:element name="Valuuta" />
                          <xs:element name="Vaartus" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Kogus" />
              <xs:element name="Grupid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Grupp" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Parameetrid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Parameeter">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Nimetus" />
                          <xs:element name="Vaartus" />
                          <xs:element name="Yhik" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Pildid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Pilt">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Nimi" />
                          <xs:element name="Aadress" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </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="Autor" />
                          <xs:element name="Pealkiri" />
                          <xs:element name="Tekst" />
                          <xs:element name="Hinnang" />
                          <xs:element name="Aeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Aasta" />
                                <xs:element name="Kuu" />
                                <xs:element name="KuuPaev" />
                                <xs:element name="Tund" />
                                <xs:element name="Minut" />
                              </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>
        <head>
          <style>
            table{
            font-family:"Verdana";
            font-size:12;
            border-width: 1px;
            border-spacing: 0px;
            border-style: outset;
            border-color: green;
            border-collapse: collapse;
            }

            th{
            border-width: 2px;
            padding: 4px;
            border-style: hidden;
            border-color: green;
            background-color: #daa520;
            -moz-border-radius: 4px 5px 4px 5px;
            }
            td{
            border-width: 1px;
            padding: 4px;
            border-style: solid;
            border-color: #f5f000;
            background-color: #f5f5dc;
            -moz-border-radius: 3px 3px 3px 3px;
            }
            .subTable{
            border-width: 0px;
            }
            .nimetus {
            font-weight: bold;
            }
          </style>
        </head>

        <h2>Kaubad poes</h2>
        <table>
          <tr>
            <th>Tootegrupp</th>
            <th>Toode</th>
            <th>Toote kood</th>
            <th>Kirjeldus</th>
            <th>Hind</th>
            <th>Kogus</th>
            <th>Parameetrid</th>
            <th>Kommentaarid</th>
          </tr>
          <xsl:for-each select="TeenusedKaubad/TeenusKaup">
            <tr>

              <td>
                <xsl:for-each select="Grupid/Grupp">
                  /<xsl:value-of select="Nimetus
"/>
                </xsl:for-each>
              </td>

              <td class="nimetus">
                <xsl:for-each select="Nimetused">
                  <xsl:value-of select="Nimetus"/>
                </xsl:for-each>
              </td>

              <td>
                <xsl:value-of select="Kood"/>
              </td>

              <td>
                <xsl:for-each select="Kirjeldused/Kirjeldus">
                  <table class ="subTable">
                    <tr>
                      <dt>
                        <xsl:value-of select="Tekst"/>
                        <!--(<xsl:value-of select="Keel"/>)-->
                      </dt>
                    </tr>
                  </table>
                </xsl:for-each>
              </td>

              <td>
                <xsl:for-each select="Hinnad/Hind">
                  <table class ="subTable">
                    <tr>
                      <dt>
                        *<xsl:value-of select="HinnaGrupp"/>&nbsp;
                        <xsl:value-of select="Vaartus"/>&nbsp;
                        (<xsl:value-of select="Valuuta"/>)
                      </dt>
                    </tr>
                  </table>
                </xsl:for-each>
              </td>

              <td align="center">
                <xsl:value-of select="Kogus"/>
              </td>

              <td>
                <xsl:for-each select="Parameetrid/Parameeter">
                  <table class ="subTable">
                    <tr>
                      <dt>
                        <xsl:value-of select="Nimetus"/>:
                        <xsl:value-of select="Vaartus"/>
                        <xsl:value-of select="Yhik"/>
                      </dt>
                    </tr>
                  </table>
                </xsl:for-each>
              </td>

              <td>
                <xsl:for-each select="Kommentaarid/Kommentaar">
                  <table class ="subTable">
                    <tr>
                      <dt>
                        <xsl:value-of select="Pealkiri"/><br />
                        <xsl:value-of select="Tekst"/><br />
                        <xsl:value-of select="Autor"/>: &nbsp;
                        <xsl:value-of select="Aeg/Tund"/>:
                           <xsl:value-of select="Aeg/Minut"/>&nbsp;
                           <xsl:value-of select="Aeg/KuuPaev"/>/
                           <xsl:value-of select="Aeg/Kuu"/>/
                           <xsl:value-of select="Aeg/Aasta"/>
                      </dt>
                    </tr>
                  </table>
                </xsl:for-each>
              </td>

            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Esmases veebiteenuse versioonis kasutatav andmemudel