Juhend: Kodutöö aines "Programmeerimine CSharp keeles" (2017)
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.
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.
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.
Retsensioon(4p)
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
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
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
- Laura Pirso
- Teet Adamson
Meeskond Whipround
Wiki leht: Whipround
- Leho Kivistik
- Hannes Mäeorg
- Tarmo Luugus
Meeskond .njet
Wiki leht: .njet
- Edgar Tereping
- Priit Järv
- Jane Kaldma
Meeskond EluOnLill
Wiki leht: EluOnLill
- Henrik Prangel
- Kert Saarma
- Carlos Kirtsi
Meeskond EurosDollas
Wiki leht: EurosDollas
- Simo Sirkas
- Marten Tammeleht
- Mihkel Tääkre
Meeskond VirtualBar
Wiki leht: VirtualBar
- Rando Kurel
- Markus Mänd
- Erik Kaup
Meeskond Raavo™
Wiki leht: Raavo™
- Kristo Leesmann
- Peeter Fridolin
- Rando Rommot
Meeskond IT Squad
Wiki leht: IT Squad
- Pavel Fleišer
- Anna Levijeva
- Anton Kuksov
Meeskond TrackPlace
Wiki leht: TrackPlace
- Marek Juhanson
- Rauno Lõhmus
- Merilyn Merisalu
Meeskond Lill
Wiki leht: Lill
- Alo Avi
- Arnika Rästa
- Sven Veelaid
- Karmen Lillemets
- Marite Rammo
Analüüsi retsensioon meeskonnale ÄraSööKüpsiseidVoodis
Meeskond ITBaar
Wiki lehekülg [ITBaar]
- Christo Aruste
- Heleriin Malkov
- Tõnis Prants
Meeskond Scraper
Wiki leht: Scraper
- Heidi Koppel
- Ove Kangur
Retsensiooni tiimile IT Squad leiate siit: Retsensioon
Meeskond Pakiraam
Wiki lehekülg [: Pakiraam]
- Markus Kildemaa
- Indro Kottise
- Kristo Naeris
Meeskond ÄraSööKüpsiseidVoodis
Wiki lehekülg ÄraSööKüpsiseidVoodis
- Simo Jaanus
- Artur Tammiste
- Valdo Taevere
- Kristina Rästas
Meeskond DriimTiimKriim
Wiki lehekülg DriimTiimKriim
- Kaspar Kaal
- Brita Pentšuk
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:
Lõpptoode:
Retsensioonid:
Meeskond: SharpResto
Wiki leht:SharpResto
Liikmed:
- Andres Aava - projektijuht
- Henri Annilo
- Jaan Koolmeister
- Lauri Üksti
- Andreas Porman
Meeskond: Timeify
Wiki leht:Timeify
Liikmed:
- Egert Loss - projektijuht
- Priit Rätsep
Tiim: Carparts
Wiki Leht:Carparts
Liikmed:
- Andres Kõiv
- Taivo Liik -projektijuht
- Peeter Stamberg
Meeskond: Hardware Monitoring
Wiki leht: HardwareMonitoring
Liikmed:
- Joonas Ervald - projektijuht
- Maie Palmeos
- Jan Pentšuk
Prototüüp:
Lõpptoode:
Retsensioonid:
Meeskond: TeravMDB
Wiki Leht: TeravMDB
Liikmed:
- Alan Alliksoo
- Aleksandr Petrushihin - projektijuht
- Anni-Bessie Kitt
- Marie Udam
Meeskond: ERROR IM002
Wiki Leht: ERROR IM002
Liikmed:
- Ruudi Vinter
- Alvar Suun
- Andres Tambek
Prototüüp:
Lõpptoode:
Retsensioonid:
Meeskond: Power Of Two
Wiki leht: Power Of Two
Liikmed:
- Andrei Pugatšov - projektijuht
- Anton Meženin
- Rain Kärner
Meeskond: PlantWise
Wiki leht: PlantWise
Liikmed:
- Allar Vendla - projektijuht
- Anita Sepp
- Gert Vesterberg
Meeskond: JEMP
Wiki leht: JEMP
Liikmed:
- Jüri Ahhundov
- Erik Ehrbach - Projektijuht
- Marko Linde
- Pille Ulmas
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
Meeskond: Ennustajad
Wiki leht: StockForecaster
Liikmed:
- Meelis Sääsk - projektijuht
- Andrei Tomba
Meeskond: PennyFriends
Wiki leht: PennyFriends
Liikmed:
- Helen Kösta
- Kersti Miller
- Kirke Narusk
Retsensioonid: Talk:Märkmik
Meeskond: TaxiService
Wiki leht: TaxiService
Liikmed:
- Dmitri Lukas
- Jevgeni Jurtšenko
Meeskond: H2I
Wiki leht: H2I
Liikmed:
- Ingvar Lukas
- Helen Oppar
- Hardi Tiitus
Meeskond: Märkmik
Wiki leht: Märkmik
Liikmed:
- Kristiina Keelmann
- Häli Ann Reintam
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