Meeskond "Tact"
Teema
Meeskond
- Mihkel Sokk
- Jaak Lehtsalu
- Martin Lensment
Keskkonna Setup
- Installi Visual Studio ASP.NET toega
- Loo GitHubi konto - https://github.com
- Hangi Git - http://help.github.com/win-set-up-git/
- Klooni repo aadressilt - https://github.com/msokk/Tact
XML Failid
XML
<?xml version="1.0" encoding="utf-8"?>
<kontaktid>
<kontakt>
<nimi>
<eesnimi>Jaan</eesnimi>
<perenimi>Igamees</perenimi>
</nimi>
<epost tyyp="too">jaantoo@gmail.com</epost>
<epost tyyp="kodu">jaankodu@gmail.com</epost>
<telefon tyyp="mobiil" peamine="true">5500000</telefon>
<telefon tyyp="tavaline">5000000</telefon>
<aadress>
<nr>4c</nr>
<tanav>Raja</tanav>
<asula>Tallinn</asula>
<maakond>Harjumaa</maakond>
<riik>Eesti</riik>
<indeks>67890</indeks>
</aadress>
<sotsiaalne>
<wlm>jaan@hotmail.com</wlm>
<facebook>http://facebook.com/37289</facebook>
<orkut>http://orkut.com/3289783</orkut>
<skype>jIgamees</skype>
<twitter>http://twitter.com/jIgamees</twitter>
</sotsiaalne>
<pilt>http://profile.ak.fbcdn.net/hprofile-ak-snc4/41629_100000310305025_2955_q.jpg</pilt>
</kontakt>
<kontakt>
<nimi>
<eesnimi>Oskar</eesnimi>
<perenimi>Okas</perenimi>
</nimi>
<epost tyyp="too">oskartoos@gmail.com</epost>
<epost tyyp="kodu">oskarkody@gmail.com</epost>
<telefon tyyp="mobiil" peamine="true">53456545</telefon>
<telefon tyyp="tavaline">52433000</telefon>
<aadress>
<nr>34-2</nr>
<tanav>Tihase</tanav>
<asula>Tallinn</asula>
<maakond>Harjumaa</maakond>
<riik>Eesti</riik>
<indeks>34563</indeks>
</aadress>
<sotsiaalne>
<wlm>oskar@hotmail.com</wlm>
<facebook>http://facebook.com/3242324</facebook>
<orkut>http://orkut.com/455445</orkut>
<skype>oOkas</skype>
<twitter>http://twitter.com/ookas</twitter>
</sotsiaalne>
<pilt>http://profile.ak.fbcdn.net/hprofile-ak-snc4/41629_100000310305025_2955_q.jpg</pilt>
</kontakt>
</kontaktid>
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="kontaktid">
<xs:complexType>
<xs:sequence>
<xs:element name="kontakt">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi">
<xs:complexType>
<xs:sequence>
<xs:element name="eesnimi" type="xs:string" />
<xs:element name="perenimi" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="epost">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="tyyp" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="telefon">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedInt">
<xs:attribute name="tyyp" type="xs:string" use="required" />
<xs:attribute name="peamine" type="xs:boolean" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="aadress">
<xs:complexType>
<xs:sequence>
<xs:element name="nr" type="xs:string" />
<xs:element name="tanav" type="xs:string" />
<xs:element name="asula" type="xs:string" />
<xs:element name="maakond" type="xs:string" />
<xs:element name="riik" type="xs:string" />
<xs:element name="indeks" type="xs:unsignedInt" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sotsiaalne">
<xs:complexType>
<xs:sequence>
<xs:element name="wlm" type="xs:string" />
<xs:element name="facebook" type="xs:string" />
<xs:element name="orkut" type="xs:string" />
<xs:element name="skype" type="xs:string" />
<xs:element name="twitter" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pilt" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<style>
body{
font-family: Arial, Verdana;
}
h1{
color: #19212b;
}
table{
font-size: 12px;
border-collapse: collapse;
}
.mainTable{
border: 1px solid grey;
}
.mainTable th{
padding: 3px;
border: 1px solid grey;
background: #ccdaed;
}
.mainTable td{
border: 1px solid grey;
text-align: center;
padding: 3px;
}
.socialTable{
border: 0;
}
.socialTable td{
border: 0;
text-align: left;
padding: 2px;
}
</style>
</head>
<body>
<h1>Kontaktid</h1>
<table class="mainTable">
<tr>
<th>Profiilipilt</th>
<th>Eesnimi</th>
<th>Perekonnanimi</th>
<th>E-Post (töine)</th>
<th>E-Post (kodune)</th>
<th>Mobiil</th>
<th>Lauatelefon</th>
<th>Aadress</th>
<th>Sotsiaalvõrgustikud</th>
</tr>
<xsl:for-each select="kontaktid/kontakt">
<tr>
<td>
<img>
<xsl:attribute name="src">
<xsl:value-of select="pilt" />
</xsl:attribute>
</img>
</td>
<td>
<xsl:value-of select="nimi/eesnimi"/>
</td>
<td>
<xsl:value-of select="nimi/perenimi"/>
</td>
<td>
<xsl:value-of select="epost[@tyyp='too']"/>
</td>
<td>
<xsl:value-of select="epost[@tyyp='kodu']"/>
</td>
<td>
<xsl:value-of select="telefon[@tyyp='mobiil']"/>
</td>
<td>
<xsl:value-of select="telefon[@tyyp='tavaline']"/>
</td>
<td>
<xsl:value-of select="aadress/tanav"/>
<xsl:text> </xsl:text>
<xsl:value-of select="aadress/nr"/>,
<xsl:value-of select="aadress/asula"/>,
<xsl:value-of select="aadress/maakond"/>,
<xsl:value-of select="aadress/riik"/>
</td>
<td>
<table class="socialTable">
<tr>
<td>Messenger: </td>
<td>
<xsl:value-of select="sotsiaalne/wlm"/>
</td>
</tr>
<tr>
<td>Facebook: </td>
<td>
<xsl:value-of select="sotsiaalne/facebook"/>
</td>
</tr>
<tr>
<td>Orkut: </td>
<td>
<xsl:value-of select="sotsiaalne/orkut"/>
</td>
</tr>
<tr>
<td>Skype: </td>
<td>
<xsl:value-of select="sotsiaalne/skype"/>
</td>
</tr>
<tr>
<td>Twitter: </td>
<td>
<xsl:value-of select="sotsiaalne/twitter"/>
</td>
</tr>
</table>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT tulemus
Materjalid
http://facebooksdk.codeplex.com/
http://code.google.com/p/google-gdata/
http://linqtotwitter.codeplex.com/
http://code.google.com/p/sqlite-net/
http://msdn.microsoft.com/en-us/library/7hs6sw69.aspx
Logi
22. Veebruar
Algne XML, Schema ja XSLT leht valmis
18. Veebruar
Projekti draft areneb
04. Aprill
Githubi repo ülesseadmine, esialgse veebiteenuse loomine (Hello World)
15. Aprill
Kõikide liikmete arvutite tööks valmisseadmine (Giti ja Visual Studio masinatesse installeerimine), tööplaanide paberile üles kirjutamine (meetodid ja värgid, kuidas miski toimib), andmebaasimudeli loomine (nii paberil kui ka spetsiaalsel tarkvaral).
16. Aprill
Paduprogemine kakao ja puljongi saatel. Esimesed suuremad probleemid (Seoses Visual Studio ja vajamineva programmeerimiskeelega). Üheks suuremaks probleemiks oli ka autentimine. Peavalu valmistas ka sobiva XMLi saamine. Muidu päev algas andmebaasi ülesseadmisest. Hiljem tulid meetodid ja programm ise. Nii umbes 23 paiku õhtul sai süsteemi ikka mingit moodi jooksma. Toimib kasutajate lisamine (vajab veel täiendamist), kasutaja muutmine, kontakti lisamine, sisselogimine, väljalogimine.
17. Aprill
Viimane päev enne tähtaega. Teenus peaaegu valmis. Kasutajate lisamine täiustatud (väljade valideerimine), "kontaktide kuvamise" ja "muuda kontakti" päringud korda tehtud. Host name põhine piirang olemas, kontaktide otsimine korras.
Teenuse kirjeldus
Meie teenuseks on siis kontaktiraamat. See on selline kontaktiraamat kuhu saad lisada kontakte. Kontaktile saab lisada ees- ja perenime, telefoni (töö, kodu ja mobiil), emaili (töö ja kodu), aadressi (riik, maakond, asula, tänav, maja nr), Windows Live Messengeri, facebooki, orkuti, skype, twitteri ja kõigelõpuks ka pildi kontaktist.
Teenusel on järgmised meetodid:
EemaldaKontakt - See meetod on kontakti kustutamiseks (kasutaja peab muidugi sisse logitud olema)
KuvaKasutaja - See meetod on lihtsalt kasutaja kuvamiseks. Kasutaja peab olema sisse logitud. Selle abiga saab ta vaadata enda andmeid.
KuvaKontakt - Meetod kontakti kuvamiseks. See meetod kuvab kontakti andmed mis kasutaja on loonud.
LisaKontakt - Meetod kontakti loomiseks. Kasutaja saab lisada kontaktile: Ees- ja perenime, telefoni (töö, kodu ja mobiil), emaili (töö ja kodu), aadressi (riik, maakond, asula, tänav, maja nr), Windows Live Messengeri, facebooki, orkuti, skype, twitteri ja pildi kontaktist.
LogiSisse - Meetod kasutajale sisse logimiseks. Sisselogimisel luuakse küpsise põhine sessioon, paroolid on andmebaasis räsi kujul.
LogiValja - Meetod kasutajale välja logimiseks. Väljalogimisel sessioon hävitatakse.
LooKasutaja - Meetod kasutaja loomiseks. Kasutaja käest küsitakse Eesnime, perenime, kasutajanime, parooli ja facebooki ID-d.
MuudaKasutaja - Meetod kasutaja andmete muutmiseks.
MuudaKontakt - Meetod kontakti muutmiseks.
Natuke veel turvalisusest: kõik meetodid peale kasutaja loomise nõuavad audentimist. Reaalses kasutuses oleval süsteemil peab olema ühendus ka krüpteeritud.