Meeskond "Kujuneb": Difference between revisions
From ICO wiki
Jump to navigationJump to search
(28 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Teema == | |||
Muusikapoe tootekataloogi osaline realisatsioon klient-server põhimõttel. | |||
== Liikmed == | == Liikmed == | ||
* Rauno Väli | * Rauno Väli | ||
* Andreas Lea | * Andreas Lea | ||
* Erik Peinar | * Erik Peinar | ||
== Lähtekood == | |||
* Versioonihalduseks kasutatud GitHub-i võimalusi: | |||
https://github.com/R3ality/tootekataloog | |||
Line 55: | Line 64: | ||
</tootekataloog> | </tootekataloog> | ||
</source> | </source> | ||
=== Skeemifail (XSD) === | === Skeemifail (XSD) === | ||
Line 116: | Line 126: | ||
</xs:schema> | </xs:schema> | ||
</source> | </source> | ||
=== Stiilifail (XSLT) === | === Stiilifail (XSLT) === | ||
Line 343: | Line 354: | ||
</source> | </source> | ||
=== Andmefaili vaade stiilifailiga === | === Andmefaili vaade stiilifailiga === | ||
[[File:Muusikakogu_naidis.png]] | [[File:Muusikakogu_naidis.png]] | ||
== Teenus == | == Teenus == | ||
* Online jooksev teenus: | |||
http://kujuneb.somee.com/Teenus.asmx | |||
=== Teenuse signatuur === | |||
Hetkeseisuga on teenusel järgnevad avalikud veebimeetodid (tärniga tähistatud meetodid nõuavad autentimist): | |||
AnnaAlbumid | <br>AnnaAlbum(int Id) | ||
<br>AnnaAlbumLaos() | |||
<br>AnnaAlbumiLood() | |||
<br>AnnaAlbumid() | |||
<br>AnnaAlbumidByZanr() | |||
<br>AnnaAlbumidByArtist() | |||
<br>AnnaArtist() | |||
<br>AnnaArtistid() | |||
<br>AnnaKasutajaNimi() | |||
<br>AnnaLadu() | |||
<br>AnnaLaod() | |||
<br>AnnaLogi()* | |||
<br>AnnaLood() | |||
<br>AnnaLooAlbum() | |||
<br>AnnaLugu() | |||
<br>AnnaRiigid() | |||
<br>AnnaRiik() | |||
<br>AnnaZanr() | |||
<br>AnnaZanrid() | |||
<br>KasOnAutenditud() | |||
<br>KustutaAlbum()* | |||
<br>KustutaArtist()* | |||
<br>KustutaLugu()* | |||
<br>LisaAlbum()* | |||
<br>LisaArtist()* | |||
<br>LisaLugu()* | |||
<br>LoendaMeetodiParingud()* | |||
<br>LogiValja() | |||
<br>MuudaAlbum()* | |||
<br>Otsi() | |||
<br>MuudaArtist()* | |||
<br>MuudaLugu()* | |||
=== Andmetabelid === | |||
[[File:Andmebaas.png]] | |||
=== Statistika === | |||
[[File:Statistika.png]] | |||
== Klientrakendus == | |||
Klientrakendus on teostatud C# Windows Forms rakendusena | |||
=== Demoprogramm === | |||
* '''TootekatKlient-local.exe''' | |||
http://www.upload.ee/files/1372294/TootekatKlient-local.exe.html (versioon 1) | |||
http://www.upload.ee/files/1389696/TootekatKlient-v2-local.exe.html (versioon 2) | |||
Eeldab et teenus jookseb lokaalses masinas (näiteks Visual Studiost debugima panduna) | |||
* '''TootekatKlient-remote.exe''' | |||
http://www.upload.ee/files/1372297/TootekatKlient-remote.exe.html (versioon 1) | |||
http://www.upload.ee/files/1389698/TootekatKlient-v2-remote.exe.html (versioon 2) | |||
Online teenuse pihta käiv klient. Administreerimisfunktsioonid sihipäraselt eemaldatud. Autentimine ei toimi. | |||
=== Ekraanipildid === | |||
[[File:TootekatKlientv2-1.png]] | |||
[[File:KujunebKlient1.jpg]] | |||
[File: | [[File:KujunebKlient2.jpg]] | ||
[[File:KujunebKlient3.jpg]] | |||
[[File: | [[File:KujunebKlient4.jpg]] | ||
Latest revision as of 17:22, 3 June 2011
Teema
Muusikapoe tootekataloogi osaline realisatsioon klient-server põhimõttel.
Liikmed
- Rauno Väli
- Andreas Lea
- Erik Peinar
Lähtekood
- Versioonihalduseks kasutatud GitHub-i võimalusi:
https://github.com/R3ality/tootekataloog
XML
Andmefail (XML)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- <?xml-stylesheet type="text/xsl" href="style.xslt"?> -->
<tootekataloog>
<!-- zanride loetelu-->
<zanrid>
<zanr id="1">
<nimi>Pop</nimi>
</zanr>
<zanr id="2">
<nimi>Rap</nimi>
</zanr>
</zanrid>
<!-- artistide loetelu-->
<artistid>
<artist id="1">
<nimi>Queen</nimi>
</artist>
<artist id="2">
<nimi>Madonna</nimi>
</artist>
</artistid>
<!-- albumite loetelu-->
<albumid>
<album id="1">
<zanr>1</zanr>
<artist>1</artist>
<nimi>Greatest Hits</nimi>
<aasta>2005</aasta>
<lugusi>15</lugusi>
<pilt>http://bit.ly/jreygb</pilt>
<hind>12</hind>
</album>
<album id="2">
<zanr>2</zanr>
<artist>2</artist>
<nimi>American Life</nimi>
<aasta>2002</aasta>
<lugusi>19</lugusi>
<pilt>http://bit.ly/jwEHdl</pilt>
<hind>8.3</hind>
</album>
</albumid>
</tootekataloog>
Skeemifail (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="tootekataloog">
<xs:complexType>
<xs:sequence>
<xs:element name="zanrid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="zanr">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="artistid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="artist">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="albumid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="album">
<xs:complexType>
<xs:sequence>
<xs:element name="zanr" type="xs:unsignedByte" />
<xs:element name="artist" type="xs:unsignedByte" />
<xs:element name="nimi" type="xs:string" />
<xs:element name="aasta" type="xs:unsignedShort" />
<xs:element name="lugusi" type="xs:unsignedByte" />
<xs:element name="pilt" type="xs:string" />
<xs:element name="hind" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Stiilifail (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>
<head>
<title>Tootekataloog</title>
<style type="text/css">
body {
font-family: Arial, Verdana;
}
table {
font-size: 12px;
border-collapse: collapse;
}
table.main {
border: 1px solid #98bf21;
}
table.main th {
padding: 3px 10px 3px 10px;
border: 1px solid #98bf21;
background-color: #A7C942;
color: #FFFFFF;
}
table.main tr {
background-color: #FFFFFF;
}
table.main td {
text-align: center;
padding: 3px;
border: 1px solid #98bf21;
}
a, a:hover, a:active, a:visited {
color: #000000;
}
a img {
border: none;
}
</style>
</head>
<body>
<h3>Albumid</h3>
<table class="main">
<tr>
<th>Artist</th>
<th>Album</th>
<th>Žanr</th>
<th>Aasta</th>
<th>Lugusi</th>
<th>Pilt</th>
<th>YouTube</th>
<th>Hind</th>
</tr>
<xsl:for-each select="tootekataloog/albumid/album">
<xsl:variable name="artistID" select="artist"/>
<xsl:variable name="zanrID" select="zanr"/>
<tr>
<xsl:if test="position() mod 2 =0">
<xsl:attribute name="style">
background-color: #EAF2D3;
</xsl:attribute>
</xsl:if>
<td>
<xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>
</td>
<td>
<xsl:value-of select="nimi"/>
</td>
<td>
<xsl:value-of select="/tootekataloog/zanrid/zanr[@id=$zanrID]/nimi"/>
</td>
<td>
<xsl:value-of select="aasta"/>
</td>
<td>
<xsl:value-of select="lugusi"/>
</td>
<td>
<img width="100" height="100">
<xsl:attribute name="src">
<xsl:value-of select="pilt"/>
</xsl:attribute>
</img>
</td>
<td>
<a>
<xsl:attribute name="href">
<xsl:text>http://www.youtube.com/results?search_query=</xsl:text><xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>+<xsl:value-of select="nimi"/>
</xsl:attribute>
<img src="http://www.upload.ee/image/1288041/youtube-badge-64x64.png">
</img>
</a>
</td>
<td>
<xsl:value-of select="hind"/> €
</td>
</tr>
</xsl:for-each>
</table>
<br/><br/>
<h3>Toored andmed</h3>
<table>
<tr>
<td style="padding-right: 50px; vertical-align: top;">
<h4>Žanrid</h4>
<table class="main">
<tr>
<th>id</th>
<th>nimi</th>
</tr>
<xsl:for-each select="tootekataloog/zanrid/zanr">
<tr>
<xsl:if test="position() mod 2 =0">
<xsl:attribute name="style">
background-color: #EAF2D3;
</xsl:attribute>
</xsl:if>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="nimi"/>
</td>
</tr>
</xsl:for-each>
</table>
</td>
<td style="padding-right: 50px; vertical-align: top;">
<h4>Artistid</h4>
<table class="main">
<tr>
<th>id</th>
<th>nimi</th>
</tr>
<xsl:for-each select="tootekataloog/artistid/artist">
<tr>
<xsl:if test="position() mod 2 =0">
<xsl:attribute name="style">
background-color: #EAF2D3;
</xsl:attribute>
</xsl:if>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="nimi"/>
</td>
</tr>
</xsl:for-each>
</table>
</td>
<td style="vertical-align: top;">
<h4>Albumid</h4>
<table class="main">
<tr>
<th>id</th>
<th>zanr</th>
<th>artist</th>
<th>nimi</th>
<th>aasta</th>
<th>lugusi</th>
<th>pilt</th>
<th>hind</th>
</tr>
<xsl:for-each select="tootekataloog/albumid/album">
<tr>
<xsl:if test="position() mod 2 =0">
<xsl:attribute name="style">
background-color: #EAF2D3;
</xsl:attribute>
</xsl:if>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="zanr"/>
</td>
<td>
<xsl:value-of select="artist"/>
</td>
<td>
<xsl:value-of select="nimi"/>
</td>
<td>
<xsl:value-of select="aasta"/>
</td>
<td>
<xsl:value-of select="lugusi"/>
</td>
<td>
<xsl:value-of select="pilt"/>
</td>
<td>
<xsl:value-of select="hind"/>
</td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Andmefaili vaade stiilifailiga
Teenus
- Online jooksev teenus:
http://kujuneb.somee.com/Teenus.asmx
Teenuse signatuur
Hetkeseisuga on teenusel järgnevad avalikud veebimeetodid (tärniga tähistatud meetodid nõuavad autentimist):
AnnaAlbum(int Id)
AnnaAlbumLaos()
AnnaAlbumiLood()
AnnaAlbumid()
AnnaAlbumidByZanr()
AnnaAlbumidByArtist()
AnnaArtist()
AnnaArtistid()
AnnaKasutajaNimi()
AnnaLadu()
AnnaLaod()
AnnaLogi()*
AnnaLood()
AnnaLooAlbum()
AnnaLugu()
AnnaRiigid()
AnnaRiik()
AnnaZanr()
AnnaZanrid()
KasOnAutenditud()
KustutaAlbum()*
KustutaArtist()*
KustutaLugu()*
LisaAlbum()*
LisaArtist()*
LisaLugu()*
LoendaMeetodiParingud()*
LogiValja()
MuudaAlbum()*
Otsi()
MuudaArtist()*
MuudaLugu()*
Andmetabelid
Statistika
Klientrakendus
Klientrakendus on teostatud C# Windows Forms rakendusena
Demoprogramm
- TootekatKlient-local.exe
http://www.upload.ee/files/1372294/TootekatKlient-local.exe.html (versioon 1) http://www.upload.ee/files/1389696/TootekatKlient-v2-local.exe.html (versioon 2) Eeldab et teenus jookseb lokaalses masinas (näiteks Visual Studiost debugima panduna)
- TootekatKlient-remote.exe
http://www.upload.ee/files/1372297/TootekatKlient-remote.exe.html (versioon 1) http://www.upload.ee/files/1389698/TootekatKlient-v2-remote.exe.html (versioon 2) Online teenuse pihta käiv klient. Administreerimisfunktsioonid sihipäraselt eemaldatud. Autentimine ei toimi.