Spendings
Meeskond ja rollid
- Tauri Busch
Veebi ja klientrakendus
Kävitata tuleb:
1) WCF.Host
2) WindowsUniversalClient
Hetkel ei toimi üksuste uuendamine, tekib mingi serveri poolne viga..
NB! Kasutan andmebaasi connection stringina (localdb)\v11.0 Kui seda testitavas arvutis ei ole, siis tuleks see WCF.Host config failis ära muuta.
Idee ja analüüs
Projekti idee
Luua teenus, mille kaudu on võimalik sisestada igapäevaseid kulutusi ja sissetulekuid, sisestada oma kuu eelarve ja üritada sellest kinni pidada. Kulutusi ja tulusid on võimalik lisada kategooriate kaupa, mida saab kasutaja ise määrata. Kasutajal on võimalus jälgida ja hallata läbi klient rakenduse oma kulutuste kohti, võimalus määrata oma kulutused kategooriatesse. Lisaks saab klient rakenduse läbi määrata ja jälgida oma jooksva kuu eelarvet.
Rakenduse sisu
Teenuses on olemas järgmised võimalused (Must have):
Võimalus luua kasutaja
Kasutaja saab sisestada, muuta, kustutada kulutusi ja tulusid
Kasutaja saab määrata kulusid ja tulusid kategooriatesse
Teenuses võiksid olla lisavõimalused (Nice to have):
Võimalus määrata püsivaid sissetulekuid (näiteks palk)
Määrata päeva/kuu/aasta eelarvet
Jagada teiste kasutajatega oma eelarvet (ühine pere eelarve)
Klient rakenduse (Must have):
Saab näha olemasolevaid sissekandeid kulutuste ja tulude kohta
Saab määrata oma oma kuu eelarve ja jälgida seda
Klient rakenduse (Nice to have):
Võimalus teha (telefoniga) pilt arvest ja see läbi scannida sisse
XML Fail
<?xml version="1.0" encoding="utf-8" ?>
<Spendings>
<MoneyInOut>
<Type>Expense</Type>
<Type>Income</Type>
</MoneyInOut>
<Categories>
<Category name="Minu kulutused" limit="500" current="482">
<Description><![CDATA[Minuga soetud kulutused on siin]]></Description>
<ResetDay>7</ResetDay>
<SubCategories>
<SubCategory name="Remont" id="D3D1C80D-C722-E611-B1EF-083E8EF0777A">
<Description><![CDATA[Remondikulud]]></Description>
</SubCategory>
<SubCategory name="Kütus" id="D3D1C80D-C722-E611-B1EF-083E8EF0777B">
<Description><![CDATA[]]></Description>
</SubCategory>
</SubCategories>
<Spendings>
<Spending name="Ratta vahetus" id="D3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-083E8EF0777A" time="25.05.2016 14:00" value="26">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[Ratas sõitis minema]]></Descritpion>
</Spending>
<Spending name="Põhja keevitus" id="C3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-083E8EF0777A" time="24.05.2016 14:00" value="200">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[Põhi sõitis minema]]></Descritpion>
</Spending>
<Spending name="Ukse vahetus" id="B3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-083E8EF0777A" time="20.05.2016 14:00" value="236">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[Uks lendas minema]]></Descritpion>
</Spending>
<Spending name="Diisel" id="A3D1C80D-C722-E611-B1EF-083E8EF0777B" subCatId="D3D1C80D-C722-E611-B1EF-083E8EF0777B" time="21.05.2016 14:00" value="20">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[20L]]></Descritpion>
</Spending>
</Spendings>
</Category>
<Category name="Kool" limit="200" current="116.5">
<Description><![CDATA[Kooliga seotud kulud]]></Description>
<ResetDay>7</ResetDay>
<SubCategories>
<SubCategory name="Kapirent" id="D3D1C80D-C722-E611-B1EF-183E8EF0777A">
<Description><![CDATA[]]></Description>
</SubCategory>
<SubCategory name="Võlgnevus" id="D3D1C80D-C722-E611-B1EF-183E8EF0777B">
<Description><![CDATA[]]></Description>
</SubCategory>
</SubCategories>
<Spendings>
<Spending name="Kapirent" id="D3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-183E8EF0777A" time="7.03.2016 14:00" value="5.5">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[]]></Descritpion>
</Spending>
<Spending name="Kapirent" id="C3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-183E8EF0777A" time="7.04.2016 14:00" value="5.5">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[]]></Descritpion>
</Spending>
<Spending name="Kapirent" id="B3D1C80D-C722-E611-B1EF-083E8EF0776E" subCatId="D3D1C80D-C722-E611-B1EF-183E8EF0777A" time="7.05.2016 14:00" value="5.5">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[]]></Descritpion>
</Spending>
<Spending name="Võlgnevus" id="A3D1C80D-C722-E611-B1EF-083E8EF0777B" subCatId="D3D1C80D-C722-E611-B1EF-183E8EF0777B" time="21.02.2016 14:00" value="50">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[]]></Descritpion>
</Spending>
<Spending name="Võlgnevus" id="A3D1C80D-C722-E611-B1EF-083E8EF0777B" subCatId="D3D1C80D-C722-E611-B1EF-183E8EF0777B" time="21.03.2016 14:00" value="50">
<MoneyInOut>Expense</MoneyInOut>
<Descritpion><![CDATA[]]></Descritpion>
</Spending>
</Spendings>
</Category>
</Categories>
</Spendings>
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="Spendings">
<xs:complexType>
<xs:sequence>
<xs:element name="MoneyInOut">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Type" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Categories">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Category" >
<xs:complexType>
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="ResetDay" type="xs:unsignedInt" />
<xs:element name="SubCategories">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="SubCategory">
<xs:complexType>
<xs:sequence>
<xs:element name="Description" type="xs:string" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Spendings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Spending">
<xs:complexType>
<xs:sequence>
<xs:element name="MoneyInOut" type="xs:string" />
<xs:element name="Descritpion" type="xs:string" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="subCatId" type="xs:string" use="required" />
<xs:attribute name="time" type="xs:dateTime" use="required" />
<xs:attribute name="value" type="xs:decimal" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="limit" type="xs:unsignedShort" />
<xs:attribute name="current" type="xs:decimal" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
Pole olemas :(
Retsensioon meeskonna BurgerAce veebiteenusele ja klientrakendusele
BurgerAce on kasutanud ära REST apit ja teinud omale klient rakenduse veebi põhjal. Klient rakendus ei kasuta ühtegi referenci teiste projektis olevate klassidega (DLL, BLL jne..). Antud rakenduse puhul ei õnnestu mul ennast registreerida ja ühtegi teadet ka selle kohta ei saa, miks see sedasi on. Antud lahenduse puhul ei kasutata ära andmebaasi initsialiseerimisel testandmete loomist, vaid projekti on kaasa lisatud mingisugune .mdf fail, mida ma ei oska kusagile lisada (ei ole ka õpetust, kuidas sellega ümber käia).