MoneyG 1.0

From ICO wiki
(Redirected from MoneyGram 1.0)

Meeskond ja rollid

  • Mart Raus - projektijuht
  • Liina Saar - wiki
  • Ando Kiidron
  • Andres Kepler

Idee

Müügi- ja laohaldussüsteem.

Tehnolgooia

  • C#
  • Kasutajaliides: Windows Presentation Foundation
  • TFS: [1]

Analüüs ja rakenduse sisu

1. Mis on rakenduse eesmärk?

MoneyG’i (edaspidi Mog) eesmärk on pakkuda 1-5 töötajaga väikeettevõtjatele võimalikult lihtsat müügi- ja laohaldussüsteemi. Eelkõige on Mog sobiv nendele firmadele, kelle raamatupidamist ei ole otstarbekas viia juba mitmeid statistilisi funktsionaalsusi sisaldavatasse raamatupidamis­programmidesse, näiteks väikestele e-poodidele, kes peavad oma ladu. Oluline on siinkohal märkida, et Mog’i eristab teistest sarnastest rakendustest lisaks lihtsusele ka võimalus pidada arvestust toodete aegumise üle.

Ülevaate Mog’i wireframest saab järgnevalt lingilt: https://www.dropbox.com/s/455xrsu4kccn9wt/Mog1.2.pdf?dl=0


2. Mida rakendus endas sisaldab?

Rakendus sisaldab järgmisi elemente/objekte:

  • Kahte erinevate õigustega kasutajagruppi: „admin“ ja „müüja“.
  • Moodul “Avaleht” - nimekiri 10 tootega, mis ajaliselt kõige lähemal ajal aeguvad. Nimekiri sisaldab järgnevaid päiseid: “Aegumiseni päevi”, “Toote nimetus”, “Toote ID”, “Kogus”.
  • Moodul “Ladu” - kasutajate poolt lattu lisatud tooted, mille kohta on võimalik välja lugeda järgmist infot: „Aegumiseni päevi“, „Toote nimetus“, „Toote ID“, „Kogus“, ”Märkmed” ja „Ühiku hind“. Lisaks summeerib rakendus automaatselt laos olevate toodete kogused ja koguväärtuse (kogus*hind) (“KOKKU”).
  • Moodul “Müük” - müüdud tooted järgmise infoga: „Müügi kuupäev“, „Toote nimetus“, „Toote ID“, „Kogus“, „Ühiku hind“, „Käive“, „Kliendi ID“, “Märkmed”. Lisaks summeerib rakendus automaatselt müüdud toodete kogused ja käibed (“KOKKU”).
  • Moodul “Kliendid” - kasutajate poolt süsteemi lisatud kliente, kelle kohta on võimalik välja lugeda järgmine info: „Kliendi ID“, „Eesnimi“, „Perekonnanimi“, „E-mail“, „Telefon“, „Müük kokku, €“, „Müük kokku, tk“, “Ostetuim toode”, “Viimase ostu kuupäev”.
  • Moodul “Seaded” - süsteemi lisatud kasutajate nimekiri järgmiste infoga: “Kasutajanimi”, “E-mail”, “Õigused”.


3. Nimekiri funktsionaalsustest, mida plaanitakse kindlasti teostada (Must have):

Esimese iteratsiooni käigus realiseeritakse ainult kasutajagrupi “admin” (edaspidi kasutaja) funktsionaalsused:

  • 3.1 Kasutajale avaneb esmane vaade tekstiväljadega: “Kasutajanimi” ja “Parool” ning nupuga “Logi sisse”. Kasutaja logib sisse talle omistatud kasutajanime ja parooliga. Kui parool ei ühti kasutaja parooliga, kuvatakse talle teade “Vale parool.”, kui kasutajanimi ei ühti olemasolevate kasutajanimedega, kuvatakse talle teadet “Sellist kasutajanime ei ole.” ja rakendusse sisselogimist ei toimu.
  • 3.2 Peale sisselogimist näeb kasutaja vaikimisi moodulit “Avaleht”, mis kajastab punktis 2 nimetatud informatsiooni.
  • 3.3 Kasutaja valib mooduli “Ladu”, kus on toodete nimekiri kõikide punktis 2 nimetatud päistega. Kasutajal on õigus kõiki laos olevaid tooteid muuta vastava toote rea lõpus oleva nupuga “Muuda” ja kustutada nupuga “Kustuta”. Kasutaja klikib Muuda nuppu, misjärel talle avaneb vaade kõikide tootepäistega, mida on võimalik muuta. Kasutaja muudab andmeid ja klikib Muuda, mille tulemusena toote andmed muutuvad ning kasutaja suunatakse tagasi mooduli “Ladu” avalehele, kus on nimekiri kõikidest laos olevatest toodetest. Kasutaja klikib kindla toote real “Kustuta”, misjärel ilmub talle aken “Kas oled kindel, et soovid toodet kustutada?” valikutega “Jah” ja “Ei”. Valides “Jah”, toode märgitakse kustutatuks ning lao nimekirja all kuvatakse kiri: “Toode on kustutatud.”. Valides “Ei”, toode jäetakse lattu alles. Lisaks on laotoodete tabeli all nupp “Lisa toode”, millega on võimalik tooteid lattu lisada, täites ära järgmised väljad: “Toote nimetus”, “Kogus”, “Ühiku hind”, “Aegumise kuupäev”. “Toote ID” genereeritakse automaatselt.
  • 3.4 Kasutaja valib mooduli “Müük”, kus on müüdud toodete nimekiri kõikide punktis 2 nimetatud päistega. Kasutajal on õigus müüdud tooteid muuta ja märkida tooted kustutatuks täpselt samal põhimõttel nagu lao moodulis (vt 3.3). Lisaks on toodete tabeli all nupp “Müü toode”, millele klikkides on võimalik tooted märkida müüduks, täites ära järgmised väljad: “Müügi kuupäev”, “Kliendi ID” (rippvalik), “Toote nimetus”, “Kogus”, “Ühiku hind”. Kasutaja kinnitab müügi nupuga “Müük tehtud”.
  • 3.5 Kasutaja valib mooduli “Kliendid”, kus on nimekiri klientidest kõikide punktis 2 nimetatud päistega. Kasutajal on õigus infot kliendi kohta muuta ja klienti märkida kustutatuks täpselt sama põhimõttel nagu lao ja müügi moodulites tooteid (vt 3.3).
  • 3.6 Kasutaja valib mooduli “Seaded”, kus ta näeb kõiki süsteemis registreeritud kasutajaid punktis 2 nimetatud päistega. Kasutajal on õigus kõiki kasutajaid muuta ja märkida kustutatuks täpselt samal põhimõttel nagu moodulis “Kliendid” (vt 3.5). Kasutaja valib nupu “Lisa kasutaja”, misjärel ta lisab uue kasutaja andmed (nimetatud punktis 2) ning määrab talle parooli, mida tuleb kinnitamiseks sisestada kaks korda. Õiguste alt määrab kasutajagrupi ning vajutab nuppu “Lisa”, misjärel lisatakse uus kasutaja nimekirja.
  • 3.7 Olenemata vaatest, milles kasutaja parasjagu viibib, kuvab rakendus vaate üleval paremal nurgas alati nupu “Logi välja”, millele klikkides logitakse kasutaja rakendusest välja ning ekraanile avaneb esmane vaade uuesti sisselogimise võimalusega.

Rakenduse vaikimisi funktsionaalsused:

  • 3.8 Laos olevate toodete loetelu kuvatakse aegumiseni jäänud päevade arvu järgi kasvavas järjekorras.
  • 3.9 Müüdud toodete loetelu kuvatakse müügi kuupäeva järgi alates kõige hiljem teostatud müügist.
  • 3.10 Klientide loetelu kuvatakse tähestikulises järjekorras kasvavalt perekonnanime järgi.


4. Nimekiri funktsionaalsustest, mis võiks olla, aga mida ei pruugita ajapuuduse tõttu realiseerida.(Nice to have)

  • Lao ja müügi moodulitel võimalus toodete järjekorda muuta kõikide punktis 2 nimetatud päiste järgi vastava päise nimetuse peale klikkides, mille tulemusena sorteerib rakendus tooted esialgu kasvavalt ning uuesti klikkides kahanevalt.
  • Klientide moodulil võimalus klientide järjekorda muuta kõikide punktis 2 nimetatud päiste järgi vastava päise nimetuse peale klikkides, mille tulemusena sorteerib rakendus tooted esialgu kasvavalt ning uuesti klikkides kahanevalt.
  • Toote müümise järel identifitseerib rakendus müüdud toote tema ID järgi ning vähendab vastava toote kogust laos. Kui proovitakse müüa rohkem, kui laos on, kuvab rakendus peale müügi kinnitamist (vt 3.4) teate tekstiga “Laos ei ole piisav kogus toodet. Tooteid on loas X tk.”, mille saab sulgeda vajutades “OK”, misjärel peaks vähendama müüdava toote kogust, et müüks õnnestuks.
  • Avalehel kuvatakse ka “Ülevaated”, mis sisaldavad järgmist statistikat: “Käive käesoleval aastal (€)”, “Käive käesoleval kuul (€)”, “Müüduim toode käesoleval aastal” (Toote nimetus), “Müüduim toode käesoleval kuul” (Toote nimetus). Lisaks sellele veel ka märkmete lahter, kuhu kasutaja saab teha olulisi kommentaare.
  • Kasutajagrupiga “müüja” õigustega seotud funktsionaalsused. Avalehe info kasutajagrupile relevantne, pole kasutajate muutmise õigusi.
  • Saab genereerida “Müük” tabelit valitud kuupäevade lõikes, kus tooted on summeeritud nimetuste järgi või klientide järgi.
  • Saab genereerida “Kliendid” tabelit valitud kuupäevade lõikes.
  • Võimalus lisada ka firmadest kliente.
  • Kui sisestatakse toode, millel on sama aegumiskuupäev ja sama nimetus, siis liidetakse see automaatselt laos juba olemasolevale juurde.
  • Avalehe moodulis on lisaks hetkestatisikale toodud võrdluseks välja ka “Käive eelmisel aastal (€)”, “Käive eelmisel kuul (€)”, “Müüduim toode eelmisel aastal” (Toote nimetus), “Müüduim toode eelmisel kuul” (Toote nimetus).


5. Mida tavakasutaja sellega teha saaks?

Kasutaja saab:

  • pidada arvestust laos olevate toodete üle: lisada tooteid lattu, müüa tooteid laost, saada ülevaade laos olevatest toodetest ja näha toodete aegumistähtaegu.
  • pidada müügiarvestust: müüa tooteid laost, vaadata ülevaadet müükidest (millisele kliendile mis hinnaga mitu toodet müüdi ja millal)
  • saada ülevaade oma klientidest ja nende kontaktandmetest ja lisada uusi kliente
  • näha avalehel kõige olulisemat ja ülevaatlikumat infot müügi ja laoseisu kohta.

NB! Müügirida sisestades peab olema toimunud ka kliendi poolt raha üleandmine ja kauba üleandmine laost kliendile. Arvestust maksetähtaegade üle ja müügi ajahetke ning laost kauba äraminemise ajahetke vahe üle Mog ei pea.


6. Milliste osade realiseerimine võib osutuda problemaatiliseks?

  • Kuna varasem kokkupuude C# programmeerimiskeelega kõigil tiimi liikmetel puudub ja oskused on õppimisjärgus, siis võib takistusi ette tulla igas projekti etapis.
  • Eelmisest punktist tulenevalt võib koodibaasi ühtlane (arendusmustrid, töövõtted, jne) hoidmine olla problemaatiline terve projekti ulatuses.


7. Andmebaasiskeem

Media:ABskeem.jpeg

Workload

4.10.2016 - Wiki lehe ja TFS-i loomine.

9.10.2016 - Idee paikapanemine. Esialgsete ülesannete jagamine.

28.10.2016 - Projekti Wireframe'i läbiarutamine. Esimesed muudatused ja läbirääkimised analüüsi kirjutamiseks. Esialgne analüüs Google Doc'is, mida grupiga jooksvalt täiendatakse/muudetakse.

29.10.2016 - Analüüsi kirjutamine. Andmebaasitabelite tegemine. Projekti skeletoni loomine.

01.11.2016 - Lõpliku analüüsi valmimine.

12.11.2016 - Grupi koosolek. Koodi kirjutamisega alustamine ja sellega seoses täpsemate ülesannete jagamine.

10.12.2016 - Koodi kirjutamine üheskoos kogu tiimiga. Lao vaate ja toote lisamise funktsionaalsused.

11.12.2016 - 20.12.2016 - Koodi kirjutamine.

20.12.2016 - Prototüübi esitamine.

21.12.2016 - 23.12.2016 - Koodi kirjutamine. Prototüübi versiooni parandamine.

13.01.2017 - 18.01.2017 - Koodi kirjutamine: viimaste funktsionaalsuste realiseerimine, tehniliste vigade parandamine, koodi korrastamine ja kommenteerimine. Dokumentatsiooni loomine.

19.01.2017 - 27.01.2017 - Prototüübi tagasisidest lähtuvalt vigade parandamine. Programmi täiendamine veel realiseerimata Must have funktsionaalsustega. Üleviimine korrektsele MVVM mudelile. Dokumentatsiooni täiendamine.

27.01.2017 - Lõpptoote esitamine.