Screaming Magic Gnomes: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mhakkine (talk | contribs)
No edit summary
Mhakkine (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 295: Line 295:


==Veebiteenuse analüüs==
==Veebiteenuse analüüs==
Meie veebiteenuse eesmärk klientide broneeringuid ja nende kasutajate kontaktandmeid/logineid. Andmebaasis hoiame me klientide infot (kontaktid, loginid), broneeringuid ja teenuseid. Veebiteenus võimaldab meil suhelda veebirakenduse ja andmebaasi vahel,tagastada ja muuta informatsiooni teenuste/broneeringute ja kasutajaandmete kohta.
Meie veebiteenuse eesmärk klientide broneeringuid ja nende kasutajate kontaktandmeid/logineid. Teenus peab võimaldama kasutajal veebirakenduses sisselogida, kasutades emaili aadressi ja parooli. Andmebaasis hoiame me broneeringuid(telefoninr, nimi, kellaaeg, teenus, kas makstud), pakutavaid teenuseid ja kasutajate paroole/emaile (adminid) . Veebiteenus võimaldab meil suhelda veebirakenduse ja andmebaasi vahel,tagastada ja muuta informatsiooni teenuste/broneeringute ja kasutajaandmete kohta. Veebiteenus aitab meil kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes. Samuti peab olema võimalik veebiteenuse poole pöördumiste arvu piiramist ja piirangute haldamist teostada.
 


== Andmebaasiskeem ==
== Andmebaasiskeem ==
Line 304: Line 303:
'''Rakenduse funktsionaalsus kliendina:''' <br>
'''Rakenduse funktsionaalsus kliendina:''' <br>
on võimalik näha olemasolevaid broneeringuid.<br>
on võimalik näha olemasolevaid broneeringuid.<br>
on võimalik broneeringuid muuta ja kustutada.<br>
on võimalik broneeringuid kustutada.<br>
on võimalik näha klientide kontakandmeid<br>
on võimalik lisada uusi teenuseid (koos hinna, kirjelduse ja kestvusega)<br>  
on võimalik lisada uusi teenuseid (koos hinna, kirjelduse ja kestvusega)<br> <br>'''Rakenduse funktsionaalsus tavakasutajana (ilusalongi kliendina):''' <br>
 
on võimalik teha broneeringuid ja neid kuni 24h enne broneeringu algust muuta.
<br>'''Rakenduse funktsionaalsus tavakasutajana (ilusalongi kliendina):''' <br>
on võimalik teha broneeringuid ja neid kuni 24h enne broneeringu algust kustutada.<br>
on võimalik näha vabasid aegu.<br>
on võimalik näha vabasid aegu.<br>
on võimalik registreerida uus kasutaja.<br>
on võimalik näha pakutavaid teenuseid (hinda, kestvust, kirjeldust).<br>
on võimalik näha pakutavaid teenuseid (hinda, kestvust, kirjeldust).<br>
on võimalik tellida uus parool.<br>
on võimalik saada 24h enne broneeringu algust meeldetuletus<br><br>
on võimalik saada 24h enne broneeringu algust meeldetuletus<br><br>


Line 317: Line 315:
'''Rakenduses peaksid olema järgmised võimalused (Must have): '''<br>
'''Rakenduses peaksid olema järgmised võimalused (Must have): '''<br>
1. Meil on olemas kasutajad, kellega saab sisse logida<br>
1. Meil on olemas kasutajad, kellega saab sisse logida<br>
2. Broneeringuid on võimalik lisata, eemaldada ja muuta.<br>
2. Broneeringuid on võimalik eemaldada.<br>
3. On võimalik näha pakutavaid teenuseid (hinnakirja, maksuvust, kestvust)<br>
3. On võimalik näha pakutavaid teenuseid (hinnakirja, maksuvust, kestvust)<br>
4. On võimalik lisada, eemaldada ja muuta pakutavaid teenuseid<br>
4. On võimalik lisada, eemaldada ja muuta pakutavaid teenuseid<br>
5. Võimalus registreerida uusi kasutajaid<br>
5. Kliendil on võimalik näha vabasid aegu oma soovitud teenusele.<br>
6. Võimalus tellida uus parool oma kasutajale, kui see ununeb.<br>
7. Võimalus saata kliendile arveid pakutud teenuste eest<br>
8. Iga kasutaja puhul on määratletud, kas tegu on kliendiga (tava või püsiklient) või töötajaga<br>
9. Kasutaja saab broneerida mitu teenust ühe broneeringuga<br>
10. Kliendil on võimalik näha vabasid aegu oma soovitud teenusele.<br>
<br>
<br>
'''Rakenduses võiksid olla lisavõimalused (Nice to have):''' <br>
'''Rakenduses võiksid olla lisavõimalused (Nice to have):''' <br>
1. Kasutajale saadetakse päev enne broneeringut meeldetuletus<br>
1. Kasutajale saadetakse päev enne broneeringut meeldetuletus<br>
2. Kasutajale saab panna meeldetuletuse, kuna broneerida järgmine juukselõikus (või mõni muu teenus)<br>
2. Kasutajale saab panna meeldetuletuse, kuna broneerida järgmine juukselõikus (või mõni muu teenus)<br>
3. On võimalik registreerida kasutades sotsiaalmeediat
3. On võimalik registreerida kasutades sotsiaalmeediat <br>
4. Võimalus registreerida uusi kasutajaid (adminid) <br>
5. Võimalus tellida uus parool oma kasutajale, kui see ununeb (adminid).<br>
6. Võimalus saata kliendile arveid pakutud teenuste eest <br>
7. Kasutaja saab broneerida mitu teenust ühe broneeringuga <br>
 
 
== Rakendus ja veebiteenus ==
 
On võimalik alla tirida siit.
[http://enos.itcollege.ee/~mhakkine/VR2/TheBooking%20(1).zip]

Latest revision as of 00:33, 30 May 2016

Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" Aastal 2016.

Meeskond

Märt Häkkinen
Siim Osa
Taavi Kivimaa


Idee

Meie idee on luua juuksuri- ja kosmeetikasalongi broneerimissüsteem, kasutades C# keelt. Klientidel on võimalik valida välja protseduur, ning aeg ja teenindaja. Salongil on võimalik näha ja hallata broneeringuid.


XML

<?xml version="1.0" encoding="UTF-8"?>
<Salong nimi="Kristiine">
<Teenused Tyyp="Juuksehooldus">
  <Teenus Tyyp="Mees" Id="1">
    <Nimi>
      <![CDATA[Peosoeng]]>
    </Nimi>
    <Hind Valuuta="Euro">
      22
    </Hind>
    <Kestvus aeg="Minut">
      60
    </Kestvus>
  </Teenus>
  <Teenus Tyyp="Mees" Id="2">
    <Nimi>
      <![CDATA[Masinlõikus]]>
    </Nimi>
    <Hind Valuuta="Euro">
      8
    </Hind>
    <Kestvus aeg="Minut">
      45
    </Kestvus>
  </Teenus>
  <Teenus Tyyp="Mees" Id="3">
    <Nimi>
      <![CDATA[Värvimine]]>
    </Nimi>
    <Hind Valuuta="Euro">
      36
    </Hind>
    <Kestvus aeg="Minut">
      90
    </Kestvus>
  </Teenus>
    <Teenus Tyyp="Naine" Id="4">
    <Nimi>
      <![CDATA[Peosoeng]]>
    </Nimi>
    <Hind Valuuta="Euro">
      25
    </Hind>
    <Kestvus aeg="Minut">
      90
    </Kestvus>
  </Teenus>
  <Teenus Tyyp="Naine" Id="5">
    <Nimi>
      <![CDATA[Värvimine]]>
    </Nimi>
    <Hind Valuuta="Euro">
      36
    </Hind>
    <Kestvus aeg="Minut">
      90
    </Kestvus>
  </Teenus>
</Teenused>
 
 <Teenused Tyyp="Kosmeetik">
  <Teenus Tyyp="Naine" Id="6">
    <Nimi>
      <![CDATA[Kollageen leht-mask]]>
    </Nimi>
    <Hind Valuuta="Euro">
      35
    </Hind>
    <Kestvus aeg="Minut">
      90
    </Kestvus>
  </Teenus>
</Teenused>
   <Teenused Tyyp="Maniküür">
  <Teenus Tyyp="Mees" Id="6">
    <Nimi>
      <![CDATA[Maniküür]]>
    </Nimi>
    <Hind Valuuta="Euro">
      12
    </Hind>
    <Kestvus aeg="Minut">
      30
    </Kestvus>
  </Teenus>
</Teenused>
 
  <Reserveeringud>
  <Reserveering Id="1" TeenuseId="2">
    <KliendiId>
      37
    </KliendiId>
    <TöötajaId>
      1440
    </TöötajaId>
    <Aeg>
      <Algus>
        2016-04-17T14:00:00
      </Algus>
      <Lõpp>
        2016-04-17T14:45:00
      </Lõpp>
    </Aeg>
        <Makstud>
        true
      </Makstud>
  </Reserveering>
    <Reserveering Id="1" TeenuseId="6">
    <KliendiId>
      24
    </KliendiId>
    <TöötajaId>
      200
    </TöötajaId>
    <Aeg>
      <Algus>
        2016-04-17T14:00:00
      </Algus>
      <Lõpp>
        2002-04-17T15:00:00
      </Lõpp>
    </Aeg>
      <Makstud>
        false
      </Makstud>
  </Reserveering>
  </Reserveeringud>
  </Salong>

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="Salong">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="Teenused">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Teenus">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Nimi" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="Hind" type="xs:string" minOccurs="1" maxOccurs="1">
                      <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="Kestvus" minOccurs="1" maxOccurs="1">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:unsignedByte">
                            <xs:attribute name="aeg" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="Tyyp" type="xs:string" use="required" />
                  <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="Tyyp" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="Reserveeringud">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Reserveering">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="KliendiId" type="xs:unsignedByte" />
                    <xs:element name="TöötajaId" type="xs:unsignedShort" />
                    <xs:element name="Aeg">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Algus" type="xs:dateTime" />
                          <xs:element name="Lõpp" type="xs:dateTime" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Makstud" type="xs:boolean" />
                  </xs:sequence>
                  <xs:attribute name="Id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="TeenuseId" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="nimi" type="xs:string" use="required" />
    </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"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Kristiine Salong</title>
      </head>
      <body>


        <h1>Teenused</h1>
        <h2>Meestele</h2>
        <!--Kirjutame välja meeste ja naiste teenused, hinnad ja ajalise kestvuse eraldi tabelitesse!-->
        <ul>
          <Table>
            <tr>
              <th>Nimi</th>
              <th>Kestvus</th>
              <th>Hind</th>
            </tr>

            <xsl:for-each select="Salong/Teenused/Teenus">
              <xsl:if test="@Tyyp='Mees'">
                <tr>
                  <td>
                    <xsl:value-of select="./Nimi"/>
                  </td>
                  <td>
                    <xsl:value-of select="./Hind"/>
                  </td>
                  <td>
                    <xsl:value-of select="./Kestvus"/>
                  </td>
                </tr>
              </xsl:if>
            </xsl:for-each>
          </Table>
        </ul>
        <h2>Naistele</h2>
        <ul>
          <Table>
            <tr>
              <th>Nimi</th>
              <th>Kestvus</th>
              <th>Hind</th>
            </tr>

            <xsl:for-each select="Salong/Teenused/Teenus">
              <xsl:if test="@Tyyp='Naine'">
                <tr>
                  <td>
                    <xsl:value-of select="./Nimi"/>
                  </td>
                  <td>
                    <xsl:value-of select="./Hind"/>
                  </td>
                  <td>
                    <xsl:value-of select="./Kestvus"/>
                  </td>
                </tr>
              </xsl:if>
            </xsl:for-each>
          </Table>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
</?xml>

Veebiteenuse analüüs

Meie veebiteenuse eesmärk klientide broneeringuid ja nende kasutajate kontaktandmeid/logineid. Teenus peab võimaldama kasutajal veebirakenduses sisselogida, kasutades emaili aadressi ja parooli. Andmebaasis hoiame me broneeringuid(telefoninr, nimi, kellaaeg, teenus, kas makstud), pakutavaid teenuseid ja kasutajate paroole/emaile (adminid) . Veebiteenus võimaldab meil suhelda veebirakenduse ja andmebaasi vahel,tagastada ja muuta informatsiooni teenuste/broneeringute ja kasutajaandmete kohta. Veebiteenus aitab meil kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes. Samuti peab olema võimalik veebiteenuse poole pöördumiste arvu piiramist ja piirangute haldamist teostada.

Andmebaasiskeem

Rakenduse sisu

Rakenduse funktsionaalsus kliendina:
on võimalik näha olemasolevaid broneeringuid.
on võimalik broneeringuid kustutada.
on võimalik lisada uusi teenuseid (koos hinna, kirjelduse ja kestvusega)


Rakenduse funktsionaalsus tavakasutajana (ilusalongi kliendina):
on võimalik teha broneeringuid ja neid kuni 24h enne broneeringu algust kustutada.
on võimalik näha vabasid aegu.
on võimalik näha pakutavaid teenuseid (hinda, kestvust, kirjeldust).
on võimalik saada 24h enne broneeringu algust meeldetuletus


Rakenduses peaksid olema järgmised võimalused (Must have):
1. Meil on olemas kasutajad, kellega saab sisse logida
2. Broneeringuid on võimalik eemaldada.
3. On võimalik näha pakutavaid teenuseid (hinnakirja, maksuvust, kestvust)
4. On võimalik lisada, eemaldada ja muuta pakutavaid teenuseid
5. Kliendil on võimalik näha vabasid aegu oma soovitud teenusele.

Rakenduses võiksid olla lisavõimalused (Nice to have):
1. Kasutajale saadetakse päev enne broneeringut meeldetuletus
2. Kasutajale saab panna meeldetuletuse, kuna broneerida järgmine juukselõikus (või mõni muu teenus)
3. On võimalik registreerida kasutades sotsiaalmeediat
4. Võimalus registreerida uusi kasutajaid (adminid)
5. Võimalus tellida uus parool oma kasutajale, kui see ununeb (adminid).
6. Võimalus saata kliendile arveid pakutud teenuste eest
7. Kasutaja saab broneerida mitu teenust ühe broneeringuga


Rakendus ja veebiteenus

On võimalik alla tirida siit. [1]