Dot muzei

From ICO wiki
Revision as of 18:48, 4 April 2015 by Sniinepu (talk | contribs)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Liikmed

  1. Aap Kaur Suvi
  2. Indrek Jõgi
  3. Kristjan Veskimäe
  4. Sandra Niinepuu - projektijuht


XML andmefail

XML fail on Eksponaadid.xml, skeemifail on Eksponaadid.xsd ja transformatsioonifail on Eksponaadid.xslt. XML faili valideerimiseks skeemifailiga peavad mõlemad failid asuma ühes ja samas kataloogis (kuna skeemifaili asukohaks on XML faili päises määratud Eksponaadid.xsd).

XML fail

<?xml version="1.0" encoding="utf-8" ?>
<muuseumid>
  <!-- Andmed pärinevad http://muis.ee/catalogue -->
  
  <muuseum nimi="Eesti Sõjamuuseum" id="1">
    <muuseumikogu tyyp="Esemekogu">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="kinnas"><![CDATA["Labakinnas. M. Laidoneri (ema) kootud"]]></nimetus>
        <number><![CDATA["KLM ET 22 A 22"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="tääk"><![CDATA["Mälestusese, miniatuurne tääk, USA Air Cavalry Divisioni sümboolikaga."]]></nimetus>
        <number><![CDATA["KLM ET 365 A"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>
    <muuseumikogu tyyp="Tulirelvad">
      <eksponaat originaal="false" id="1">
        <nimetus olemus="tulirelv"><![CDATA["Otepää püss, koopia"]]></nimetus>
        <number><![CDATA["KLM ET 1421 R1 457"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="tulirelv"><![CDATA["Tank 34-85"]]></nimetus>
        <number><![CDATA["KLM ET 1603 R1 553"]]></number>
        <seisund>Rahuldav</seisund>
      </eksponaat>
    </muuseumikogu> 
  </muuseum>
  
  <muuseum nimi="Eesti Ajaloomuuseum" id="2">
    <muuseumikogu tyyp="Fotod">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="album"><![CDATA["Fotoalbum: Vene tsaariarmee - 141. Možaiski polk, polkovnik Aganjev, grupipildid, portreed, olustik, kohavaated, ettevalmistused lahinguteks, arstiabi, matused."]]></nimetus>
        <number><![CDATA["AM _ 59 F 5501/1-305"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="album"><![CDATA["Fotoalbum: "Kaks aastat Punaarmee Eesti korpust 1942-1944." Illustreeritud, venekeelsed pildiallkirjad."]]></nimetus>
        <number><![CDATA["AM _ 42 F 4100/1-270"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>
    <muuseumikogu tyyp="Mööblikollektsioon">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="mööbel"><![CDATA["Laste söögitool, XIX saj. lõpp"]]></nimetus>
        <number><![CDATA["AM _ 35566:1 Mb 1"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>    
  </muuseum>

</muuseumid>

XML skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="http://example.com/schemas/muuseumid/v1" 
           xmlns="http://example.com/schemas/muuseumid/v1" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           attributeFormDefault="unqualified" 
           elementFormDefault="qualified">
  <xs:element name="muuseumid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="muuseum">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="muuseumikogu">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="eksponaat">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="olemus" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="number" type="xs:string" />
                          <xs:element name="seisund">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="Hea"></xs:enumeration>
                                <xs:enumeration value="Rahuldav"></xs:enumeration>
                                <xs:enumeration value="Halb"></xs:enumeration>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="originaal" type="xs:boolean" use="required" />
                        <xs:attribute name="id" type="xs:integer" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="tyyp" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="nimi" type="xs:string" use="required" />
            <xs:attribute name="id" type="xs:integer" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT failid

Kõikide eksponaatide kohta käiv informatsioon

<?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>
        <body>
          <xsl:for-each select="muuseumid/muuseum">
            <h1>
              <xsl:variable name="nimi" select="@nimi"></xsl:variable>
              <xsl:value-of select="@nimi"/>
            </h1>
            <xsl:for-each select="muuseumikogu">
              <xsl:variable name="originaal" select="@originaal"></xsl:variable>
              <xsl:variable name="tyyp" select="@tyyp"></xsl:variable>
              <h2>
                <xsl:value-of select="@tyyp"/>
              </h2>
              <xsl:for-each select="eksponaat">
                <p>Nimetus: 
                  <xsl:value-of select="nimetus"/>
                </p>
                <p>
                  Number:
                  <xsl:value-of select="number"/>
                </p>
                <p>
                  Seisukord: 
                  <xsl:value-of select="seisund"/>
                </p>
                <p>------------</p>
              </xsl:for-each>

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

Tulemus

Informatsioon eksponaatide kohta, mis on originaalid ja heas korras

<?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>
      <body>
        <xsl:for-each select="muuseumid/muuseum">
          <h1>
            <xsl:variable name="nimi" select="@nimi"></xsl:variable>
            <xsl:value-of select="@nimi"/>
          </h1>
          <xsl:for-each select="muuseumikogu">
            <xsl:variable name="originaal" select="@originaal"></xsl:variable>
            <xsl:variable name="tyyp" select="@tyyp"></xsl:variable>
            <h2>
              <xsl:value-of select="@tyyp"/>
            </h2>
            <xsl:for-each select="eksponaat">
              <xsl:choose>
                <xsl:when test="@originaal = 'true' and seisund = 'Hea'">
                  <p>
                    Nimetus:
                    <xsl:value-of select="nimetus"/>
                  </p>
                  <p>
                    Number:
                    <xsl:value-of select="number"/>
                  </p>
                  <p>
                    Seisukord:
                    <xsl:value-of select="seisund"/>
                  </p>
                  <p>------------</p>
                </xsl:when>
                <xsl:otherwise>
                  <p>Eksponaat ei vasta tingimustele</p>
                </xsl:otherwise>
              </xsl:choose>
              
            </xsl:for-each>

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

Tulemus

Muuseumigiid Dot Muzei

Veebiteenuse analüüs

Lühikokkuvõte

Arendatavaks veebiteenuseks on muuseumigiid, mida saab kasutada läbi klientrakenduse nutiseadmes. Veebiteenusesse saab lisada palju muuseume, millel igaühel on oma andmebaas eksponaatidest, mida nad külastajale näitavad. Eksponaadil on ekspositsioonis juures number ja seda rakendusse sisestades saab muuseumis ringi jalutav külastaja vaadata eksponaadi kohta käivat infot oma nutiseadmest.

Mõisted

kasutaja - muuseumikülastaja

klient - muuseumi töötaja, kes haldab muuseumi eksponaate

admin - haldab muuseume ja kliente


Üldkirjeldus

Muuseum

Meil on muuseumid, mis võivad olla ajaloo- , kunsti-, sõja, arvuti-, auto- või mistahes muud muuseumid. Muuseumil on aadress, lahtiolekuajad ja piletihinnapoliitika.

Muuseumisse tulemiseks peab külastaja teadma muuseumi aadressi, asukohakaarti ning infot lahtiolekuaegade ja piletihindade kohta. Muuseumil ja selle hoonel on samuti oma lugu, mis külastajat võib huvitada.

Eksponaadid

Muuseumis on eksponaadid, mis on jaotatud muuseumi eksponaadialale siseruumides või toas. Jaotamispõhimõte võib olla kronoloogiline järjestus, temaatiline seos, ruumiline otstarbekus vms. Iga muuseum otsustab ise, kuidas eksponaadid grupeeritud on.

Igal eksponaadil on unikaalne number. Mille alusel eksponaadid nummerdatud on, otsustab iga muuseum ise. Eksponaate võib aja jooksul juurde tulla ja vähemaks jääda. Kasutuseta jäänud numbreid võib panna uutele eksponaatidele. Numeratsioon võib ka igas saalis uuesti alata. Eksponaat võib aja jooksul olla erinevates saalides ja isegi erinevates muuseumides (rändnäitused, laenamine).

Iga eksponaadi kohta on info tekstilisel kujul. Mõnikord on see ka sisse loetud audio kujule. Mõne eksponaadi kohta on fotosid või pildilist lisamaterjali.

Eksponaadid võivad olla omavahel seotud ja sel juhul viidatakse külastajale ühe eksponaadi juurest teise juurde.

Külastamine

Muuseumis käivad külastajad. Nad kasutavad ekspositsiooniga tutvumiseks veebiteenuse klientrakendust, kuhu ei pea sisse logima. Külastajad loevad või kuulavad infot eksponaatide kohta. Eksponaati, mille kohta infot saada, saab külastaja kergesti valida, sisestades selle numbri. Nad võivad mõned ruumis valida mitu eksponaati ja mõnes mitte ühtegi ja valikus ei pruugi mingit loogilist järjestust olla. Kui jutt on neile igav, katkestavad nad selle ja siirduvad järgmise asja juurde. Kui on huvitav, tahavad nad vaadata lisainfot. Külastaja võib valida ka nn tuuri, kus on juba paika pandud, mis järjestuses eksponaadid ja info nende kohta ilmub. Tuur võib olla saali- või teema vms põhine. Muuseumis orienteerumiseks kasutab külastaja mõnikord saaliplaani.

Kasutajad

Muuseumil on töötajad, kes on muusuemigiidi süsteemi kasutajad. Ühes muuseumis võib olla mitu inimest, kel on süsteemi kasutajaõigused. Üks kasutaja saab samale muuseumile kasutajaid juurde lisada (vrd. Facbookis enterprise lehe haldajad). Kasutajakonto on seotud konkreetse muuseumiga ja saa muuta ainult selle muuseumi asju.

Kasutajad saavad lisada andmebaasi eksponaate ja muuta nende andmeid. See käib haldusliidese kaudu. Sisestada saab tekstilist, pildilist, audio- ja videomaterjali. Pilte võib ühe eksponaadi kohta olla n+1. Selleks logivad nad sisse isikliku kasutajanime ja salasõnaga. Kasutajanimeks on meiliaadress.

Administraator

Administraator haldab oma kasutajaliidese kaudu kogu süsteemi. Ta saab lisada ja deaktiveerida muuseume ja samuti kasutajaid. Igal muuseumil on unikaalne võti.


Nõuded

MUST HAVE

Admin

  • Admin saab lisada uue muuseumi
  • Admin saab autoriseerida registeerunud uue kliendi
  • Admin saab muuta ja kustutada muuseumi

Klient

  • Kliendi (muuseumitöötaja) registeerumine
  • Kliendi (muuseumitöötaja) sisselogimine
  • Klient saab sisestada eksponaadi andmebaasi
  • Klient saab muuta ja kustutada eksponaati
  • Klient saab määrata eksponaadile saali (area) ja/või tuuri (tour)
  • Klient saab sisestada eksponaadi kohta tekstilist infot
  • Klient saab sisestada eksponaadi kohta audiofaili
  • Klient saab sisestada eksponaadi kohta pildifaili
  • Klient saab muuta ja kustutada infot eksponaadi kohta
  • Klient saab sisestada info muuseumi kohta
  • Klient saab muuta ja kustutada infot muuseumi kohta

Kasutaja

  • Kasutaja saab sisestada numbri ja näha eksponaati
  • Kasutaja saab valida saali ja näha, mis eksponaadid seal on
  • Kasutaja saab valida tuuri ja näha, mis eksponaadid seal on
  • Kasutaja saab liikuda mööda saali ja tuuri edasi ettemääratud järjekorras ühelt eksponaadilt teisele


NICE TO HAVE

Klient

  • Klient saab grupeerida eksponaate muu vabalt valitud kriteeriumi alusel

Kasutaja

  • Kasutaja saab bookmarkida esemeid ja neid hiljem vaadata
  • Kasutaja saab otsida esemeid märksõna järgi


UI stories

Klientrakendus

Kasutaja tuleb muuseumisse ja avab rakenduse

  • Kasutajale kuvatakse avavaade muuseumidega
  • Kasutaja saab valida muuseumite seast soovitu
  • Kasutaja saab otsida eksponaati

Kasutaja soovib tutvuda muuseumiga

  • Kasutajale kuvatakse vaade erinevatest saalidest muuseumis
  • Kasutaja saab saalide seast valida soovitu
  • Kasutaja saab saali kohta kuulata audio giidi
  • Kasutaja saab saali kohta lugeda lisainfot

Kasutaja soovib tutvuda eksponaadiga

  • Kasutajale kuvatakse vaade erinevatest eksponaatidest saalis
  • Kasutaja saab valida eksponaatide seast soovitu
  • Kasutajale kuvatakse vaade eksponaadi detailidest
  • Kasutaja saab kuulata audio tutvustust eseme kohta
  • Kasutaja saab minna läbi lingi veebilehele, kus kuvatakse lisainformatsiooni


Admin paneel

Administraator ehk veebiteenuse haldaja

  • Admin saab luua ja kustutada muuseumeid
  • Admin saab siduda kasutajaid muuseumitega lähtudes registeerumisest
  • Admin saab anda ja võtta kasutusõigusi kasutajatelt


Kliendi admin paneel

Muuseumipoolne admin ehk klient ehk muuseumi töötaja

  • Saab registreeruda
  • MuuseumiAdmin saab luua ja kustutada alasid ning eksponaate
  • MuuseumiAdmin saab muuta informatsiooni muuseumi kohta


Use cases

Erinevate kasutajate use case diagrammi leiab siit


UI flows

Kasutaja kasutusvoo leiab siit


Kasutaja vaated

Klientrakenduse muuseumi külastajale suunatud vaadete mockupid leiab siit


Andmebaasi ERD mudel

Andmebaasi skemaatilise mudeli leiab siit


Kasutatavad tehnoloogiad

ASP.NET Web API REST Unity framework ASP.NET Identity framework Entity framework JSON Angular


REST API

Veebiteenuse REST API asub siin



Veebiteenus

Klientrakendus