Flauto: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(25 intermediate revisions by the same user not shown)
Line 336: Line 336:


== Veebiteenus ==
== Veebiteenus ==
Veebiteenuse "pakend" asub dropboxis:
https://www.dropbox.com/s/eqe1tsg8oyah2c9/Taimeravi.rar?dl=0
===Soovitatav kasutusjuhend koos kommentaaridega:===
* näpuotsatäis testandmeid mõnede olemite kohta paikneb ConsoleTestApp´is, mille võiks käivitada. Hetkeks peaks sel juhul „tagasi kommenteerima“ save-meetodi EFRepository´s ja rea „repository.save“ ConsoleTestApp Program.cs-is
* GET meetodid ei nõua autoriseerimist, seega URL-ilt peaks saama ilusti kätte. Vahel tuleb esmasel käivitamisel veateade, mis peale refresh´i peaks kaduma. Süveneda veateatesse ei ole olnud aega, kuskilt realt käis läbi „lazy loading“, mis tekitas küsimuse, et kas BLL kihis DTO-des peaks äkki olemite sidumisel kasutama samuti märksõna „virtual“ (mina seda ei kasutanud). ps. Autoriseerimisega seotud controlleritele unustasin lisada [Authorize] :), ent kõik oli juba pakitud ja dropbox-isse üles laetud, seega hetkel ei hakanud neid muutma.
* Fiddleriga saab testida kasutaja loomist ning POST meetodeid. Mul töötasid. Mingil põhjusel PUT meetodi väheselmääral testimine ebaõnnestus. Võibolla kasutasin vale süntaksi.
Teenus on veel poolik ja toores. Võrreldes praktikumides tehtuga jäid realiseerimata BLL services. Autoriseerimise poole olemus on veel üsna tundmatu maa. Tänud Akaverile, kelle tehtut lahkelt oli lubatud tarbida ! Nlog sai külge pandud, aga kas ja kuidas seda kasutada, ei ole jõudnud endale veel selgeks teha.


=== Kirjeldus ===
=== Kirjeldus ===
Line 346: Line 354:
* autor
* autor
* allikas  
* allikas  
* viitamine
* kasutaja
* kasutaja


Line 368: Line 377:
* nimetus
* nimetus
* valmistamine
* valmistamine
* tüüp
See saab tõenäoliselt olema library-tüüpi loetelu, mida täidab ainult  
See saab tõenäoliselt olema library-tüüpi loetelu, mida täidab ainult  
administraator. Nimetuse variandid on näiteks: tee, leotis, tõmmis, tinktuur, ekstrakt, keedis jms.
administraator. Nimetuse variandid on näiteks: tee, leotis, tõmmis, tinktuur, ekstrakt, keedis jms.
Valmistamise korral on lühikirjeldus ilma kogusteta ning valmistusajata,  
Valmistamise korral on lühikirjeldus ilma kogusteta ning valmistusajata,  
näiteks keedise saamine eeldab taime keetmist, tinktuur eeldab taime segamist viinaga jne.
näiteks keedise saamine eeldab taime keetmist, tinktuur eeldab taime segamist viinaga jne.
Tüübi all mõtlen esialgu ravimi kas seespidiselt või välispidiselt kasutamist, ehkki võimalik,
et see täpsustus peab minema mõnda teise tabelisse. Võibolla raviviisi kasutamine kas välis-
või seespidiselt sõltub siiski taimest. Uurin tarkadest raamatutest järgi :)


==== ''Ravimine'' ====
==== ''Ravimine'' ====
* tarvitamine
* kommentaar
* tüüp
* alates ?
* kuni ?
Ravimine paneb kokku taime, näidustuse, raviviisi, viite ja lisab sellele konkreetsel juhul
toimiva kirjelduse, kuidas tarvitada. St koostisosade kogused ning valmimisaeg.
Samuti kui sageli ja millistes kogustes tarvitada. Kasutaja sisestab selle kõik
nö vabas vormis. Kommentaar pakub kasutajale võimalust jagada oma kogemusi või
anda muud täpsustavat informatsiooni.
Tüübi all mõtlen kas seespidiselt või välispidiselt kasutamist.
Kuna Raspel soovitab ainult sisenevate otsadega olemile lisada ka "alates" ja "kuni",
siis võibolla lisan ka need väljad.
==== ''Autor'' ====
==== ''Autor'' ====
* eesnimi
* perenimi
* amet
* kommentaar
Esialgu ma ei tekita ühtset "person" tabelit, vaid eraldi on siiski
autor ja kasutaja, kuna mõlemal juhul olulised andmed on üsna
erinevad. Autor näitab informatsiooni päritolu. Võib olla ka suuline pärimus,
näiteks info vanaemalt. Autor lisab informatsioonile usaldusväärsust.
Autori lisamine ei ole siiski kohustuslik.
==== ''Allikas'' ====
==== ''Allikas'' ====
* pealkiri
* tüüp
* avaldatud
* kommentaar
Tüüp on library-tüüpi loetelu, mille sisestab administraator.
Võimalikud valikud on näiteks: raamat, artikkel, veebileht, raadio, televisioon,
suuline pärimus.
Avaldatud ei ole võibolla kõige parem sõna, aga hetkel parem puudub. Selle all
mõeldakse kas aastat (raamat) või formaati kuupäev/kuup/aasta (artikkel, raadiosaade vms).
==== ''Viitamine'' ====
Liidab tabelid "allikas" ja "autor".
==== ''Kasutaja'' ====
==== ''Kasutaja'' ====
* eesnimi
* perenimi
* kasutajanimi
* parool
* email
* telefon
* tüüp
* alates ?
* kuni ?
Kasutajaid on nagu öeldud 2 tüüpi: administraator ja tavakasutaja, kes võib olla nii
lugeja kui sisestaja. Iseenesest vist peaks olema lisaks veel ka autentimata kasutaja,
kes saab lihtsalt andmeid lugeda ?
== Retsensioon ==
===Retsensioon 2 in 1 veebirakendus ja klientrakendus===
'''Meeskond:Valar Morghulis'''<br/>
'''Solution: KVK'''<br/>
Analüüsiksin tervikuna projekti KVK, mis on „toodetud“ meeskond Valar Morghulis poolt, mis omakorda koosneb täpselt ühest liikmest (Urmas Hoogma).
Projekti kirjeldusest torkab silma, et ette on võetud kahe aine üheaegne realiseerimine uurimisobjektiks olevas projektis. Projekt on väga mahukas ning põhjalikust logist nähtub, et asja juurde on asutud päris alguses. Kõik loengutes läbitud teemad ning praktikumides tehtud näited on KVK projektis realiseeritud sisuliselt paari päeva kuni nädalase intervalliga ;)
Konsoolirakendust mul esimese hooga käivitada ei õnnestu, näib olevat mingi Ninjecti versiooni mittevastavus „minu“ Ninjectiga.
Projekti ülesehitus ning struktureeritus on täpselt minu maitse järgi. Üldse on näha, et asjad on korralikult läbi mõeldud, üheks näiteks võib kasvõi tuua atribuudi „Authorize“ kaalutletud kasutamise. Samuti on meeldiv, et siin-seal on märgata viiteid originaalautorlusele (mh A.Käver).
Kogu VR2 aines nõutu erinevate arendusmustrite rakendamise osas on minu arvates täies mahus täidetud. Eraldi kihid on loodud nii äriloogikaga kui ka andmebaasiga tegelejatele.
Kõige enam näib olevat arendatud nö Administraatori liidest. Hoolimata sellest, et palju funktsionaalsust on veel realiseerimata, on siiski ühe inimese projekti kohta aukartustäratavalt palju juba realiseeritud. On lisatud keele valik (eesti, inglise). Kasutajaks registreerumine toimub ilma probleemideta, abiks on mõistlikud veateated. Mõnede testprojektide puhul on mind häirinud jaburad turvanõuded parooli osas. Selle projekti puhul oli ka see pisike detail läbimõeldud (piisas 6-tähelisest lihtsast paroolist). Ka kujundusega on tegeletud.
Proovisin esitada küsimust st. https://localhost:44300/Questions/Create
Sain veateate: ''The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Question_dbo.AppUser_AskedById". The conflict occurred in database "KvkDB2015-2", table "dbo.AppUser", column 'AppUserId'.''
Uue küsimuse staatuse loomine aga õnnestus (st https://localhost:44300/QuestionStatus/Create )
Administraatori kasutajaliidesest on ilusti näha, et realiseeritud on ka autentimine/autoriseerimine. Hetkel projekti testimiseks täiesti piisaval määral.
ps. minu poolt testitud projekt on alla tõmmatud kuskil mai lõpus, seega tõenäoliselt mitmeid projektis esinevaid vigasid on tänaseks juba oluliselt parandatud.
Üldiselt arvestades projekti mahukust, on tööd tehtud kõvasti. Ainus asi, mis selle projekti puhul minu jaoks arusaamatuks jääb, on asja sisu ise :)

Latest revision as of 21:10, 16 June 2015

Meeskond Flauto

  • Lelet Hollo

XML failis on valikuline info Eesti veinitootjate kohta. Loetelus on Google otsingu tulemusena leitud 5 suuremat veinitööstust, puuduvad väiketootjad ja veinitalud. Info internetis on veinitootjate kohta üsnagi puudulik, näiteks Tarco Vein AS toodetavate veinide osas teave praktiliselt puudub ja nende kodulehe viide infomaterjalides suunab lehele estiko.ee, mis on Tartu kinnisvara haldusega ning pakkematerjalide tootmisega tegelev ettevõte. Ka AS Karme (Karksi veinid) koduleht on uuendamisel ning nende veinide osas oli info saadaval vaid pildimaterjalina. Mitmed veinitööstused on ka tegevuse lõpetanud või mõne suurema ettevõttega ühinenud.

XML

XML

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="veinitootjad.xslt"?>
<veinitootjad>
  <veinitootja id="1" regKood="10215730">
    <nimi>Karme AS</nimi>
    <koduleht><![CDATA[www.karksi.com]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="11" maht="750" yhik="ml">Karksi Jõhvikavein</toode>
        <toode vol="11" maht="750" yhik="ml">Karksi Kirsivein</toode>
        <toode vol="11" maht="750" yhik="ml">Karksi Mustasõstravein</toode>
      </tooteLiik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="2" regKood="10034030">
    <nimi>Põltsamaa Felix AS</nimi>
    <koduleht><![CDATA[www.felix.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Tõmmu</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Punane</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kuldne</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 19</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 28</toode>
        <toode vol="11" maht="750" yhik="ml">Põltsamaa Lossivein 85</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kirsisuudlus</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Vaarikamusi</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa Kuldne 2005</toode>
        <toode vol="14" maht="500" yhik="ml">Põltsamaa tõmmu</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="14" maht="700" yhik="ml">Põltsamaa Klassikaline Glögg</toode>
        <toode vol="4.5" maht="1" yhik="l">Põltsamaa Glögg</toode>
        <tooteliik tyyp="vein">
          <nimetus><![CDATA[vahuveinid]]></nimetus>
          <toode vol="8.5">Põltsamaa Fest Classic</toode>
        </tooteliik>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="3" regKood="10229471">
    <nimi>Võhu Vein AS</nimi>
    <koduleht><![CDATA[www.vohuvein.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="12" maht="500" yhik="ml">Valgesõstravein</toode>
        <toode vol="12" maht="500" yhik="ml">Mustsõstravein</toode>
        <toode vol="12" maht="500" yhik="ml">Rabarberivein</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[viinamarjaveinid]]></nimetus>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[kangendatud puuviljaveinid]]></nimetus>
        <toode vol="19" maht="500" yhik="ml">Munga Kirsipisar</toode>
        <toode vol="18" maht="500" yhik="ml">Sõstravein Kange</toode>
        <toode vol="21" maht="500" yhik="ml">21 punane</toode>
        <toode vol="18" maht="500" yhik="ml">Wiru Karge Winemix Blackcurrant</toode>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="13" maht="750" yhik="ml">Hõõguv Helbeke</toode>
      </tooteliik>
      <tooteliik tyyp="siider">
        <nimetus><![CDATA[siidrid]]></nimetus>
        <toode vol="5.5" maht="750" yhik="ml">Pirni Siider Fresh</toode>
        <toode vol="5.5" maht="750" yhik="ml">Õuna Siider Fresh</toode>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="4" regKood="10060078">
    <nimi>Tarco Vein AS</nimi>
    <koduleht><![CDATA[www.estiko.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja- ja marjaveinid]]></nimetus>
        <toode vol="0" maht="0" yhik="0">Info puudub</toode>
      </tooteLiik>
    </tooteLiigid>
  </veinitootja>
  <veinitootja id="5" regKood="10067318">
    <nimi>Valtu Vein AS</nimi>
    <koduleht><![CDATA[www.karastusjoogid.ee]]></koduleht>
    <tooteLiigid>
      <tooteLiik tyyp="vein">
        <nimetus><![CDATA[puuvilja-marjaveinid]]></nimetus>
        <toode vol="11" maht="700" yhik="ml">Tegija Kirsi</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Vaarika</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Mustasõstra</toode>
        <toode vol="11" maht="700" yhik="ml">Tegija Jõhvika</toode>
        <toode vol="13" maht="700" yhik="ml">Pohlavein</toode>
        <toode vol="13" maht="700" yhik="ml">Kirsivein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Mustasõstravein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Jõhvikavein</toode>
        <toode vol="13" maht="700" yhik="ml">Valtu Ebaküdooniavein</toode>
        <toode vol="14" maht="500" yhik="ml">Rubiin</toode>
        <toode vol="14" maht="500" yhik="ml">Jõhvikavein</toode>
        <toode vol="14" maht="500" yhik="ml">Ebaküdooniavein</toode>
      </tooteLiik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[kangendatud puuvilja-marjaveinid]]></nimetus>
        <toode vol="19" maht="500" yhik="ml">Kõuts - kange õunavein</toode>
        <toode vol="19" maht="500" yhik="ml">Susi - kange sõstravein</toode>
        <toode vol="19" maht="500" yhik="ml">Sõnn - kange õuna-jõhvikavein</toode>
        <toode vol="19" maht="500" yhik="ml">Jäär - kange õuna-ebaküdooniavein</toode>
        <toode vol="18" maht="500" yhik="ml">Krants - kange õuna-kirsivein</toode>
        <toode vol="22" maht="500" yhik="ml">Kult - kange õuna-pohlavein</toode>
        <toode vol="22" maht="700" yhik="ml">Ardam</toode>
      </tooteliik>
      <tooteliik tyyp="vein">
        <nimetus><![CDATA[hõõgveinid]]></nimetus>
        <toode vol="11" maht="700" yhik="ml">Glögg Talvenauding</toode>
        <toode vol="14" maht="700" yhik="ml">Hõõgvein Riina</toode>
      </tooteliik>
      <tooteliik tyyp="siider">
        <nimetus><![CDATA[siidrid]]></nimetus>
      </tooteliik>
      <tooteliik tyyp="viin">
        <nimetus><![CDATA[viinad]]></nimetus>
      </tooteliik>
    </tooteLiigid>
  </veinitootja>
</veinitootjad>

XML Skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="veinitootjad">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="veinitootja">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nimi" type="xs:string" />
              <xs:element name="koduleht" type="xs:string" />
              <xs:element name="tooteLiigid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="tooteLiik">
                      <xs:complexType mixed="true">
                        <xs:sequence minOccurs="0">
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element maxOccurs="unbounded" name="toode">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="vol" type="xs:decimal" />
                                  <xs:attribute name="maht" type="xs:integer" />
                                  <xs:attribute name="yhik" type="xs:string" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="tyyp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" maxOccurs="unbounded" name="tooteliik">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element minOccurs="0" maxOccurs="unbounded" name="toode">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="vol" type="xs:decimal" />
                                  <xs:attribute name="maht" type="xs:integer" />
                                  <xs:attribute name="yhik" type="xs:string" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0" name="tooteliik">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="nimetus" type="xs:string" />
                                <xs:element name="toode">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="vol" type="xs:decimal" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="tyyp" type="xs:string" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="tyyp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:positiveInteger" use="required" />
            <xs:attribute name="regKood" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XML stiilifail 1

<?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>Eesti veinitööstus</title>
        </head>
        <body>
          <h2 style="text-decoration:underline">Eesti veinitootjate lühikirjeldus</h2>
          <xsl:for-each select="veinitootjad/veinitootja">
            <h2 style="color:#660066"><xsl:value-of select="nimi"/></h2>
             Koduleht: <xsl:value-of select="koduleht"/>
            <br></br>
            <br></br>
            Tooteliigid:
            <br></br>
            <xsl:for-each select="tooteLiigid//nimetus">
              <ul>
              <li><xsl:value-of select="."/>
                <xsl:text> </xsl:text>
              </li>
              <br></br>
              </ul>
            </xsl:for-each>
          </xsl:for-each>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Vaatefail: Eesti veinitootjad

XML stiilifail 2

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="/">
    <html>
      <head>
        <title>Eesti veinid</title>
      </head>
      <body>
        <h2>Eesti veinitootjate veinid</h2>
        <xsl:for-each select="veinitootjad/veinitootja">
          <h3 style="color:#660066">
            Tootja: <xsl:value-of select="nimi"/>
          </h3>
          <table border="1" cellpadding="4">
            <tr bgcolor="#FF6666">
              <th>Nimetus</th>
              <th>Kangus, vol</th>
              <th>Maht</th>
              <th>Ühik</th>
            </tr>
            <xsl:for-each select="tooteLiigid//toode">
              <tr>
                <td>
                  <xsl:value-of select="."/>
                </td>
                <td>
                  <xsl:value-of select="@vol"/>
                </td>
                <td>
                  <xsl:value-of select="@maht"/>
                </td>
                <td>
                  <xsl:value-of select="@yhik"/>
                </td>
              </tr>
            </xsl:for-each>
          </table>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Vaatefail: Eesti veinid

Retsensioon meeskonnale "Anonüümsed koodikommentaatorid"

Võtan endale raske ülesande retsenseerida ideaalilähedaselt ja perfektselt teostatud kodutööd meeskonna Anonüümsed Koodikommentaatorid teostuses. Esmalt väike tähelepanek, et väga sarnane antud tööga on meeskond Vertigo kodutöö, mis on samuti (küll isiklikult pikemalt süvenemata, ent olemasoleva retsensiooni põhjal otsustades), hästi ning korrektselt teostatud.

Anonüümsed Koodikommentaatorid lähevad aga mõne sammu veel rohkem süvitsi elementide dimensioonide osas ning erinevusena nende xml-elemendid on eestikeelsed. Samuti on lisatud faili kasutamist rikastavad meediaelemendid.

Analüüsitaval xml-failil on 6 dimensiooni, 3-l elemendil on kasutatud atribuute (film, naitleja, pilt), kõik õppejõu poolt soovitu on seega täidetud. XML fail on elementide ning sisu poolest väga mitmel erineval moel kasutatav ning infot on palju, see ei ole lihtsalt kodutöö „ärategemise“ eesmärke täitev dokument. Sisu erineval moel kasutamist on oskuslikult ära kasutatud ka stiilifailides.

Ainus mulle sisuliselt arusaamatuks jääv asi on näitleja potentsiaalne jagamine erinevatesse rollidesse. Esiteks on failist näha, et ühe näitleja esinemine mitmes rollis näites olevate filmide kohaselt ei ole põhjendatud ning teiseks ka reaalelus ei meenu mulle kuigipalju (hetkel ühtegi) filmi, kus ühel näitlejal oleks mitu rolli. See on rohkem teatrilavade omapära. Siiski - „pigem karta kui kahetseda“ - ning veaks ei saa seda kuskilt otsast lugeda, väikese eelarvega filmis võib sellist jagunemist siiski vaja minna.

Skeemifaili osas samuti probleeme ei leia, jällegi sisuliselt võib arutleda, kas <xs:attribute name="peaosa" use="required"> puhul „required“ on põhjendatud. Mõnede filmide puhul (nt Tarantino) võib olla peaosaliste määratlemine mõnevõrra raskendatud, nimekiri võib saada pikk või valikuliselt näitlejate nimetamine olla ebaõiglane. Samas kuna peaosaline on siiski filmi tõmbenumber, on tema esiletoomine oluline.

Ja last but not least – selle töö kõige magusam osa on põhjalikult ette võetud ja kaunilt teostatud kujundus. Stiilifailides on täiendava lisajõuna kasutatud eraldi css-faili, mis võimaldab visuaalses plaanis ilmselgelt mõnevõrra rohkem. Ainus asi, mis silma häirima jääb (kui vigu otsida), on <li> elementide (atribuut aasta ning element zanr) ette Mozilla ning Explorer brauseris tekkivad „täpikesed“ ehk listi punktid. Chrome neid mingil põhjusel ei ilmuta. Ülejäänud brausereid ei proovinud. Kehtib mõlema stiilifaili puhul.

Pisimärkustest hoolimata on tegu väga heatasemelise tööga, mille puhul jääb mulje, et tehnika ühtki loomingulist ideed ei kammitse ning kõik, mida ette võtta on soovitud, on lendleva kergusega ka realiseeritud.

ps. wiki lehekülje ajalugu näitab, et kõik materjal on üles pandud Olle Miku poolt. Küsimus panustamise osas konkreetselt selles kodutöös jätab seega küsimärgid seinale ;)

Veebiteenus

Veebiteenuse "pakend" asub dropboxis: https://www.dropbox.com/s/eqe1tsg8oyah2c9/Taimeravi.rar?dl=0

Soovitatav kasutusjuhend koos kommentaaridega:

  • näpuotsatäis testandmeid mõnede olemite kohta paikneb ConsoleTestApp´is, mille võiks käivitada. Hetkeks peaks sel juhul „tagasi kommenteerima“ save-meetodi EFRepository´s ja rea „repository.save“ ConsoleTestApp Program.cs-is
  • GET meetodid ei nõua autoriseerimist, seega URL-ilt peaks saama ilusti kätte. Vahel tuleb esmasel käivitamisel veateade, mis peale refresh´i peaks kaduma. Süveneda veateatesse ei ole olnud aega, kuskilt realt käis läbi „lazy loading“, mis tekitas küsimuse, et kas BLL kihis DTO-des peaks äkki olemite sidumisel kasutama samuti märksõna „virtual“ (mina seda ei kasutanud). ps. Autoriseerimisega seotud controlleritele unustasin lisada [Authorize] :), ent kõik oli juba pakitud ja dropbox-isse üles laetud, seega hetkel ei hakanud neid muutma.
  • Fiddleriga saab testida kasutaja loomist ning POST meetodeid. Mul töötasid. Mingil põhjusel PUT meetodi väheselmääral testimine ebaõnnestus. Võibolla kasutasin vale süntaksi.

Teenus on veel poolik ja toores. Võrreldes praktikumides tehtuga jäid realiseerimata BLL services. Autoriseerimise poole olemus on veel üsna tundmatu maa. Tänud Akaverile, kelle tehtut lahkelt oli lubatud tarbida ! Nlog sai külge pandud, aga kas ja kuidas seda kasutada, ei ole jõudnud endale veel selgeks teha.

Kirjeldus

Info ravimtaimede kasutusvõimaluste kohta erinevate haigusnähtude või probleemide korral. Teenusel on esialgsete plaanide kohaselt 2 tüüpi kasutajad: administraator(id) ja tavakasutajad. Tavakasutaja saab teha otsingu nii taime nime kui näidustuse järgi, samuti saab ta ise lisada ravimtaimi koos vastava näidustusega. Teatud tabelitesse saab infot lisada ainult administraator. Algusjärgusolevate plaanide kohaselt peavad kindlalt eksisteerima järgmised olemid:

  • ravimtaim
  • näidustus
  • raviviis
  • ravimine
  • autor
  • allikas
  • viitamine
  • kasutaja

Olemid

Ravimtaim

  • nimetus eesti keeles
  • nimetus ladina keeles

Siin tabelis võib probleem tekkida taimede erineva võimaliku nimetusega, näiteks kas "naistepuna" või "liht-naistepuna". Seetõttu igaks juhuks ka ladina keelne nimi, mis ei ole siiski kohustuslik. Sisestamisel peab teenus pakkuma andmebaasis olevaid vasteid sisestatavale nimele. Küsimus on, millisel hetkel ja kui varakult ta peaks juba hakkama sarnasust tabelist otsima.

Näidustus

  • nimetus

Siin tekib sama küsimus, mis taimenimede puhul, et ühel haigusel võib sisuliselt olla mitu nimetust. Ja kas saab ühte patta panna näiteks peavalu ning migreeni ? Samuti võib kirjutada üldiselt "nahaprobleemid" või spetsiifilisemalt "ekseem", "psoriaas", "akne" jms.

Raviviis

  • nimetus
  • valmistamine

See saab tõenäoliselt olema library-tüüpi loetelu, mida täidab ainult administraator. Nimetuse variandid on näiteks: tee, leotis, tõmmis, tinktuur, ekstrakt, keedis jms. Valmistamise korral on lühikirjeldus ilma kogusteta ning valmistusajata, näiteks keedise saamine eeldab taime keetmist, tinktuur eeldab taime segamist viinaga jne.

Ravimine

  • tarvitamine
  • kommentaar
  • tüüp
  • alates ?
  • kuni ?

Ravimine paneb kokku taime, näidustuse, raviviisi, viite ja lisab sellele konkreetsel juhul toimiva kirjelduse, kuidas tarvitada. St koostisosade kogused ning valmimisaeg. Samuti kui sageli ja millistes kogustes tarvitada. Kasutaja sisestab selle kõik nö vabas vormis. Kommentaar pakub kasutajale võimalust jagada oma kogemusi või anda muud täpsustavat informatsiooni. Tüübi all mõtlen kas seespidiselt või välispidiselt kasutamist. Kuna Raspel soovitab ainult sisenevate otsadega olemile lisada ka "alates" ja "kuni", siis võibolla lisan ka need väljad.

Autor

  • eesnimi
  • perenimi
  • amet
  • kommentaar

Esialgu ma ei tekita ühtset "person" tabelit, vaid eraldi on siiski autor ja kasutaja, kuna mõlemal juhul olulised andmed on üsna erinevad. Autor näitab informatsiooni päritolu. Võib olla ka suuline pärimus, näiteks info vanaemalt. Autor lisab informatsioonile usaldusväärsust. Autori lisamine ei ole siiski kohustuslik.

Allikas

  • pealkiri
  • tüüp
  • avaldatud
  • kommentaar

Tüüp on library-tüüpi loetelu, mille sisestab administraator. Võimalikud valikud on näiteks: raamat, artikkel, veebileht, raadio, televisioon, suuline pärimus. Avaldatud ei ole võibolla kõige parem sõna, aga hetkel parem puudub. Selle all mõeldakse kas aastat (raamat) või formaati kuupäev/kuup/aasta (artikkel, raadiosaade vms).

Viitamine

Liidab tabelid "allikas" ja "autor".

Kasutaja

  • eesnimi
  • perenimi
  • kasutajanimi
  • parool
  • email
  • telefon
  • tüüp
  • alates ?
  • kuni ?

Kasutajaid on nagu öeldud 2 tüüpi: administraator ja tavakasutaja, kes võib olla nii lugeja kui sisestaja. Iseenesest vist peaks olema lisaks veel ka autentimata kasutaja, kes saab lihtsalt andmeid lugeda ?

Retsensioon

Retsensioon 2 in 1 veebirakendus ja klientrakendus

Meeskond:Valar Morghulis
Solution: KVK
Analüüsiksin tervikuna projekti KVK, mis on „toodetud“ meeskond Valar Morghulis poolt, mis omakorda koosneb täpselt ühest liikmest (Urmas Hoogma).

Projekti kirjeldusest torkab silma, et ette on võetud kahe aine üheaegne realiseerimine uurimisobjektiks olevas projektis. Projekt on väga mahukas ning põhjalikust logist nähtub, et asja juurde on asutud päris alguses. Kõik loengutes läbitud teemad ning praktikumides tehtud näited on KVK projektis realiseeritud sisuliselt paari päeva kuni nädalase intervalliga ;)

Konsoolirakendust mul esimese hooga käivitada ei õnnestu, näib olevat mingi Ninjecti versiooni mittevastavus „minu“ Ninjectiga. Projekti ülesehitus ning struktureeritus on täpselt minu maitse järgi. Üldse on näha, et asjad on korralikult läbi mõeldud, üheks näiteks võib kasvõi tuua atribuudi „Authorize“ kaalutletud kasutamise. Samuti on meeldiv, et siin-seal on märgata viiteid originaalautorlusele (mh A.Käver).

Kogu VR2 aines nõutu erinevate arendusmustrite rakendamise osas on minu arvates täies mahus täidetud. Eraldi kihid on loodud nii äriloogikaga kui ka andmebaasiga tegelejatele.

Kõige enam näib olevat arendatud nö Administraatori liidest. Hoolimata sellest, et palju funktsionaalsust on veel realiseerimata, on siiski ühe inimese projekti kohta aukartustäratavalt palju juba realiseeritud. On lisatud keele valik (eesti, inglise). Kasutajaks registreerumine toimub ilma probleemideta, abiks on mõistlikud veateated. Mõnede testprojektide puhul on mind häirinud jaburad turvanõuded parooli osas. Selle projekti puhul oli ka see pisike detail läbimõeldud (piisas 6-tähelisest lihtsast paroolist). Ka kujundusega on tegeletud.

Proovisin esitada küsimust st. https://localhost:44300/Questions/Create Sain veateate: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Question_dbo.AppUser_AskedById". The conflict occurred in database "KvkDB2015-2", table "dbo.AppUser", column 'AppUserId'.

Uue küsimuse staatuse loomine aga õnnestus (st https://localhost:44300/QuestionStatus/Create ) Administraatori kasutajaliidesest on ilusti näha, et realiseeritud on ka autentimine/autoriseerimine. Hetkel projekti testimiseks täiesti piisaval määral.

ps. minu poolt testitud projekt on alla tõmmatud kuskil mai lõpus, seega tõenäoliselt mitmeid projektis esinevaid vigasid on tänaseks juba oluliselt parandatud.

Üldiselt arvestades projekti mahukust, on tööd tehtud kõvasti. Ainus asi, mis selle projekti puhul minu jaoks arusaamatuks jääb, on asja sisu ise :)