Carparts

From EIK 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