Meeskond: TrackPlace

From EIK wiki


Projekt aines "Programmeerimine C# keeles"

Projekti prototüübi kaitsmine: 21.detsember 2017 kell 11:30

Projekti esitamine: 18.jaanuar 2018 kell 12:30


Projekti meeskond

  • Rauno Lõhmus, D22 - projektijuht
  • Merilyn Merisalu, D22


Projekti idee

Projekti raames loodava rakenduse ideeks on teha kasutajaliides veoautode tellimiseks vastavalt koorma mahule ning jooksva ülevaate pakkumisest saadavalolevatest ja koorma mahule vastavatest veoautodest.

Must have funktsionaalsus:

  • Tellija andmete kuvamine
  • Veoki lisamine andmebaasi vastavalt veoki parameetritele (mudel, kasti suurus, kandevõime)
  • Tellimuse sisestamine ajagraafikusse ja tellimuse sidumine sobiva veokiga
  • Tellitud tellimuste kuvamine ajagraafikus


Nice to have funktsionaalsus:

  • Veokite sorteerimine vastavalt nende mahutavusele
  • Tellimuse andmete printimine
  • Kena ja mugav kasutajaliides


Kasutatav tehnoloogia

  • C#
  • .NET
  • Entity Framework koos LINQ'iga (Language Intergrated Query)
  • WPF
  • Team Foundation Service


Projekti analüüs

Meeskond TrackPlace soovib C# projektina luua töölauarakenduse nimega TrackPlace, mille eesmärgiks on pakkuda veokite tellimisteenust üle Eesti. Loodava rakenduse tööpõhimõtte on järgnev:

  • Rakenduse avamisel, avaneb tellijale kasutajaliides, kus palutakse täita tellimuse esitamisvorm. Esitamisvormi tuleb sisestada tellija andmed, milleks on nimi (Full Name), emaili aadress (E-mail Address), tellija aadress (Costumer’s Address) ja telefoni number (Phone number).

Järgnevalt peab tellija sisestama andmed, mille järgi toimub andmebaasist sobivate veokite valimine. Andmed, mida tellija peab sobiva veoki leidmiseks sisestama, on järgmised:

  • Aadress (Address), kus on kirjas tellitava veoki veosuunad, nii kauba pealelaadimiskoha andmed kui ka mahalaadimiskoha andmed (maakond (County), linn (City), küla (Village), tänav (Street) ja maja number(House Number)).
  • Lastimõõtmed (Cargo Dimensions), kuhu tellijal tuleb sisestada lasti pikkus (Length), laius (Weight) ja kõrgus (Height).
  • Lastikaal (Cargo Weight), kuhu sisestatakse koorma kaal (tonnides).
  • Veoki kasutamise soovitav alguskuupäev ja kellaaeg (Start Date and Time) ning kasutusaja eeldatav lõppkuupäev ja kellaaeg (End Date and Time).
  • Rippmenüüst nimega veoki tüüp (Truck Type) on tellijal võimalik valida lastiveoks sobiv veokitüüp: Poolhaagisega veokid (Trucks with Semi-trailers), Täis- ja keskteikhaagisega veokid (Trucks with full trailers), JumboTreileriga ehk Megahaagisega veokid (Trucks with jumbo (Mega-) trailers) ja Tagaluukauto (Tail-lift truck).
  • Tellimuse viimasesse lahtrisse, lahtrisse kommentaarid (Comments) saab tellija sisestada täpsustavat informatsiooni tellimuse kirjeldamiseks.


Kõikide tellimust puudutavate väljade täitmine on kohustuslik. Vajutades nupule „Vali veok“ (Choose truck) saadetakse sisestatud andmed päringu kujul andmebaasi, kust tagastatakse, vastavalt päringus esitatud kriteeriumitele, sobivad veokid. Kui tellija on sobiva veoki leidnud, lisatakse tellimus ka veoki ajagraafikusse. Pärast tellimuse esitamist, võimaldab loodav rakendus ka tellimuse kohta käivate andmete (Tellimuse number, tellija sisestatud andmed, tellimuse andmed, valitud veokitüüp, veoki ID, tellimuse maksumus), väljaprintimist paberkandjale. Eelnevalt kirjeldatud protsess toimub läbi kena ja mugava kasutajaliidese.


Rakenduse funktsioonid jagunevad Must have funktsioonid ehk funktsioonid, mis peavad rakenduse esitlemisajaks olema kindlat väljaarendatud ja Nice to have funktsioonid, mis lisaksid küll rakendusele lisaväärtust, kuid mille puudumine ei oleks takistuseks rakenduse põhiidee täitmisel.

Rakenduse Must have funktsioonide hulka kuuluvad järgmised funktsionaalsused:

  • Tellija andmete kuvamine
  • Veoki lisamine andmebaasi vastavalt veoki parameetritele
  • Tellimuse sisestamine ajagraafikusse ja sidumine tellija poolt väljavalitud veokiga
  • Tellitud tellimuste kuvamine ajagraafikus


Rakenduse Nice to have funktsioonide hulka kuuluvad järgmised funktsionaalsused:

  • Veokite sorteerimine vastavalt nende mahutavusele
  • Tellimuse andmete väljaprintimine paberkandjale
  • Kena ja mugav kasutajaliides


Rakenduse väljatöötamisel rakendatakse Windows Presentation Foundation (WPF) rakenduste esitlustehnoloogiat, mille üheks osaks on ka arendusmudel Model-Viev-ViewModel (MVVM). MVVM arendusmudeli eeliseks on kasutajaliidesest selgelt eristatud äri- ja esitlusloogika. MVVM arendusmudel jaguneb kolme erinevasse klassifaili:

  • Vaatefail, mis kätkeb kasutajaliidest ning selle loomisloogikat.
  • Vaatemudelifaili, mis sisaldab informatsiooni rakenduse esitlusloogika ning -oleku kohta.
  • Mudelifail, mis sisaldab informatsiooni rakenduse äripoole ning vajaminevate andmete kasutusviiside kohta.


Rakenduse loomisel on kasutusel C# programmeerimiskeelt, .Net raamistiku ning andmebaasi ülesehitamiseks ja andmebaasiga suhtlemiseks kasutatakse Entity Framework'i koos LINQ'iga (Language Intergrated Query).


Projekti loomise käigus loodud (SWOT) analüüsi põhjal, ilmnesid järgnevad asjaolud:

Projekti teostusega kaasnevad tugevused (S):

  • Grupitöö tulemusena töötava rakenduse prototüübi loomine.
  • Annab võimaluse arendada programmeerimisoskust C# programmeerimiskeeles.
  • Võimaldab tutvuda Microsoft’i poolt väljatöötatud .Net raamistiku võimalustega, Entity Framework'i, WPF esitlustehnoloogia, projektihoidla Team Foundation Service’i ning MVVM arendusmudeli poolt pakutavate võimalustega projekti arendamiseks ja rakenduse väljatöötamiseks.
  • Annab võimaluse rakendada teistes ainetes õpitut oma projekti loomisel.
  • Arendada oskust töötada meeskonnaliikmena, sealjuures arendades ka muudatuste vajalikkuse selgitamisoskust, misläbi tagatakse, et iga meeskonnaliige mõistab koodis tehtavaid muudatusi ja, et muudatuste väljapakkuja suudab, teiste meeskonnaliikmete nõusolekul, kas omandatud teadmiste baasil või teiste meeskonnaliikmete abiga, soovitud muudatused projekti koodi failides läbi viia.
  • Rakenduse esitlemisoskus, mis taaskord eeldab loodava rakenduse koodi ja funktsionaalsuste põhjalikku tundmist.


Projekti teostusega kaasnevad nõrkused (W):

  • Esmakordne ühisprojekti käigus rakenduse loomine.
  • Erinevad arusaamad rakenduse funktsionaalsuste kirjapanekul koodina võivad aeglustada projekti teostamise külgnemist.
  • Erinev C# koodi tundmis- ja kirjutamisoskuse tase.
  • Kuna suurem osa projekti arutelust toimub läbi Skype’i gruppi, siis sellest tulenevalt võib vaheetappide lahtimõtestamisel ja muudatuste tegemisel, tekkida üksteisest möödarääkimisi ning valearusaamu projekti teostusprotsessist.
  • Ettenägematud takistused projekti teostamisel, millest tingituna võib mingi soovitud funktsionaalsuse õigeaegne valmisjõudmine olla küsitav (näiteks ühe või mitme meeskonnaliikme haigestumine, jms).
  • Hetkel puudub täpne tööjaotus.


Projekti teostusega kaasnevad võimalused (O):

  • Projekti edasiarendamine tulevikus.
  • Rakenduse reaalne jõudmine kasutusse.


Projekti teostusega kaasnevad ohud (T):

  • Projekti rakendusega ei ole jõutud soovitud faasi ehk faasi, kus rakenduse funktsionaalsused hõlmaksid kõiki Must have nimekirjas väljatoodud funktsionaalsusi ning rakenduse prototüüpi ei ole võimalik esitleda (see tähendab, et rakenduse prototüübi töös esineks vigu, mis oleksid takistuseks projekti käigus loodud rakenduse prototüübi ja selle juurde kuuluvate erinevate funktsionaalsuste esitlemisel).
  • Projekti teostamise käigus võib ilmneda asjaolu, et rakendust ei ole võimalik soovitud kujul teostada.


Kasutajaliidese vaated

Login TP.jpg Registration TP.jpg


Projektihoidla

Projektihoila: https://teamtrackplace.visualstudio.com/TrackPlace/
Projekt: http://enos.itcollege.ee/~ralohmus/c/


Retsensioonid

Analüüsi retsensioon meeskonnale Lill asub siin: Lill

Projekti lõpptoote retsensioon meeskonnale Raavo asub siin: Raavo


Logi

  • 11.september 2017 Meeskonna moodustamine
  • 27.september 2017 Idee paikapanek
  • 04.oktoober 2017 Projekti idee algversioon pildina
  • 21.oktoober 2017 Wikilehe loomine
  • 22.oktoober 2017 Projektihalduskonto loomine
  • 05.november 2017 Analüüsi koostamine
  • 12.november 2017 Analüüsi retsensioon meeskonnale Lill
  • 26.november 2017 Projekti domeenimudeli loomine
  • 21.detsember 2017 Projekti prototüübi kaitsmine
  • 18.jaanuar 2018 Projekti lõpptoote esitlus
  • 24.jaanuar 2018 Projekti lõpptoote retsensioon meeskonnale Raavo