Carparts
From ICO wiki
Meeskond ja tööjaotus
- Andres Kõiv
- Taivo Liik - Projektijuht
- Peeter Stamberg
Laoprogramm
Lihtne Auto varuosade laoseisu program auto margiesinduse jaoks.
Repository
https://cteravcarparts.visualstudio.com/CSharpCarParts see kohe muutub, kuna TTÜ aadressiga ei saa IT Kolledži aadressile ligi
Must have:
- Kaupade laoseis
- Kliendi andmebaas
- Kaupade sisse liikumine/ ostutehingud
- Kaupade välja liikumine/ müügitehingud
Nice to have:
- Broneerimissüsteem
- Jupi sobivus erinevatele markidele ja mudelitele
- Klientidele arvete väljastamise süsteem
- Raportid ja müügi ajalugu
Kasutatav tehnoloogia:
- C#
- Windows Presentation Foundation
- SQL Maria DB
Analüüs - MUST HAVE
Kaupade laoseis
Laoseis
Väljad
Olemite puhul tähistavad: * PK (primary key), * FK (foreign key), * kohustuslikud väljad - NOT NULL. * kõigi olemite puhul on viimased väljad: * Kommentaar (VARCHAR(500)) * Lisatud (DATE NOT NULL) * Kustutatud (DATE NOT NULL), sisestamisel on kauge kuupäev tulevikus * Lisaja (VARCHAR(50) NOT NULL), kes lisas (kasutajanimi) * Kustutaja (VARCHAR(50) NOT NULL, kes kustustas (kasutajanimi)
Olem Jupp
- Jupp_ID (PK INT NOT NULL AUTO_INCREMENT)
- Jupi_number (INT)
- Jupi_kood (VARCHAR(50))
- Jupi_nimetus (VARCHAR(20) NOT NULL)
Olem Auto_mark (teatmik)
- Auto_mark_ID (PK INT NOT NULL AUTO_INCREMENT)
- Auto_mark_nimetus (VARCHAR(20) NOT NULL)
Olem Auto_mudel
- Auto_mudel_ID (PK INT NOT NULL AUTO_INCREMENT)
- Auto_mark_ID (FK INT NOT NULL)
- Auto_mudel (VARCHAR(20) NOT NULL)
Olem Auto
- Auto_ID (PK INT NOT NULL AUTO_INCREMENT)
- Auto_mark_ID (FK INT NOT NULL)
- Auto_mark_ID (FK INT NOT NULL)
- Auto_aasta (kohustuslik) (INT NOT NULL), mudeli aasta
- Auto_mootor kw (kohustuslik) (INT NOT NULL)
- Auto_mootor töömaht (INT)
Olem Auto_jupp (seos)
- Auto_jupp_ID (PK INT NOT NULL AUTO_INCREMENT)
- Auto_ID (FK INT NOT NULL)
- Jupp_ID (FK INT NOT NULL)
- Jupp_nimetus (VARCHAR(30) NOT NULL), lühinimi
Olem Jupi_hind
- Jupi_hind_ID (PK INT NOT NULL AUTO_INCREMENT)
- Auto_jupp_ID (FK INT NOT NULL)
- Jupi_hind (DOUBLE(M,2) NOT NULL)
- Alates (DATE NOT NULL), mis ajas hind kehtib
- Kuni (DATE NOT NULL), mis ajani hind kehtib (alguses kuupäev kuskil kauges tulevikus)
Olem Tehing
- Ost_ID (PK INT NOT NULL AUTO_INCREMENT)
- Tarnija_ID (FK INT), kellelt jupp osteti
- Klient_ID (FK INT), kellele jupp müüdi
- Auto_jupp_ID (FK INT NOT NULL)
- Kogus (INT NOT NULL) ostu puhul positiivne, müügi puhul negatiivne
- Hind (DOUBLE NOT NULL), hetkel on kõik tehingud eurodes ehk erinevate valuutadega ei arvesta
- Aeg (DATETIME NOT NULL)
Vaade laoseis on kõikide ostude ja müükide summa soovitud ajani.
Otsing
- Jupi number
- Jupi kood
- Auto mark (kohustuslik)
- Auto mudel (kohustuslik)
- Auto aasta (kohustuslik)
- Auto mootor kw (kohustuslik)
- Auto mootor töömaht
Tulemuste kuvamine
- Jupi number
- Jupi kood
- Auto mark
- Auto mudel
- Auto aasta
- Auto mootor kw
- Auto mootor töömaht
- Hind
- Kogus
Otsing
Teostajad
- Kasutaja
- Süsteem
Kasutuslugu 1 - Varuosa otsimine
- Kasutaja sisestab kohustuslikud parameetrid otsingusse
- Kasutaja vajutab "Otsi" nupu peale
- Süsteem kuvab tulemused lehel
- Kui on vasteid rohkem kui 100, siis lazy loadinguga kuvatakse edasised vasted (nice to have)
- Süsteem kuvab 100+ tulemust, täpset summat ei kuvata, kuna see on koormav baasi jaoks ja ei ole vaja sellist detailisügavust.
- Kasutaja avab toote ja näeb toote detaile eraldi olevas aknas, kus ta leiab toote asukohta ja vajadusel saab vähendada kogust või juurde tellida.
- Kasutuslugu lõppeb
Kliendi andmebaas
Teostajad
- Klient
- Kasutaja
- Süsteem
Väljad sisestamisel
Olem Eraklient
- Eraklient_ID (PK INT NOT NULL AUTO_INCREMENT)
- Staatus_ID (FK INT NOT NULL)
- Klient_ID (INT NOT NULL), peab olema UNIQUE nii eraklientide kui äriklentide tabelit arvestades
- Kliendi_eesnimi (VARCHAR(30) NOT NULL)
- Kliendi_perekonnanimi (VARCHAR(50) NOT NULL)
- Kliendi_isikukood (VARCHAR(20) NOT NULL)
- Kliendi_aadress (VARCHAR(50) NOT NULL)
- Kliendi_telefon (VARCHAR(15) NOT NULL)
- Kliendi_e_post (VARCHAR(50) NOT NULL)
- Kliendi_kasutajanimi (VARCHAR(20) NOT NULL), peab olema UNIQUE
- Kas_soovib_eripakkumisi (INT NOT NULL) , (1 - soovib, 0-ei soovi)
- Klient_alates (DATE NOT NULL), millal hakkas kliendiks
- Klient_kuni (DATE NOT NULL), millal lõpetas kliendiks olemise (alguses kuupäev kauges tulevikus)
Olem Staatus Staatus_ID (PK INT NOT NULL AUTO_INCREMENT) Staatuse_nimetus (VARCHAR(20) NOT NULL), nt tavaklient, vip-klient Staatuse_kood (INT NOT NULL)
Olem Ariklient (Äriklient, kes võib olla nii hankija kui ka tarnija)
- Ariklient_ID (PK INT NOT NULL AUTO_INCREMENT)
- Klient_ID (INT NOT NULL), peab olema UNIQUE nii eraklientide kui äriklentide tabelit arvestades
- Staatus_ID (FK INT NOT NULL)
- AK_nimi (VARCHAR(30) NOT NULL)
- AK_registrikood (VARCHAR(20) NOT NULL)
- AK_aadress (VARCHAR(50) NOT NULL)
- AK_telefon (VARCHAR(15) NOT NULL)
- AK_e_post (VARCHAR(50) NOT NULL)
- AK_kasutajanimi (VARCHAR(20) NOT NULL), peab olema UNIQUE
- AK_kontaktisik (VARCHAR(500) NOT NULL), nimed, kontaktid jne
- Kas_soovib_eripakkumisi (INT NOT NULL) , (1 - soovib, 0-ei soovi)
- AK_alates (DATE NOT NULL), millal hakkas kliendiks
- AK_kuni (DATE NOT NULL), millal lõpetas kliendiks olemise (alguses kuupäev kauges tulevikus)
Väljad otsingul
- Kliendi eesnimi + kliendi perenimi (kohustuslik, kui puudub isikukood)
- Kliendi isikukood (kohustuslik, kui puudub eesnimi + perenimi=
- Kliendi telefon
- Kliendi e-post
Väljad kuvamisel
- Kliendi eesnimi
- Kliendi perekonnanimi
- Kliendi isikukood
- Kliendi aadress
- Kliendi telefon
- Kliendi e-post
- Kas soovib eripakkumisi
- Kliendi ostuajalugu
- Kliendi VIP staatus (allahindlusprotsent)
Kasutuslugu 2 - Olemasolev klient
- Klient siseneb asutusse
- Kasutaja küsib kliendi isikukoodi või eesnime ja perenime
- Klient annab andmed
- Kasutaja otsib süsteemist, kas klient eksisteerib
- Ei - liigub edasi Kasutuslugu 3 - Uus klient
- Jah
- Kasutaja näeb kliendi andmeid, eelmisi oste ja soodustusi
- Kasutaja saab lisada uue ostu kliendi arvele
- Kasutuslugu lõppeb
Kasutuslugu 3 - Uus klient
- Kasutaja küsib kliendi andmed, kas soovib liituda püsikliendiprogrammiga.
- Ei - Kasutuslugu lõppeb
- Jah
- Kasutaja küsib kliendi andmed, kirjeldadud punktis "väljad sisestamisel"
- Süsteem salvestab kliendi
- Kasutaja registreerib ostu kliendi nimele
- Kasutuslugu lõppeb
Kaupade sisse liikumine/ ostutehingud
Teostajad
- Tarnija
- Kasutaja
- Süsteem
Väljad sisestamisel
Meil on kaupadeks autovaruosad (olemina Auto_jupp)
- Kauba kood (kohustuslik)
- Kauba kogus (kohustuslik)
- Kauba ühiku hind (kohustuslik)
- Kauba päritolu (tarnija) (kohustuslik)
- Pilt
- Kauba asukoht laos
Kasutuslugu 4 - Uue kauba registreermine
- Kasutaja täidab ära väljad kirjeldatud peatükis "Väljad sisestamisel"
- Süsteem täitmisel soovitab kasutajale olemasolevat toodet (nice to have)
- Süsteem salvestab toote andmebaasi
- Süsteem kuvab kasutajale teate
- Edukas sisetamine - avab sisestatud toote lehe
- Ebaõnnestunud sisestamine - kuvab väljad, mis on vale informatisooniga
- Kui tarnija muutus, siis süsteem lisab sama toote alla uue tarnija ja uue hinna,vana tarnija kogust ei muudeta
- Kui toode oli olemas, siis süsteem uuendab toote kogust ja hinda
- Kasutuslugu lõppeb
Kasutuslugu 5 - Kauba müümine - laoseisu uuendamine
Teostajad
- Kleint
- Kasutaja
- Süsteem
Kaupade välja liikumine/ müügitehingud
- Kasutaja on leidnud toote vastavalt peatükis "Kasutuslugu 1 - Varuosa otsimine"
- Kasutaja vähendab toote kogust laos
- Kasutaja väljastab arve vastavalt toote kogusele ja hinnale süsteemi
- Kasutaja kinnitab arve pärast müügitehingu toimumist
- Süsteem uuendab toote kogust ja hinda
- Kasutuslugu lõppeb
Analüüs - NICE TO HAVE
Broneerimissüsteem
Teostajad
- Kleint
- Kasutaja
- Süsteem
Väljad
Väljad lisatakse "Väljad otsingul" liidesesse
- Filter - broneeritud
- Seis - "uus/broneeritud/otsas"
Kasutuslugu 6 - Broneerimissüsteem
- Kasutaja on leidnud toote vastavalt peatükis "Kasutuslugu 1 - Varuosa otsimine"
- Kasutaja broneerib toote kliendile, klient peab olema loodud peatükis "Kasutuslugu 2 - Olemasolev klient" või peatükis "Kasutuslugu 3 - Uus klient"
- Kasutaja väljastab arve vastavalt toote kogusele ja hinnale süsteemi
- Kasutaja seab tähtaja toote arve maksmisele
- Süsteem salvestab maksetähtaja
- Süsteem saadab kasutajale arve
- Arve tähtaja lähenemisel saadab süsteem meeldetuletuse, juhul kui arve pole makstud
- Arve maksmisel süsteem uuendab toote kogust ja hinda
- Süsteem teavitab kasutajat, et arve on makstud
- Kasutaja saadab varuosa kliendile, juhul kui on märgitud aadress
- Kui pole märgitud aadress, kasutaja saadab kirja kliendile või helistab
- Klient saab varuosa kätte
- Süsteem uunndab laoseisu
- Kasutuslugu lõppeb
Raportid ja müügi ajalugu
Väljad
Filtrid
- Kuupäev alates (kohustuslik)
- Kuupäev kuni (kohustuslik)
Väljad kuvamisel
- Kauba kood
- Kauba kogus
- Kauba ühiku hind
- Kauba päritolu (tarnija)
- Müügi kuupäev
Teostajad
- Kasutaja
- Süsteem
Kasutuslugu 7 - Raportid - Müügi ajalugu
- Kasutaja valib sobiva kuupäeva vahemiku
- Kasutaja valib "Kuva"
- Süsteem kuvab tulemused
- Kasutaja valib "väjasta tulemused CSV formaadis"
- Süsteem genereerib CSV formaadis tulemused
- Kasutaja salvestab genereeritud faili oma arvutisse
- Kasutaja avab faili
- Kasutaja saab analüüsida tulemusi
- Kasutuslugu lõppeb
Logi
- 09.10.2017 Meeskkonna moodustamine
- 15.10.2017 Esimene kokkusaamine ja idee paika panek
- 21.10.2017 Wiki lehe loomine ning esimesed sissekanded
- 30.10.2017 Loodi peatükk analüüs ja kirjeldati ära 3 esimest kasutuslugu
- 31.10.2017 Eemaldati "Uue kauba tutvustamise moodul" kuna see on kaetud "Kasutuslugu 4 - Uue kauba registreermine", lisati kasutuslood 4,5,6,7. Eemaldati "Jupi sobivus erinevatele markidele ja mudelitele" kuna on kaetud "Väljad otsingul". Eemaldati " Klientidele arvete väljastamise süsteem" kuna on kaetud "Kaupade välja liikumine/ müügitehingud".
- 02.11.2017 Lisati esialgsed olemite kirjeldused