Autoparandaja: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mviilvee (talk | contribs)
No edit summary
Mviilvee (talk | contribs)
No edit summary
Line 16: Line 16:


Avalikus veebis on võimalik külastajatel ettevõtete poolt sisestaud aegu broneerida. Külastajatel pole vaja kontot registreerida. Igale ettevõttele oskab rakendus kuvada detaillehte, kus on kuvatud kogu teadaolev info ettevõtte kohta. Ettevõtte detailvaates on kuvatud kõik antud ettevõtte vabad ajad. Broneerimiseks tuleb klikkida sobiva aja peale. Avaneb vorm:
Avalikus veebis on võimalik külastajatel ettevõtete poolt sisestaud aegu broneerida. Külastajatel pole vaja kontot registreerida. Igale ettevõttele oskab rakendus kuvada detaillehte, kus on kuvatud kogu teadaolev info ettevõtte kohta. Ettevõtte detailvaates on kuvatud kõik antud ettevõtte vabad ajad. Broneerimiseks tuleb klikkida sobiva aja peale. Avaneb vorm:
Kliendi nimi: tekstiväli (kliendi nimi)
* Kliendi nimi: tekstiväli (kliendi nimi)
Kliendi email: tekstiväli (kliendi email)
* Kliendi email: tekstiväli (kliendi email)
Sõidukinimi: tekstiväli (mark, mudel)
* Sõidukinimi: tekstiväli (mark, mudel)
Märkmed: tekstiväli (autonumber, probleemikirjeldus)
* Märkmed: tekstiväli (autonumber, probleemikirjeldus)
Klienditüüp: rippmenüü (era või äriklient)
* Klienditüüp: rippmenüü (era või äriklient)


Peale vormi sisestamist küsitakse kasutajalt kinnitust, kas ollakse kindel, et soovitakse broneerida aega. Mittenõustumisel ei broneeri rakendus aega. Nõustumisel valideeritakse andmed ning seotakse vaba ajaga. Seejärel saadab rakendus kinnituskirja kliendile ning teavituskirja ettevõttele. Teavituskiri läheb emailile, mis on sisestatud ettevõtte lisamisajal. Kliendikiri aga vormis sisestatud e-mailile.
Peale vormi sisestamist küsitakse kasutajalt kinnitust, kas ollakse kindel, et soovitakse broneerida aega. Mittenõustumisel ei broneeri rakendus aega. Nõustumisel valideeritakse andmed ning seotakse vaba ajaga. Seejärel saadab rakendus kinnituskirja kliendile ning teavituskirja ettevõttele. Teavituskiri läheb emailile, mis on sisestatud ettevõtte lisamisajal. Kliendikiri aga vormis sisestatud e-mailile.
Line 37: Line 37:


Ettevõtte loomiseks on vaja sisestada järgnevad andmed:  
Ettevõtte loomiseks on vaja sisestada järgnevad andmed:  
Nimi - tekstiväli (ettevõtte nimi)
* Nimi - tekstiväli (ettevõtte nimi)
Email aadress - tekstiväli (email peab valideeruma, siia saadetakse teavituskirju)
* Email aadress - tekstiväli (email peab valideeruma, siia saadetakse teavituskirju)
Aadress - tekstiväli (füüsiline aadress, mittekohustuslik)
* Aadress - tekstiväli (füüsiline aadress, mittekohustuslik)
Kontakt - tekstiväli (telefoninumber, email vms, mittekohustuslik)
* Kontakt - tekstiväli (telefoninumber, email vms, mittekohustuslik)
Kirjeldus - tekstiväli (lühikirjeldus, nt millega ettevõte tegeleb, mittekohustuslik)
* Kirjeldus - tekstiväli (lühikirjeldus, nt millega ettevõte tegeleb, mittekohustuslik)
Töötajate arv - numbriväli (informatiivne väli, mittekohustuslik)
* Töötajate arv - numbriväli (informatiivne väli, mittekohustuslik)


Kui kõik andmed valideeruvad, siis süsteem seob taustal selle ettevõtte kasutajaga. Peale ettevõtte salvestamist saab kasutaja seda igal ajal muuta. Samuti on võimalik lisada endale rohkem, kui 1 ettevõte. Kui ettevõte lõpetab tegevuse on võimalik see kustutada. Kustutamisprotsessi ajal kustutakse rekursiivselt kõik ettevõttega seotud andmed. Niisamuti kliendi broneeringud. Selles etapis aga ei teavitata klienti sellest - see on ettevõtte rida need asjad korda ajada.
Kui kõik andmed valideeruvad, siis süsteem seob taustal selle ettevõtte kasutajaga. Peale ettevõtte salvestamist saab kasutaja seda igal ajal muuta. Samuti on võimalik lisada endale rohkem, kui 1 ettevõte. Kui ettevõte lõpetab tegevuse on võimalik see kustutada. Kustutamisprotsessi ajal kustutakse rekursiivselt kõik ettevõttega seotud andmed. Niisamuti kliendi broneeringud. Selles etapis aga ei teavitata klienti sellest - see on ettevõtte rida need asjad korda ajada.
Line 51: Line 51:


Tõstukite lisamise nupp on olemas ettevõtte administreerimisvaates. Tõstuki lisamisel tuleb sisestada:
Tõstukite lisamise nupp on olemas ettevõtte administreerimisvaates. Tõstuki lisamisel tuleb sisestada:
Nimi - tekstiväli (tõstuki nimi)
* Nimi - tekstiväli (tõstuki nimi)
Kirjeldus - tekstiväli (tõstuki lühikirjeldus)
* Kirjeldus - tekstiväli (tõstuki lühikirjeldus)


Tõstukeid on võimalik lisada, kustutada ning muuta. Kustutamisprotsessi ajal kustutakse sarnaselt ettevõtte kustutamisele kõik seotud andmed rekursiivselt. Tulevikus on võimalik seda käitumist muuta (kuvada hoiatust või mitte lasta kustutada).  
Tõstukeid on võimalik lisada, kustutada ning muuta. Kustutamisprotsessi ajal kustutakse sarnaselt ettevõtte kustutamisele kõik seotud andmed rekursiivselt. Tulevikus on võimalik seda käitumist muuta (kuvada hoiatust või mitte lasta kustutada).  

Revision as of 11:21, 18 October 2016

Meeskond ja rollid

  • Mihkel Viilveer - Kokk-kondiiter-keevitaja

Idee

Lihtsamat sorti veebirakendus, kuhu on võimalik registreerida ettevõtteid, mis tegelevad autoremondiga. Tegu on broneerimiskeskkonnaga, kuhu ettevõtte omanikud saavad sisestada vabu aegu ning kliendid (saidi külalised) saavad neid broneerida.

Analüüs

Süsteemne teave

Rakendus on ehitatud C# keeles, kasutatakse ASP.NET raamistikku. Kasutajaliides on HTMLis, liikuvad vidinad Javascript(jQuery library) keeles ning stiilitakse CSSiga (kasutatakse Bootstrap 3 raamistikku). Andmeid hoitakse MSSQLis ning päringukeeleks on LinQ. Andmemudeli loomisel kasutatakse CodeFirst lähenemist, ehk enne luuakse andmemudel domeenimudelite näol ning nendest genereerib EntityFramework MSSQLi andmebaasi. Rakenduses on üritatud kasutada nö "best practice" näiteid nagu Solutioni tükeldamine alamprojektideks, andmete pärimine käib repositooriumite kaudu, kasutusel on vaatemudelid ning DTO'd. Kasutajate tugi on lisatud ASP.NET Identity näol kõige "lihtsamal" viisil. Kõik tabelid on auditväljadega (createdAt, createdBy, updatedAt, updatedBy) väljaarvatud ASP.NET raamistikuga kaasas käivad Identity tabelid. Kõiki tegeuvsi logitakse ActionLog tabelisse. Logimiseks on tehtud eraldi tabel ning komponent, mis tabelisse andmeid lisab. Kõikidel toimingutel kuvab rakendus informatiivse flash teavituse (vastavalt õnnestumisele kas rohelist või punast)

Avalik veeb

Avalikus veebis on võimalik külastajatel ettevõtete poolt sisestaud aegu broneerida. Külastajatel pole vaja kontot registreerida. Igale ettevõttele oskab rakendus kuvada detaillehte, kus on kuvatud kogu teadaolev info ettevõtte kohta. Ettevõtte detailvaates on kuvatud kõik antud ettevõtte vabad ajad. Broneerimiseks tuleb klikkida sobiva aja peale. Avaneb vorm:

  • Kliendi nimi: tekstiväli (kliendi nimi)
  • Kliendi email: tekstiväli (kliendi email)
  • Sõidukinimi: tekstiväli (mark, mudel)
  • Märkmed: tekstiväli (autonumber, probleemikirjeldus)
  • Klienditüüp: rippmenüü (era või äriklient)

Peale vormi sisestamist küsitakse kasutajalt kinnitust, kas ollakse kindel, et soovitakse broneerida aega. Mittenõustumisel ei broneeri rakendus aega. Nõustumisel valideeritakse andmed ning seotakse vaba ajaga. Seejärel saadab rakendus kinnituskirja kliendile ning teavituskirja ettevõttele. Teavituskiri läheb emailile, mis on sisestatud ettevõtte lisamisajal. Kliendikiri aga vormis sisestatud e-mailile.

Aegu, mida on juba broneeritud ei saa uuesti broneerida, need ei ilmu ka vabade aegade hulka.

Kasutaja registreerimine

Kasutaja registreerimine on tehtud võimalikult lihtsaks. Et luua endale konto on vaja sisestada saidile ainult kasutajanimi (ei pea olema e-mail) ning parool. Esmases versioonis ei pruugi olla isegi nõudeid paroolile, kuigi turvalisuse eesmärgiks võiks parool sisaldada vähemalt 6 tähemärki. Kasutajanimi peab olema unikaalne. Vigade korral teavitatakse klienti veateadetega.

Kasutajaga sisselogimine

Kui kasutaja on registreeritud, siis on ettevõtte lisamiseks ja haldamiseks (rakenduse põhifunktsionaalsuse kasutamiseks) tuleb sisse logida. Selleks, et sisselogida, tuleb sisestada kasutajanime ning paroolikombinatsioon, millega kasutaja on eelnevalt registreerunud. Kui kontot ei leitud, siis rakendus teavitab sellest klienti.

Ettevõtte haldamine

Ettevõtte loomiseks on vaja sisestada järgnevad andmed:

  • Nimi - tekstiväli (ettevõtte nimi)
  • Email aadress - tekstiväli (email peab valideeruma, siia saadetakse teavituskirju)
  • Aadress - tekstiväli (füüsiline aadress, mittekohustuslik)
  • Kontakt - tekstiväli (telefoninumber, email vms, mittekohustuslik)
  • Kirjeldus - tekstiväli (lühikirjeldus, nt millega ettevõte tegeleb, mittekohustuslik)
  • Töötajate arv - numbriväli (informatiivne väli, mittekohustuslik)

Kui kõik andmed valideeruvad, siis süsteem seob taustal selle ettevõtte kasutajaga. Peale ettevõtte salvestamist saab kasutaja seda igal ajal muuta. Samuti on võimalik lisada endale rohkem, kui 1 ettevõte. Kui ettevõte lõpetab tegevuse on võimalik see kustutada. Kustutamisprotsessi ajal kustutakse rekursiivselt kõik ettevõttega seotud andmed. Niisamuti kliendi broneeringud. Selles etapis aga ei teavitata klienti sellest - see on ettevõtte rida need asjad korda ajada.

Ettevõte saab määrata ära ka millist klienditüüpi ollakse valmis teenindama (Eraklient vs äriklient). Selleks on olemas eraldi haldus, kuhu sisestakse rippmenüüst klienditüüp. Teenindatavaid klienditüüpe saab kustutada ning uuesti lisada vajadusel. Muutmisele selles etapis pole tehnilist lahendust. Klienditüübi lisamise nupp on ettevõtte admin vaates.

Tõstukite haldamine

Tõstukite lisamise nupp on olemas ettevõtte administreerimisvaates. Tõstuki lisamisel tuleb sisestada:

  • Nimi - tekstiväli (tõstuki nimi)
  • Kirjeldus - tekstiväli (tõstuki lühikirjeldus)

Tõstukeid on võimalik lisada, kustutada ning muuta. Kustutamisprotsessi ajal kustutakse sarnaselt ettevõtte kustutamisele kõik seotud andmed rekursiivselt. Tulevikus on võimalik seda käitumist muuta (kuvada hoiatust või mitte lasta kustutada).

Vabade aegade haldamine

Vabu aegu saab lisada tõstuki põhiselt. Nupp vaba aja lisamiseks on iga tõstuki detailvaates. Sisestamisel on vaja määrata algus ning lõppaeg. Andmete sisestamise lihtsustamiseks kuvab rakendus kasutajale kuu ja kellaaja valikut spetsiaalse komponendi abil (DateTimePicker). Kui salvestamine õnnestub, siis süsteem seob selle aja tõstukiga automaatselt. Kustutamisprotsessis kustutakse selle ajaga seotud broneering. Teavitust ei saadeta.

Broneeringute vaatamine

Kui ajale on tehtud broneering ilmub see sisestatud aja detailvaatesse. Sealt on võimalik ettevõttel broneeringut vaadata ning kustutada. Kustutamisel ei saadeta kliendile teavitust.

Rakenduse sisu kokkuvõte

Rakenduses on olemas järgmised võimalused (Must have):

  • Kasutaja saab luua/muuta/kustutada autoparandus ettevõtteid
  • Kasutaja saab luua/muuta/kustutada uusi tõstukeid
  • Kasutaja saab luua/kustutada klienditüüpe, keda ta teenindab (Äri vs era)
  • Kasutaja saab luua/kustutada auto tõstuki broneerimisaegu
  • Klient saab broneerida tõstukite vabu aegu.
  • Kõiki tegevusi logitakse
  • Kasutaja-süsteem, et piirata kes mida näeb

Rakenduses võiksid olla lisavõimalused (Should have):

  • Ilus UI broneerimiseks

Andmebaasiskeem

Workload

27.09.2016

  • Projekti kickoff
  • Loodi andmebaasimudel
  • Vaatemudelid
  • Süsteem logib tegevusi
  • Saab luua/muuta/kustutada/vaadata ettevõtteid

28.09.2016

  • Loodi wiki leht
  • Täiendatud andmebaasi meta väljadega
  • Lisatud metaväljad vaatemudelitesse
  • LIsatud andmebaasi skeem
  • KLienditüübi haldus
  • Autotõstukite haldus
  • Kood VSO's

29.09.2016

  • Täiendatud andmebaasi meta väljadega
  • Tõstukite vabade aegade haldus
  • Broneerimine olemas

02.10.2016

  • Broneerida saab ainult vabu kohti
  • Vaadata tehtud broneeringuid

03.10.2016

  • Broneeringu tegemisel saadetakse nii ettevõttele, kui kliendile kinnitus emailile (kasutatakse SMTP serverit)
  • Seotud andmed on korrektsed ning eraldatud õigete parentite alla

04.10.2016

  • Kuupäeva väljad datetimepickeriga, parandatud default kuupäeva laadimist
  • Veaparandused
  • "Flash" teated tegevuste kohta.

16.10.2016

  • Kasutajad (registreerimine, sisselogimine)