Screaming Magic Gnomes: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mhakkine (talk | contribs)
Mhakkine (talk | contribs)
No edit summary
Line 295: Line 295:


==Veebiteenuse analüüs==
==Veebiteenuse analüüs==
Meie veebiteenuse eesmärk klientide broneeringuid ja nende kasutajate kontaktandmeid/logineid. Teenus peab võimaldama kasutajal veebirakenduses sisselogida, kasutades kas kasutajanime või emaili-aadressi ja parooli. 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. 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.
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 303: 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 316: 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>
Line 322: Line 321:
6. Võimalus tellida uus parool oma kasutajale, kui see ununeb.<br>
6. Võimalus tellida uus parool oma kasutajale, kui see ununeb.<br>
7. Võimalus saata kliendile arveid pakutud teenuste eest<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>
8. Kasutaja saab broneerida mitu teenust ühe broneeringuga<br>
9. Kasutaja saab broneerida mitu teenust ühe broneeringuga<br>
9. Kliendil on võimalik näha vabasid aegu oma soovitud teenusele.<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>

Revision as of 13:57, 28 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. Võimalus registreerida uusi kasutajaid
6. Võimalus tellida uus parool oma kasutajale, kui see ununeb.
7. Võimalus saata kliendile arveid pakutud teenuste eest
8. Kasutaja saab broneerida mitu teenust ühe broneeringuga
9. 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