Juhend: Kodutöö aines "Programmeerimine CSharp keeles" (2017)

From ICO wiki
Jump to navigationJump to search

Kodutöö aines "Programmeerimine C# keeles"

Eesmärk

Saada praktiline arenduskogemus .NET keskkonnas ning arendada meeskonnatöö kogemust ja analüüsivõimet. Kasutada arendusprotsessis koodihoidlat.

Reeglid

Ühte projektimeeskonda kuulub 3-5 tudengit(Soovituslik meeskonna suurus on 3-4). Ühel teemal võib teostada projekti üks või mitu meeskonda.Töö käiku kajastatakse https://wiki.itcollege.ee keskkonnas või soovi korral võib seda teha ka ajaveebis(blogis). Ajaveebi pidamise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg ja dokumentatsioon) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest. Ajaveebi loob ja ajaveebi haldab projektimeeskond vabalt valitud (avalikus) keskkonnas.

Projekti loomine ja arendamine Projekt lisatakse versioonihaldusesse, kasutades selleks [Team Foundation Service'it http://tfs.visualstudio.com/] ning õppejõule antakse ligipääs. Õppejõu live id: maitposka ät hotmail.com . Projekt peab olema alates algfaasist lisatud TFSi ning kogu tööprotsess toimub versioonihaldust kasutades

Tööde esitamine (prototüüb ja lõpptoode) Töö esitamisel pakitakse see kokku ning lisatakse wiki leheküljele link lähtekoodile. Kui töö lähtekoodi ei soovita mingil põhjusel avalikustata, tuleb õppejõuga selle jaoks sõlmida eraldi kokkulepe. Lähtekood on vajalik, et tööd oleks võimalik hinnata nii õppejõul kui kaastudengitel selle kohta retsensiooni kirjutada.

Team Foundation Service kasutamine (tänasel päeval Visual Studio online) Step-by-Step juhend

NB! Versioonihalduse kohta jagab õppejõud materjale.

Tähtaegadest kinnipidamine

Projekt jaguneb alamosadeks, millele on määratud tähtajad. Tähtaegade ületamisel võimalike punkte ei kaotata. Kui töö aga on esitatud tähtajaks, siis on võimalik selle eest teenida boonuspunkte (enamasti 0-10% võimalikust maksimumist boonust). Enne tähtaega esitatud töö ei tähenda automaatselt maksimumpunkte, kui see ei ole sooritatud korralikult.


NB! Juhul kui analüüsi tähtajast on möödunud nädal, määrab õppejõud meeskonnale ise vabalt valitud ülesande, mis on võetud näidis teemade alt. Peale seda ei ole võimalik teemat enam muuta.Samuti tähendab see seda, et meeskond ei ole teeninud analüüsi osa eest ühtegi punkti.

NB2! Juhul kui meeskond ei kaitse prototüüpi, vaid esitab lihtsalt lõpptoote, siis ei ole ka prototüübi eest võimalik punkte teenida.

Hindamine

Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud. Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. Tehnilisi ja vormistuslike puudujääke on võimalik korvata lisavõimaluste realiseerimisega.Üldjuhul tuleb loodud lahendust ka praktikumides või loengutes teistele tudengitele tutvustada (ca 10 min). Nagu eelpool mainitud, koosneb projekt erinevatest osadest. Punktide arvu määramisel arvestatakse ka tähtajast kinni pidamist, mille toimimisloogika on kirjeldatud eespool.

Retsensiooni miinimum sõnade arv on 250. Esimeses järgus siiski hindamise käigus keskendutatakse sisule, mis on kirja pandud.

Meeskonna kokkupanek ja idee

22.10.2017 (2p)

Tekitatakse meeskonna wiki lehekülg. Meeskonnal peab olema nimi ning see koosneb kolmest kuni viiest liikmest. Määratakse projektijuht. Juhul kui hakatakse blogi pidama kuskil mujal keskkonnas ilmub selle kohta link. Lühidalt peaks kirjeldama idee olemust nii, et selle üldine suund oleks arusaadav. Samuti peab olema märgitud tehnoloogia, milles hakatakse rakendust looma. Meeskond on loonud TFSi konto ning on saatnud õppejõule kutse.

Analüüs

05.11.2017 (4p) Analüütilise osa eesmärgiks on arendada tudengite analüüsioskust, mida on vaja ka päris tarkvaraarenduse protsessi juures.NB! Miinimum sõnade arv 700 Selle osa käigus peab valmima loodava rakenduse analüüs, mis sisaldab muu hulgas ka:

  • Analüüs rakendusele. (Mida see endas sisaldab? Mis on selle eesmärk? Mida tavakasutaja sellega teha saaks? Milliste osade realiseerimine võib osutuda problemaatiliseks?) Kui on tööjaotus paigas, siis tuua ka see välja.
  • Tuua välja nimekiri funktsionaalsusest, mida plaanitakse kindlasti teostada(Must have)
  • Nimekiri funktsionaalsustest, mis võiks olla, aga mida ei pruugita ajapuuduse tõttu realiseerida.(Nice to have)

Retsensioon: (3p) (12.11.2017)

Prototüüp + esitlemine

17.12.2017(10p)

Valmib projekti esmane realisatsioon. Laias laastus on peafunktsionaalsused realiseeritud(Nimekiri funktsionaalsusest, mida plaanitakse teostada). Rakenduses on loodud erinevad vaated, mis võimaldavad ülevaate rakendusest saada.


Enne kaitsmist on meeskond lisanud oma wiki leheküljele ka prototüübi lähtekoodi. Lisaks võiks enne kaitsmist avada ka versioonihalduse ajaloo taustal. Ideaalses maailmas on olemas siin ka lühike Powerpoint, kus on kirjas:

  • meeskonna nimi ja liikmed
  • töö senine kulg(kuna sai alustatud, missuguseid probleeme on ületatud ja kas midagi takistab tööga edasi liikumist)
  • mis on plaanis veel teha?
  • kui palju punkte võiks prototüübi eest meeskonna hinangul saada?



Prototüübi eest teenitakse maksimumpunktid juhul, kui

  • projekt on 75% ulatuses valmis, st
    • realiseeritud on 75% plaanitud funktsionaalsusest
  • rakenduse graafiline osa ei pea olema lõplikult(sillmailu ei ole vaja pakkuda)
  • logimine ei pea olema realiseeritud
  • kood ei pea olema täielikult kommenteeritud(ehk olemas on olulisemad kommentaarid, kõik meetodid aga ei pea sisaldama kommentaare)
  • domeenimudelis ei pea veel olema valideerimisreeglid olemas(DataAnnotations)
  • rakenduses võib esineda vigu, mida ei hallata (a'la kui numbrilisele väljale kirjutada "banaan", siis rakendus hangub)
  • vähesel määral on lubatud andmebaasiühenduste avamine ja selle kasutamine vaatemudelis ja vaates
  • vähesel määral on lubatud olukord, kus loogika on kirjutatud otse vaatesse, ilma vaatemudelita
  • andmete databinding ei ole kohustuslik

Juhul, kui meeskond ei tule oma prototüüpi esitama, siis sellisel juhul on võimalik prototüübi eest saada maksimaalselt 5 punkti. Sellisel juhul on kõige hilisem esitamise aeg 24. detsember. Peale seda ei ole võimalik prototüüpi enam esitada, vaid saab esitada ainult lõpptoote.

Allpool väljatoodud kellaaegadel on vaja kaitsma tulla ainult päevaõppe tudengitel. Kaugõpe peab saatma lihtsalt powerpointi 17. detsembriks koos lähtekoodiga.

Prototüübi kaitsmise ajad

Iga meeskond lisab iseseisvalt oma nime vastava aja taha. Aegu tuleks siis vajadusel lisada(15min sammuga) ning täita tuleks kõik ajad järjest.

18.12.2017

... ..

  • 16:15 -


21.12.2017

..

Lõpptoode

(30p)

Selleks faasiks peab projekt maksimumpuntkide saavutamiseks olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus.

Tudengid, kes soovivad eksami teha 8. jaanuaril, peavad lõpptoote esitama hiljemalt 8. jaanuaril enne eksami algust.

Tudengid, kes plaanivad tulla eksamit tegema 24ndal või 26ndal jaanuaril, peavad esitama oma lõpptoote hiljemalt 18. jaanuar. 18. jaanuaril toimub eksamieelne konsultatsioon + kaitsmine.

Retsensioon(4p)

Lõpptoote retsensioon peab valmis olema hiljemalt 23. jaanuar kell 23:59.

Esitlus/Kaitsmine

Kokkulepitud ajal enne eksamit (3p) Esitlusel kaitstakse projekti. Tutvustatakse tehnoloogiat, mida kasutati rakenduse realiseerimiseks. Lühidalt räägitakse tööjaotusest ning probleemidest, mis tekkisid projekti realiseerimisel. Näidatakse lähtekoodi ja demonstreeritakse oma rakendust teistele tudengitele, kes võivad selle kohta küsimusi küsida. Kestvus ~20min.

Kaitsmise ajad

Ideaalne esitlus, sisaldab endas ka powerpointi, kus on

  • väljatoodud meeskonna nimi ja liikmed
  • idee
  • realiseerimine
  • mis oli keerukas?
  • mida uut õpiti?
  • mõnede keerulisemate probleemide lahendamine
  • meeskonnaliikmete panus

Päevaõppe kaitsmised toimuvad 18.01.2018 ruumis 316 alates 11:30st Kaitsmisele registreerumine

...(ülesse poole võib aegu järjest juurde lisada 15min vahega. Palun aegu lisada järjest, mitte sisestada peale 12:00 aja näiteks 16:15


Kaugõppe kaitsmised toimuvad 20.01.2018 Kaitsmisele registreerimine:

Teemad 2017 sügis

Kodutööna tuleb luua:

Nõuded rakendusele

Loodav rakendus peab:

  • Peab kasutama andmebaasi (erikokkuleppel ka XML formaadis andmeallikat)
    • Andmebaasis peab olema vähemalt 6 andmebaasi tabelit
  • Peab võimaldama tegevuste kohta registri pidamist (logi)
    • Rakenduses tehtavad tegevused salvestatakse
  • Kasutama kasutajaliidesena ühte järgmistest: Windows Presentation Foundation, Windows Phone , Windows Store App või ASP.Net
  • Kood on kommenteeritud ning rakendus on varustatud dokumentatsiooniga
  • Maksimumpunktide jaoks kasutatakse vastavalt valitud tehnoloogiale soovitatud arendusmustreid
  • Kood on kirjutatud C# programmeerimiskeeles
    • Kuna aine nimi on "Programmeerimine C# keeles" ei tohi esitada rakendust, mis on loodud Javas, PHPs vms keeles
  • Rakendus on jaotatud kihtidesse

Loodav rakendus peab olema loodud objektorienteeritud lähenemist kasutades! Klassid, klassid, klassid

  • Kood on kommenteeritud

Lisapunkte annab:

  • Silmailu
  • Kood on kirjutatud häid praktikaid järgides ja on veatu(testimine, testimine, testimine)
  • Orginaalsed ideed ja hea äriidee

Kodune raamatukogu

Kodudes on tihti erinevaid raamatuid (filme, muud nänni) ja sõbrad tahavad neid vahel laenutada. Loo rakendus, mis

  • Võimaldaks sisestada kodused raamatud
  • Võimaldaks luua laenutajate profiile
  • Raamatuid välja laenutada (tähtajaliselt)
  • Laseks koostada erinevaid aruandeid (kodusolevad raamatud, väljalaenutatud raamatud, tähtaja ületanud laenutused jne)


Lisavõimalused

  • Kui laenutaja profiilis on e-mail, siis saada automaatselt e-kiri „kallis sõber see ja see, Sinu käes on minu raamat, kas tood tagasi ka?”
  • Kuva hoiatused, kui laenutaja laenutuste ajalugu on vilets või kui mõni raamat on tagastamata.
  • Lase lisada raamatutele pilt
  • Loo lihtne veebiliides (et sõbrad saaksid veebist vaadata, mis raamatud kasutajal kodus veel alles on)

Või

CRM

Oma klientidest peab olema ülevaade. Loo rakendus, mis võimaldab:

  • Kliente ning nende kontaktisikuid sisestada, muuta ning kustutada
  • Võimalda sisestada kliendikontakte
  • Koostada hinnapakkumisi klientidele, kusjuures hinnapakkumine lisatakse süsteemi ka kui kliendikontakt ning saadetakse samast süsteemist kliendile.
  • Kliendi andmete vaatamisel kuvatakse ka kliendikontaktid


Lisavõimalused

  • Loo võimalus, kus kontaktisiku sünnipäeva saabumisel saadetakse automaatselt inimesele meil õnnesoovidega
  • Õnnitlusmeilide template’sid võiks olla mitu
  • Loo võimalus kliendi huvide (huvialade) kajastamiseks süsteemis

Meeskonnad 2017

Päevaõpe

Meeskond Demo

Wiki lehekülg Meeskond:Demo Meeskonnaliikmed:

  • esimene
  • teine

Analüüsi retsensioon meeskonnale ... asub siin https://wiki.itcollege.ee/index.php/Talk:Kalimali_budget

Meeskond X

Analüüsi retsensioon meeskonnale Demo: https://wiki.itcollege.ee/index.php/Talk:Meeskond:Demo

..

Meeskond das Flugzeug

Wiki leht: das Flugzeug

  • Frank Koppel

Meeskond Whipround

Wiki leht: Whipround

  • Leho Kivistik
  • Hannes Mäeorg
  • Tarmo Luugus

Analüüsi retsentsioon meeskonnale Whipround

Lõpptoote retsensioon meeskonnale XYZ

Meeskond .njet

Wiki leht: .njet

  • Edgar Tereping
  • Priit Järv
  • Jane Kaldma

Analüüsi retsentsioon meeskonnale ITBaar

Lõpptoote retsensioon meeskonnale Raavo

Meeskond EluOnLill

Wiki leht: EluOnLill

  • Henrik Prangel
  • Kert Saarma
  • Carlos Kirtsi

Retsensioon: Tiimile VirtualBar

Meeskond EurosDollas

Wiki leht: EurosDollas

  • Simo Sirkas
  • Marten Tammeleht
  • Mihkel Tääkre

Analüüsi retsensioon rühmale Pakiraam

Lõpptoote retsenioon Pakiraam

Meeskond VirtualBar

Wiki leht: VirtualBar

  • Rando Kurel
  • Markus Mänd
  • Erik Kaup

Analüüsi retsentsioon rühmale EluOnLill

Meeskond Raavo™

Wiki leht: Raavo™

  • Kristo Leesmann
  • Peeter Fridolin
  • Rando Rommot

Analüüsi retsensioon rühmale 123

Lõpptoote retsensioon rühmale EluOnLill

Meeskond IT Squad

Wiki leht: IT Squad

  • Pavel Fleišer
  • Anna Levijeva
  • Anton Kuksov

Retsensioon tiimi XYZ analüüsile

Meeskond 123

Wiki leht: 123

  • Paul Richard Lettens
  • Helen Riisalu
  • Ahto Ahven

Analüüsi retsensioon meeskonnale XYZ asub siin: XYZ

Meeskond TrackPlace

Wiki leht: TrackPlace

  • Marek Juhanson
  • Kaarel Pärtel
  • Rauno Lõhmus
  • Merilyn Merisalu

Analüüsi retsensioon meeskonnale Lill asub siin: Lill

Projekti lõpptoote retsensioon meeskonnale Raavo asub siin: Raavo

Meeskond Lill

Wiki leht: Lill

  • Alo Avi
  • Arnika Rästa
  • Sven Veelaid
  • Karmen Lillemets
  • Marite Rammo

Analüüsi retsensioon meeskonnale ÄraSööKüpsiseidVoodis

Lõpptoote retsensioon meeskonnale VirtualBar

Meeskond ITBaar

Wiki lehekülg [ITBaar]

  • Christo Aruste
  • Heleriin Malkov
  • Tõnis Prants

Projekti lähtekood .zip failina: ITBaar

Analüüsi retsensioon meeskonnale Whipround

Lõpptoote retsensioon meeskonnale TrackPlace

Meeskond Scraper

Wiki leht: Scraper

  • Heidi Koppel
  • Ove Kangur

Retsensiooni tiimile IT Squad leiate siit: Retsensioon

Lõpptoote retsensioon tiimile Raavo: Retsensioon

Meeskond Pakiraam

Wiki lehekülg [: Pakiraam]

  • Markus Kildemaa
  • Indro Kottise
  • Kristo Naeris

Retsensioon meeskonna Whipround analüüsile

Retsensioon meeskonna TrackPlace lõpptootele

Meeskond ÄraSööKüpsiseidVoodis

Wiki lehekülg ÄraSööKüpsiseidVoodis

  • Simo Jaanus
  • Artur Tammiste
  • Valdo Taevere
  • Kristina Rästas

Meeskonna analüüsi retsensioon tiimile Raavo

Meeskonna lõpptoote retsensioon tiimile Raavo

Meeskond DriimTiimKriim

Wiki lehekülg DriimTiimKriim

  • Kaspar Kaal
  • Brita Pentšuk

Retsensioon: Das Flugzeug

Meeskond Phoney

Wiki lehekülg Phoney

  • Karl Erik Õunapuu
  • Margus Põlma

Meeskond XYZ

Wiki lehekülg XYZ

  • Andero Samelselg
  • Eve Ormisson
  • Kaisa Lindström

Retsensioon tiimi Scraper analüüsile

Kaugõpe

Meeskond: Kalimali budget

Wiki leht: Kalimali budget

Liikmed:

  • Katrin Lasberg - projektijuht
  • Liina Laumets
  • Maile Mäesalu
  • Liis Talsi

Prototüüp: asub siin
Lõpptoode: asub siin
Analüüsi ja lõpptoote retsensioon meeskonnale H2I asub siin

Meeskond: SharpResto

Wiki leht:SharpResto

Liikmed:

  • Andres Aava - projektijuht
  • Henri Annilo
  • Jaan Koolmeister
  • Lauri Üksti

Analüüsi retsensioon meeskonnale Kalimali budget: retsensioon
Lõpptoote retsensioon meeskonnale TeravMDB: retsensioon

Meeskond: Timeify

Wiki leht:Timeify

Liikmed:

  • Egert Loss - projektijuht
  • Priit Rätsep

Retsensioon meeskonnale TrackPlace

Tiim: Carparts

Wiki Leht:Carparts
Liikmed:

  • Andres Kõiv
  • Taivo Liik -projektijuht
  • Peeter Stamberg

Meeskonna Carparts retsensioon meeskonnale Eurosdollas analüüsile: https://wiki.itcollege.ee/index.php/Talk:Eurosdollas

Meeskond: Hardware Monitoring

Wiki leht: HardwareMonitoring

Liikmed:

  • Joonas Ervald - projektijuht
  • Maie Palmeos
  • Jan Pentšuk

Lõpptoode (zip-failina): https://goo.gl/7NVH7N
Lõpptoote lähtekood: https://github.com/ginzae/I243HardwareMonitor
Retsensioon meeskonnale 2Do
Lõpptoote retsensioon meeskonnale TeravMDB

Meeskond: TeravMDB

Wiki Leht: TeravMDB
Liikmed:

  • Alan Alliksoo
  • Aleksandr Petrushihin - projektijuht

Retsensioon meeskonna SharpResto analüüsile

Lähtekood asub http://enos.itcollege.ee/~aallikso/teravmdb/

Lõpptoote retsensioon meeskonnale HardwareMonitoring

Meeskond: ERROR IM002

Wiki Leht: ERROR IM002
Liikmed:

  • Ruudi Vinter
  • Alvar Suun
  • Andres Tambek

Prototüüp:
Lõpptoode:
Analüüsi retsensioon meeskonnale HardwareMonitoring
Lõpptoote retsensioon meeskonnale HardwareMonitoring

Meeskond: Power Of Two

Wiki leht: Power Of Two
Liikmed:

  • Andrei Pugatšov - projektijuht
  • Anton Meženin
  • Rain Kärner

Retsensioon meeskonna TaxiService analüüsile

Meeskond: PlantWise

Wiki leht: PlantWise
Liikmed:

  • Allar Vendla - projektijuht
  • Anita Sepp
  • Gert Vesterberg

Retsensioon meeskonna Phoney analüüsile

Retsensioon meeskonna Timeify analüüsile


Lähtekood (Pakitud .zip faili)

Androidi reliis* (.apk fail - *NB! esimene API päring võtab veidi aega)

Meeskond: JEMP

Wiki leht: JEMP
Liikmed:

  • Jüri Ahhundov
  • Erik Ehrbach - Projektijuht
  • Marko Linde
  • Pille Ulmas

Retsensioon meeskonna PennyFriends analüüsile

Prototüübi/valmisrakenduse presentatsioon

Lähtekood (kui ligipääs piiratud, palun teada anda erik.ehrbach@itcollege.ee)

Rakenduse asukoht githubisning kes soovib võib kohe kloonida : https://github.com/er1ck/ElectionApp.git

Retsensioon meeskonna H2I projekti/lõpptoodanugu retsensioon

Meeskond: Memorize

Meeskonna koduleht: https://mylibrary16.wordpress.com/

Liikmed:

  • Madis Uudam - projektijuht, arendaja
  • Olle Mikk - arendaja

Meeskond: 2Do

Wiki leht: 2Do
Liikmed:

  • Merike Meizner
  • Egert Närep
  • Kirstin Saluveer - projektijuht
  • Jaak Vaher

Retsensioon meeskonnale Meeskond_Projekt asub siin

Lõpptoote retsensioon meeskonnale H2I asub siin

Meeskond: Ennustajad

Wiki leht: StockForecaster
Liikmed:

  • Meelis Sääsk - projektijuht
  • Andrei Tomba

Retsensioon meeskonnale Ennustajad: siin

Meeskond: PennyFriends

Wiki leht: PennyFriends
Liikmed:

  • Helen Kösta
  • Kersti Miller
  • Kirke Narusk

Prototüüp:
Lõpptoode: siin
Lõpptoote dokumentatsioon: siin
Retsensioonid:

  • Analüüsi retsensioon meeskonnale Märkmik asub siin
  • Lõpptoote retsensioon meeskonnale Kalimali asub siin

Meeskond: TaxiService

Wiki leht: TaxiService
Liikmed:

  • Dmitri Lukas
  • Jevgeni Jurtšenko

Valmis toode:

Meeskond: H2I

Wiki leht: H2I
Liikmed:

  • Ingvar Lukas
  • Helen Oppar
  • Hardi Tiitus

Analüüsi retsensioon meeskonnale PlantWise asub siin.
Lähtekood asub siin.
Lõpptoote retsensioon meeskonnale PlantWise asub siin.

Meeskond: Märkmik

Wiki leht: Märkmik
Liikmed:

  • Kristiina Keelmann
  • Häli Ann Reintam

Retsensioon meeskonnale H2l: Retsensioon 2

Prototüüp: Slaidid

Meeskond: Meeskond_Projekt

Wiki lehekülg: Meeskond_Projekt
Meeskonnaliikmed:

  • Rahel Kangur

Retsensioon meeskonna EluOnLill analüüsile: https://wiki.itcollege.ee/index.php/Talk:Meeskond:EluOnLill

Meeskond: Kaloriarvutaja

Wiki leht: Kaloriarvutaja
Liikmed:

  • Vjatsheslav Aprelkov - Projektijuht
  • Sergei Kaganski

Retsensioon meeskonnale Kaloriarvutaja: siin

Meeskond: CurrentEur

Wiki leht: CurrentEur
Meeskonnaliikmed:

  • Maarija Mikiver
  • Kairi Kallas

Retsensioon meeskonna TeravMDB analüüsile.