Dot muzei: Difference between revisions
No edit summary |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 376: | Line 376: | ||
===Andmebaasi ERD mudel=== | ===Andmebaasi ERD mudel=== | ||
Andmebaasi skemaatilise mudeli leiab [https://drive.google.com/file/d/ | Andmebaasi skemaatilise mudeli leiab [https://drive.google.com/file/d/0Bw0MunAOZHgQc0otR0JkUVBGRmM/view?usp=sharing siit] | ||
===Kasutatavad tehnoloogiad=== | |||
*ASP.NET Web API | |||
*REST | |||
*Unity framework | |||
*ASP.NET Identity framework | |||
*Entity framework | |||
*JSON | |||
*Angular | |||
Latest revision as of 18:50, 4 April 2015
Liikmed
- Aap Kaur Suvi
- Indrek Jõgi
- Kristjan Veskimäe
- 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>
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>
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