Node

From ICO wiki
Jump to navigationJump to search

Meeskond Node

Meeskonna liikmed:

  • Stanislav Gorski
  • Meelis-Marius Pinka

Kodutöö XML osa 8.märts

XML osa täitmiseks võtsime näiteks retseptikogumiku, mis ei ole kuidagi seotud meie tulevase projektiga.

XML andmefail

<?xml version="1.0" encoding="utf-8" ?>
<Retseptid>
  <Retsept id="1">
    <Nimi>Pannkoogid</Nimi>
    <Kirjeldus>Pannkoogid moosiga, varajasteks pühapäeva hommikuteks</Kirjeldus>
    <Koostis>
      <Koostisosad>
        <Osa Kogus="4" Ühik="tk">Muna</Osa>
        <Osa Kogus="250" Ühik="g">Kohupiim</Osa>
        <Osa Kogus="150" Ühik="g">Jahu</Osa>
        <Osa Kogus="3" Ühik="tl">Suhkur</Osa>
        <Osa Kogus="1" Ühik="tl">Sool</Osa>
      </Koostisosad>
    </Koostis>
  </Retsept>
  <Retsept id="2">
    <Nimi>Kotletid</Nimi>
    <Kirjeldus>Hakklihast valmistatud kuumad kotletid</Kirjeldus>
    <Koostis>
      <Koostisosad>
        <Osa Kogus="500" Ühik="g">Hakkliha</Osa>
        <Osa Kogus="75" Ühik="g">Jahu</Osa>
        <Osa Kogus="2" Ühik="tk">Muna</Osa>
        <Osa>Riivsai</Osa>
      </Koostisosad>
    </Koostis>
  </Retsept>
    <Retsept id="3">
    <Nimi>Makaronid juustuga</Nimi>
    <Kirjeldus>Keedetud makaronid, riivjuustuga</Kirjeldus>
    <Koostis>
      <Koostisosad>
        <Osa Kogus="300" Ühik="g">Makaronid</Osa>
        <Osa Kogus="50" Ühik="ml">Vesi</Osa>
        <Osa Kogus="100" Ühik="g">Riivjuust</Osa>          
      </Koostisosad>
    </Koostis>
  </Retsept>
  <Retsept id="4">
    <Nimi>Risotto</Nimi>
    <Kirjeldus>Kergelt soolane, parajalt terav, indjapärane riisitoit</Kirjeldus>
    <Koostis>
      <Koostisosad>
        <Osa Kogus="1" Ühik="tl">Riis</Osa>
        <Osa Kogus="3" Ühik="tk">Tomat</Osa>
        <Osa Kogus="1" Ühik="tk">Paprika</Osa>
        <Osa Kogus="2" Ühik="tk">Sibul</Osa>        
      </Koostisosad>    
    </Koostis>
  </Retsept>
  <Retsept id="5">
    <Nimi>Kanaliha rull</Nimi>
    <Kirjeldus>Rulli keeratud kanaliha viilud, maitsestatud pipra ja soolaga</Kirjeldus>
    <Koostis>
      <Koostisosad>
        <Osa Kogus="300" Ühik="g">Kanaliha</Osa>
        <Osa Kogus="1" Ühik="tl">Pipar</Osa>
        <Osa Kogus="0.5" Ühik="tl">Sool</Osa>
      </Koostisosad>
    </Koostis>
  </Retsept>
</Retseptid>


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="Retseptid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="Retsept">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Nimi" type="xs:string" />
              <xs:element name="Kirjeldus" type="xs:string" />
              <xs:element name="Koostis">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Koostisosad">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="Osa">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="Kogus" type="xs:decimal" use="optional" />
                                  <xs:attribute name="Ühik" type="xs:string" use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


XSL fail 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>Retseptid</title>
      </head>
      <body>
        <h1>Retseptid</h1>
        <xsl:for-each select="/Retseptid/Retsept/Nimi">
          <xsl:variable name="CurrentNimi" select="."></xsl:variable>
          <h2>
            <xsl:value-of select="$CurrentNimi"/>
          </h2>
          
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Meeskonna poolt kirjutatud retsensioonid

WebAPI

Projekti idee oli luua Twitteri sotsiaalvõrgustiku kloon, mis võimaldab kasutajatel postitada sõnumeid ja jälgida teiste süsteemi kasutajate sõnumeid. Lisaks sellele on võimalik läbi API kommenteerida jälgitavate kasutajate sõnumeid. Süsteem suhtleb teiste rakendustega läbi APIKey ja Tokeni.

Klientrakendus

Klientrakendus on realiseeritud ASP NET ja Backbone.js hübriidina, rakenduse ülesandeks on suhelda meeskonna poolt arendatud WebAPI serveriga. Kasutaja autoriseerimiseks kasutatakse Tokeneid WebAPI ja ASP.NET suhtlemisel ja javascript poole jaoks kasutatkse ASP.NET poole peal Sessioone.

Peamised funktsionaalsused oleksid:

  • Kasutaja registreerimine
  • Uue kasutaja loomine
  • Sõnumite postitamine
  • Teiste kasutajate jälgimine
  • Enda profiili redigeerimine