Netgroup: Difference between revisions
Line 7: | Line 7: | ||
== Idee == | == Idee == | ||
Esialgseks ideeks oli luua nn. "Middleman" teenus oksjoni või esemete müügiga tegelevatele veebisaitidele, mis vähendaks kliendi ja müüja vahelist pettuse riski, kuid lõpuks selgus, et antud idee läbiviimine osutub liiga mahukaks ning ei jõua tähtaegadeks valmis | |||
===Uus idee=== | |||
Kasutades Youtube API't luua teenus, mis võimaldab selle kasutajatel luua oma playliste. | |||
==Analüüs== | ==Analüüs== |
Revision as of 01:04, 10 June 2016
Liikmed
- Indrek Nurja
- Imre Teras
- Marek Kivikink
Idee
Esialgseks ideeks oli luua nn. "Middleman" teenus oksjoni või esemete müügiga tegelevatele veebisaitidele, mis vähendaks kliendi ja müüja vahelist pettuse riski, kuid lõpuks selgus, et antud idee läbiviimine osutub liiga mahukaks ning ei jõua tähtaegadeks valmis
Uus idee
Kasutades Youtube API't luua teenus, mis võimaldab selle kasutajatel luua oma playliste.
Analüüs
Veebirakendus on mõeldud netiostlejatele(nt Facebooki, Okidoki, osta.ee vms lehtedelt inimeselt - inimesele ostmine), kes hakkavad veebilehelt saama nö "middle-man" teenust. Põhieesmärgiks on vähendada pettuse riske ja võimalusi, kaasates mõlemaid osapooli, nii müüjat kui ka ostjat, tehingusse. Põhiideeks kuidas seda teenust pakkuda on hoida raha kinni, kuni ostja on saanud kauba kätte. Kui kaup on jõudnud ostjani, antakse raha müüjale kontole edasi, vastasel juhul tagastame raha ostjale.
Kasutatav tehnoloogia
Rakenduse sisu
"Must have":
"Nice to have":
Retsensioonid
Retsensioon XML
Meie poolt retsenseeritava XMLi ülesande esitas meeskond Undress Gaver ja nende projekti ideeks oli luua laohaldussüsteem, mis võimaldab selle kasutajatel esitada tellimusi. esitatud XML failis on neil arvete kohta sellist informatsiooni nagu: arve number, koostaja tellija, kuupäevad, juriidilist infot ja muud vajalikku, mis tavaliselt arve peal kuvatakse. Lisaks oli esitatud veel ka XSLT fail, mis tegi antud XML failist loetava arve. Arve enda kohapealt oleks võinud hoida tabeli kirjastiili läbivalt samana, kuna praegu on arvel kuvatud toote nimetused, kogused, ühikud ja hinnaga seotud lahtrid keskele joondu tekstiga, kuid summad ja käibemaksumäär paremale joondatud tekstiga, selle parandamiseks võiks need kolm lahtrit kas joondada vasakule, või keskele, nagu ülejäänud lahtrid. Lisaks sellele oleks võinud juriidilise info osas võinud infotüübid ära boldida, kuna see parandaks sealse informatsiooni loetavust. XMLi skeem on loetavalt vormistatud, normaalselt tabuleeritud. XML failis oli välja toodud veel ka tarneviis ning tarnija nimi, millest kumbagi XSLT faili poolt loodava arve peal millegipärast ei kuvata. Kokkuvõtteks võib väita, et nii XML kui XSLT täidavad kõik esitatud ülesande nõuded ning ainukesteks kriitikakohtadeks oleks mõningad stiilivead. Võib julgelt väita, et meeskond Undress Gaver on saanud XML ülesandega hästi hakkama.
Retsensioon
Otsustasime retsenseerida meeskonna BurgerAce poolt loodud veebirakendust. Nende ideeks oli luua rakendus, mis võimaldaks selle kasutajatel tellida ette burgereid ning jooke, valida milliseid asju nad burgeri vahele tahavad ning siis see ostukorvi panna. Antud rakenduse idee on hea, kuna seda on kerge edasi arendada ning võimaldab rakenduse autoritel laieneda ka teiste toidukohtade eeltellimise peale. Näiteks saaks sama rakendust kasutades kokku panna enda salati, pitsa või muud toidud. Idee on veel lisaks hea kuna see aitab toidukohtades vältida suurte järjekordade teket (inimesed kes teavad ette täpselt mida nad tahavad, saavad toidu eeltellida, maksta läbi interneti panga, paypali ja muude maksevahendite, lähevad toidukohta kohale ning saavad oma toidu kätte sekunditega). Meeskonna loodud XML fail on konkreetne, hästi vormistatud ning tabuleeritud ja mis kõige tähtsam, loetav. Nagu ka paljudel teistel projektidel olid wikis leidunud “must have” nõuded liiga optimistlikud ning ei olnud arvestatud ajakulukusega. Rakendus oli jagunenud kaheks osaks, üks mis oli mõeldud halduseks(toodete lisamine jms) ning teine, kus said kliendid siis enda valitud asju tellida. Klientrakenduses ei saa küll kliendid ise endale burgereid kokku panna, kuid sama asi on neil juba valmis tehtud halduse poole peal, seega ei tohiks olla raske seda dubleerida ja anda klientidele sama võimalus. Andmebaasis on olemas toodete hinnang, kuid seda kliendid muuta ei saa, küll aga saavad kliendid lisada endale tooteid lemmikute alla, et ei peaks pikast toote nimekirjast igakord oma lemmikuid produkte välja otsima. Klientide poolne rakendus on lihtsalt kasutatav ning segadust tekitavad ainult mõningad vead. Näiteks registreerimisel kui kasutaja on sünnikuupäeva juba ära täitnud ning viib hiire selle lahtri pealt ära, siis jääb mulje nagu lahter oleks tühi. Küll aga on problemaatiline sisselogimine, peale sisselogimist kuvatakse kasutajale küll, et ta on sisseloginud kasutajasse ning kuvatakse ka selle kasutaja nimi, kuid teda ei suunata ära sisselogimise lehelt ning ta saab uuesti sisse logida ning isegi uut kasutajat registreerida. Kui kasutaja on juba sisse loginud, siis ei saa ta enam välja logida. Kasutajal on võimalik valida tooteid ning lisades need ostukorvi saab ta ka minna checkouti, kuid isegi kui ostukorvis on tooteid olemas siis kuvatakse lisaks toodetele seda, et ostukorv on tühi. My Orders all ei tööta back to store nupp ning ka order nupp (Order nupu täide viimine ei kuulu küll nii väga selle aine temaatikasse, kuid tore oleks olnud kui ta oleks mingi sõnumi siiski kuvanud). Haldusrakenduse poole pealt on võimalik lisada burgereid, neile panna hinnanguid, valida koostisosi, määrata hind ning suurus ja panna tootele nimi ja kirjeldus. Toote lisamisel ei salvestu kahjuks selle suurus ega hind. Peale nende kahe vea on burgerite lisamine kiire, lihtne ja mugav. Valmis tooteid on võimalik ka filtreerida, valmis on saadud nime ja kirjelduse põhiline filtreerimine(lõpetamata veel allergeenide ja gluteeni sisalduse põhine filtreerimine.) Teiseks suureks võimaluseks halduse poole pealt on koostisosade lisamine, mis on üles ehitatud samamoodi nagu ka burgerite lisamine. Koostisosade puhul on võimalik neid lisada täites ära nime, kategooria, gluteeni sisalduse ning allergeenide sisalduse lahtrid. Nagu ka burgerite lisamine on ka koostisosade lisamine väga lihtne ja töötab osaline filtreerimine koostisosa nime järgi(lõpetamata on ülejäänud attribuutide järgi filtreerimine). Kokkuvõtvalt võib öelda, et meeskonna BurgerAce poolt loodud rakendus on tehtud ning piisav, et ainet läbida, kuid meeskond lõi endale liiga ambitsioonika projekti, ning ei suudetud seda täies mahus ellu viia ning see sisaldab ka kliendi poole pealt mõningaid vigu mis tegid rakenduse kasutamise natukene keerukaks. Kui meeskond tahab oma rakendust edasi arendada, siis soovitaks neil kindlasti mõelda laiemalt, kui ainult burgerite peale ning lisada toodete juurde neid illustreerivad pildid. Lisaks oleks redigeerimis UI’d vaja natukene ümber teha, sest praegune võimaldab enesele märkamatult libaparandusi teha.
Andmebaas
XML Fail
<?xml version="1.0" encoding="utf-8" ?>
<System>
<Person personId ="0" >
<Role roleType ="admin"></Role>
<PersonData>
<UserName><![CDATA[Ompzu]]></UserName>
<FirstName><![CDATA[Imre]]></FirstName>
<LastName><![CDATA[Teras]]></LastName>
<PersonPosts></PersonPosts>
</PersonData>
<Posts postId ="0" category="Technology" date="20.03.2016" public="False">
<PostTitle><![CDATA[First posts' title]]></PostTitle>
<PostContent>
<PostPictures>
<Picture pictureId ="0"><![CDATA[!!!Picture not found!!!]]></Picture>
</PostPictures>
<PostDescription><![CDATA[Lorem ipsum dolor sit amet, malesuada dictumst proin integer leo orci, phasellus vulputate arcu mauris sodales praesent, laoreet nisl sed vulputate, leo arcu euismod netus. Sodales venenatis purus tellus, leo sem ac dui vel nunc, lorem eleifend purus nullam duis, consectetuer lacus dui.]]></PostDescription>
</PostContent>
</Posts>
</Person>
<Person personId ="1">
<Role roleType ="admin"></Role>
<PersonData>
<UserName><![CDATA[GlobalAlite]]></UserName>
<FirstName><![CDATA[Intzz]]></FirstName>
<LastName><![CDATA[Nurja]]></LastName>
<PersonPosts></PersonPosts>
</PersonData>
<Posts postId ="0" category="Car" date="20.03.2016" public="False">
<PostTitle><![CDATA[Globals First posts' title]]></PostTitle>
<PostContent>
<PostPictures>
<Picture pictureId ="1"><![CDATA[!!!Picture not existing!!!]]></Picture>
<Picture pictureId ="2"><![CDATA[!!!Picture not existing!!!]]></Picture>
<Picture pictureId ="3"><![CDATA[!!!Picture not existing!!!]]></Picture>
</PostPictures>
<PostDescription><![CDATA[Lorem ipsum dolor sit amet, malesuada dictumst proin integer leo orci, phasellus vulputate arcu mauris sodales praesent, laoreet nisl sed vulputate, leo arcu euismod netus. Sodales venenatis purus tellus, leo sem ac dui vel nunc, lorem eleifend purus nullam duis, consectetuer lacus dui.]]></PostDescription>
</PostContent>
</Posts>
</Person>
<Person personId ="2">
<Role roleType ="user"></Role>
<PersonData>
<UserName><![CDATA[KoitJoome]]></UserName>
<FirstName><![CDATA[Marek]]></FirstName>
<LastName><![CDATA[Kiviking]]></LastName>
<PersonPosts></PersonPosts>
</PersonData>
<Posts postId ="0" category="toys" date="20.03.2016" public="False">
<PostTitle><![CDATA[Koits First posts' title]]></PostTitle>
<PostContent>
<PostPictures>
<Picture pictureId ="4"><![CDATA[!!!Picture not existing!!!]]></Picture>
<Picture pictureId ="5"><![CDATA[!!!Picture not existing!!!]]></Picture>
</PostPictures>
<PostDescription><![CDATA[Lorem ipsum dolor sit amet, malesuada dictumst proin integer leo orci, phasellus vulputate arcu mauris sodales praesent, laoreet nisl sed vulputate, leo arcu euismod netus. Sodales venenatis purus tellus, leo sem ac dui vel nunc, lorem eleifend purus nullam duis, consectetuer lacus dui.]]></PostDescription>
</PostContent>
</Posts>
</Person>
</System>
XSD Fail
<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="System"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Person"> <xs:complexType> <xs:sequence> <xs:element name="Role"> <xs:complexType> <xs:attribute name="roleType" type="xs:string" use="required" /> </xs:complexType> </xs:element> <xs:element name="PersonData"> <xs:complexType> <xs:sequence> <xs:element name="UserName" type="xs:string" /> <xs:element name="FirstName" type="xs:string" /> <xs:element name="LastName" type="xs:string" /> <xs:element name="PersonPosts" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Posts"> <xs:complexType> <xs:sequence> <xs:element name="PostTitle" type="xs:string" /> <xs:element name="PostContent"> <xs:complexType> <xs:sequence> <xs:element name="PostPictures"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Picture"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="pictureId" type="xs:unsignedByte" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PostDescription" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="postId" type="xs:unsignedByte" use="required" /> <xs:attribute name="category" type="xs:string" use="required" /> <xs:attribute name="date" type="xs:string" use="required" /> <xs:attribute name="public" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="personId" type="xs:unsignedByte" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XSLT - kuvab kõik kasutajate postitused koos selle sisuga
<?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>
<H1>Posts by persons</H1>
</title>
</head>
<body>
<H1>Posts by Persons</H1>
<ul>
<xsl:for-each select="/System/Person">
<li>
<xsl:value-of select="PersonData/UserName"/>
<ul>
<xsl:for-each select="Posts">
<li>
<xsl:value-of select="PostTitle"/>
<p>
<xsl:value-of select="PostContent/PostDescription"/>
</p>
<ul>
<xsl:for-each select="PostContent/PostPictures/Picture">
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ajakava
8.02.2016
- Meeskonna loomine
- Lubaduse tegemine, et alustame projektiga varakult
19.02.2016
- Imre õrritas meeskonnakaaslasi miljoniideega, ning lubas varsti rohkem infot jagada
21.02.2016
- Imre tuli lagedale oma ideega, uurisime tiimiga ja tundus täitsa normaalne idee.
26.02.2016
- Imre on teinud ASP.net raames projekti natuke uurinud, puurinud, teinud valmis andmebaasi
20.03.2016
Imre tegi XML, XSLT ja XSD failid
Indrek tegi Wiki lehe
03.06.2016
Uue idee peale tulemine
09.06.2016
Marek lisas retsensioonid