Meeskond Margus Tonis

From ICO wiki
Jump to navigationJump to search

Kirjeldus

Loodav tarkvara realiseerib lihtsat laoarvestuse funktsionaalsust. Kuigi lahendus luuakse näidisprojektina, võib tarkvara olla kasutatav väiksema ettevõtte laoarvestustarkvarana. Projekt annab ülevaate meeskonna oskustest CSharp keeles MSSQL, klasside ja VPF kasutamisest.


Tööjaotus

  • Margus Roo (margus@roo.ee) - projektijuht
  • Tõnis Luik


Analüüs

Retsensioon meie analüüsi kohta

  • Arendusvahendiks on MS Visual Studio 2012
  • Programmeerimiskeel on MS CSharp
  • Andmebaasimootoriks on MS SQL
  • Graafiline kasutajaliides luuakse VPF tehnoloogiat kasutades, XAML keeles

Versioonihaldus asub https://margusja.visualstudio.com/

andmebaasistruktuur

Klasside struktuur

  • Libraries
    • Currency - Valuta objekt
    • Items - Tooteartikli objekt
    • ItemNamed - Tooteartikli objekt, kus abitabelitest võetakse tooteartiklile nimelised seosed.
    • ItemType - Tooteartikli tüübi objekt
    • Supplier - Tarnija objekt
  • Utils
    • CurrencyUtils - Valuutatabeliga seonduvad toimingud
    • ItemUtils - Tooteartikli tabeliga seonduvad tegevused
    • SupplierUtils - Tarnijate tabeliga seonduvad tegevused
    • TypeUtils - Tooteartikli tüüpid tabeliga seonduvad tegevused
  • WPF
    • ViewModels -> MainVindowVM, kus kasutades vastava Utils library, teostatakse WPF rakenduse funktsionaalsust (load, update, insert, delete)

Must have

Kasutajal on võimalus graafilise kasutajaliidese kaudu sisestada, muuta ja kustutada allolevaid kirjeid, mida hiljem saab tooteartikliga siduda:

  • currency (ID, nimi)
  • type(tk kast, tünn jne) (ID, nimi)
  • supplier(ID, nimi, aadress, e-mail, telefon)
  • customer (ID, nimi, aadress, e-mail, telefon) Kuigi andmestruktuur kattub tarnija omaga, siis hoian kliendid selguse huvides eraldi tabelis.

Eelpool toodud subjekte ei saa kustutada juhul kui ta on seotud mõne tooteartikliga.

Kasutaja saab sisestada, tooteartiklit (item), mis koosneb:

  • Toote id (SKU) - Unikaalne kood
  • Toote nimi
  • Kogus
  • Seos tooteühikuga
  • Seos rahaühikuga
  • Seos(ed) tarnijatega

Siduda seda eelpool toodud abikirjetega:

  • Tooteartiklit saab siduda ühe tooteühikut kirjeldava kirjega.
  • Tooteartiklit saab siduda ühe rahaühikut kirjeldava kirjega.
  • Tooteartiklit saab siduda tarnijaga.
  • Tooteartiklit saab siduda ühe kliendiga.


Kasutajal on võimalus luua tooteartikli kohta väljamineku kirjeid ehk müügi arhiivi:

  • Väljaminekute tabelisse luuakse seos tootega, - kliendiga ja kogus ning väljamineku kuupäev.
  • Tooteartikli tabelist arvestatakse väljamineku kogus maha. Juhul kui välja minev kogus on suurem kui tooteartiklit laos, väljastatakse kasutajale vastav teade.


Nice to have

  • Kasutajal on võimalik seadistada iga tooteartikli kohta kriitiline level, mida kontrollitakse ja informeeritakse kasutajat teatega, et vastavat tooteartiklit on laos vähem kui määratud.
  • Tooteartiklit saab siduda mitme tarnijaga, kuna laos olev toode võib sisaldada mitme tarnija komponente.


Prototüüp

Pakkides rar faili lahti on kataloogis Database_design_v1 antud projekti Visual Studio's arendatud kood. Avades VisualStudio projektifaili Home_work, siis avaneb projekt. TFS ühenduda ei ole vaja. Vajutades CTRL + F5 avaneb rakendus. Võib avada ka valmis kompileeritud binary WpfLadu/bin/Debug/WpfLadu.


Funktsionaalsus, mis peaks toimima

  • Saab sisestada andmeridu. (Sisestamiseks viimasele reale hakata lisama informatsiooni ja tab klahviga liikudes väljade vahel. Viimaselt väljalt minema liikudes viiakse uus kirje andmebaasi, mille edukast tulemusest ka kasutajat vastavasisulise popup'ga teavitatakse)
  • Andmeridu saab kustutada ühe või mitmekaupa. Aktiviseerides rea/read ja vajutades klahvi Delete.
  • Andmeridu saab muuta. (Muutmiseks aktiveerida vajalik väli ja peale muutmist sealt lahkumist viiakse vastav muudatus andmebaasi, edukast muudatusest annab teada ka vastavasisuline popup)
  • Andmeridu saab sorteerida


Funktsionaalsis, mis ei toimi

  • Abitabelite (types, currency, supplier) administreerimine GUI kaudu puudub. Samuti ei teisenda GUI hetkel abitabelite ID'd nimedeks, seega GUI näitab Type, Supplier ja Currency ridades vastavaid ID'd


Lõpptoode

  • Tooteid saab lisada, muuta (vastava välja peal tehes muudatuse ja sealt lahkudes) ja kustutada
  • Tooteid saab siduda abitabelites olevate kirjetega
  • Abitabeleid (Supplier, Currency, Types) saab lisada, muuta (vastava välja peal tehes muudatuse ja sealt lahkudes), kustutada
  • Sisendandmete kontroll

lõpptoode

Lahendus tuleb alla laadida, lahti pakkida ja minna kataloogi Database_design_v1/WpfLadu/bin/Release/, avada application WpfLadu

Logi

  • 12.11.2013 - Realiseeritud tooteartikli ja valuuta libraries
  • Prototüübil on näha, et valuuta asendatakse valuuta nimega
  • 13.11.2013 - Salvestamise prototüüp.
  • 14.11.2013 - Realiseeritud kõikide elementide vajalikud klassid. Lisaks meetodid, mis lubavad tooteartikli numbrilisi väärtusi nimelisteks muuta.
  • 21.11.2013 - Projekt versioonihaldusesse https://margusja.visualstudio.com ja meeskonnale ning Mait Poska'le ligiääs loodud
  • 27.11.2013 - Lisamise real saab valida abitabelites olevaid tekstiväärtusi. changeset10
  • 28.11.2013 - ComboBox tekstiväärtused läbi vastava [object]Utils'i. Loodame, et ajutine lahendus. Väga halb lahendus. Kui aega, teeme ümber. changeset11
  • 01.12.2013 - Lisatud kirjed ilmuvad kohe vaatesse changeset12
  • 02.12.2013 - Parem dropdown'de lahendus changeset 13
  • 12.12.2013 - Kogu lahendus DataGrid peale.
  • 13.12.2013 - Prototüüp hindamiseks (Antke armu :) )
  • 14.12.2013 - Meeskonna koosolekul, mis toimus 14.12.2013 ITK sööklas, otsustasime lõpptootes tagasi pöörduda mitte DataGrid kasutavasse GUI lahendusse.

Lingid