Meeskond "KRTK": Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with '== '''Projekti sisu''' == Projekti sisuks on meeskonnatöö tulemusena tekitada koduse raamatukogu rakendus, mis täidab vähemalt kodutöö juhendis märgitud miinimumnõudeid…')
 
 
(8 intermediate revisions by the same user not shown)
Line 2: Line 2:




Projekti sisuks on meeskonnatöö tulemusena tekitada koduse raamatukogu rakendus, mis täidab vähemalt kodutöö juhendis märgitud miinimumnõudeid. Windows Forms rakendus, mis töötab MSSQL baasi peal. Otsinguleht ASP.NET.
Projekti sisuks on meeskonnatöö tulemusena tekitada koduse raamatukogu rakendus, mis täidab vähemalt kodutöö juhendis märgitud miinimumnõudeid. Valmib Windows Forms rakendus, mis töötab MSSQL baasi peal.  




'''Liikmete kontaktid'''
'''Liikmed'''


Ivo Lõhmus - skype: dnepr650, mail: lohmus.ivo@gmail.com, 53436974
Ivo Lõhmus


Indrek Kahu - skype: indrek.kahu, mail: indrek.kahu@mail.ee, 58150435
Indrek Kahu


Tanel Staub - skype: , mail: tanelst87@hot.ee, 5106554
Tanel Staub




Line 17: Line 17:




Ivo - projektijuht ja programmeerija. Meeskonnatöö koordineerimine, TF (Codeplex) ülesseadmine, dokumentatsiooni koostamine (wiki) jne
Ivo - projektijuht ja programmeerija. Meeskonnatöö koordineerimine, TF (Codeplex) ülesseadmine, dokumentatsiooni koostamine (wiki), andmebaasi skeema, sisestamisvorm, laenutamine jne


Tanel - programmeerija.  
Tanel - programmeerija. Otsing, muutmine, kontrollid, raportid, bugiparandused jne.


Indrek - programmeerija.  
Indrek - programmeerija. bugiparandused, 1 raport + kehva ajaloo hoiatus (pooleli!)
 
 
'''Disain ja ülesehitus'''


'''Kood'''
'''Kood'''
Line 30: Line 27:
Lähtekood asub [http://krtk.codeplex.com/SourceControl/list/changesets siin]
Lähtekood asub [http://krtk.codeplex.com/SourceControl/list/changesets siin]


'''PS!''' Indreku poolt tehtavad lisad on pooleli (seisuga 8.12.2010). Esitamisel nähtud töötav versioon on [http://krtk.codeplex.com/SourceControl/changeset/changes/1730 CS1730 ] all.
EDIT: seisuga 11.12.2010 on viimane versioon (1 lisaraport juures) allalaetav patches alt.


'''PS!''' seisuga 14.11.2010 on tegu mustandiga, mis on mõeldud vaid tiimi liikmetele:
Rakendus kasutab eraldiserisvat MSSQL baasi - baasi loomise skripti saab Codeplexist Patches alt. Andmebaasiühendus tuleb app.configis ära määrata!
 
 
 
Vormid:
 
 
1. sisestamine (ja samad vormid muutmise korral):
 
Raamat:
 
- Pealkiri
- Autor
- Asukoht (Dropdownist valid riiuli)
- Kas eksisteerib? (olemas/hävinud - kui raamat kaob siis peab märkima staatuseks selle, mitte kirje kustutama. uue raamatu sisestamisel võiks peidetud
 
olla...)
 
Laenutaja:
 
- Nimi
- e-mail
- kommentaar
- staatus (aktiivne/lahkunud - uue laenutaja sisestamisel võiks peidetud olla...)
 
Riiul:
 
- nimi
 
 
 
 
2. Otsimine ja raporteerimine
 
Otsinguparameetrid:
 
- pealkiri (autocomplete?)
- autor (autocomplete?)
- asukoht (dropdown)
- olemas/hävinud (dropdown)
- kasutaja, kellele laenutatud
- tähtaeg
 
ja nende lõpus nupp "OTSI"..
 
 
Tulemuste tabel (sorditav päistele klikates)
 
- pealkiri
- autor
- asukoht
- kasutaja
- sees/väljas
- tähtaeg
- populaarsus
 
Otsingutulemuse pealt võiks genereerida raporti (csv cõi pdf vms. mõne välise komponendi abil?). Seega oleks raportid dünaamilised aga võib teha ka
 
"vaikeraportid" - mis oleks lihtsalt kindlate otsinguparameetrite abil realiseeritud (a´la "kõik väljalaenutatud raportid")




Samuti võiks genereerida "avaliku otsingu" vormi, mida laenutajad saaks kasutada. natuke piiratud võimalustega, st asukohta, olemas/hävind jms pole vaja näidata.
'''Programmi funktsionaalsus'''


1. Sisestamise vorm


3. laenutamine
Antud vormil saab sisestada raamatuid, laenutajaid ja riiuleid.  


Tegelt oleks ilus kui otsingutulemuste tulbas saaks iga raamatu järel öelda, et "laenuta kasutajale..." - aga see läheb keeruliseks (tabeli uuendamine laenutamise järel jne. Seega võiks pigem teha eraldi vormi laenutamiseks:
[[File:sisesta.png]]


- raamat (lihtsam: dropdown kõigi raamatute nimedega, kenam - "vabateksti autocomplete otsing")
2. Laenutamise ja tagastamise vorm:
- kasutaja (lihtsam: dropdown kõiki kasutajatega, kenam - "vabateksti autocomplete otsing")
- tähtaeg (datepickeriga)
- "Laenuta"


KUI sõber on varem hilinend (laenutaja tabelis "tahtaegsus >0") siis kuvame popupiga vms hoiatuse ja küsime lisakinnitust.
Selle vormi abil saab raamatuid välja laenutada ja tagastatuks märkida:


[[File:laenuta.png]]


4. "muutmine"
3. Otsinguvorm:


- raamat
See vorm võimaldab otsida raamatuid ja vajadusel muuta raamatute andmeid - näiteks asukohta (millises riiulis raamat asub) või olemasolu (kui raamat kaob või hävib, siis saab märkida "mitteeksisteerivaks/hävinuks"
- kasutaja
- riiul


sellised otsinguväljad (või lihtsamal juhul dropdownid) võiksid olla ja nupud "edit" - see avaks muutmisvormid (samad, mis sisestamisel aga eeltäidetud)


[[File:otsing.png]]




4. Raportite vorm


Sellel vormil on nupud erinevate raportite koostamiseks. Raportid salvestatakse tekstifailidena (raportite kataloog tuleb app.configis määrata!)






''' Tööülesanded '''


''' Ülesehitus'''


''Loodud klassid:''


1. Analüüs / rakenduse disain
*Form1.cs - rakenduse vorm.
*RaamatService.cs - teenusklass raamatutega seotud tegevuste jaoks.
*LaenutajaService.cs- teenusklass laenutajatega seotud tegevuste jaoks.
*RiiuliService.cs - teenusklass riiulitega seotud tegevuste jaoks.
*Andmetootlus.cs - enamus äriloogikast.
*Log.cs - logimine.


2. ERD / skeema tegemine
Iga objekti (raamat, riiul, laenutaja) jaoks on oma klass - päringud/salvestamised/kontrollid jms - andmetöötluse ja vormi jaoks vajalikud päringud käivad nende kaudu.  


3. Sisestamis/muutmisvormid (+ baasi kirjutamine):
''ERD:''
    - Raamat
    - Kasutaja
    - Riiul


4. Otsingu vorm (+baasist lugemine)
[[File:erd.jpg]]
    - otsing tööle panna
    - autocomplete (optional)?
    - tulemuste sortimine päiste järgi


5. raportite genereermiseks välise komponendi leidmine ja tööleajamine
'''Probleemid'''


6. laenutamise vorm
Tiimi liikmed õpivad IT Süsteemide administreerimist (loe: mõõdukas või puuduv programmeerimise kogemus ja huvi) - seetõttu oli selle projekti teostamine päris keeruline. Indrekule ja Tanelile oli ka see esimene kokkupuude andmebaasidega, niiet väga palju energiat on võtnud "andmebaaside alustega tuvumine".  Ka meeskonnatöös on meil natuke arenguruumi:)
    - laenutamise tekitamine
    - hoiatuse kuvamine kui lohakas laenutaja on


7. E-maili saatmine hilinemise korral
Lõpplahendus ei ole päris täiuslik ja tõenäoliselt sellel programmil väga palju kasutajaid ei saa olema:)


8. "scheduler service"
Mõned tehnilised probleemid
    - kontrollib regulaarselt tähaegsust
    - saadab mittetähtaegsetele e-mailid


9. Laenutajate otsingulehe tegemine


10. wiki lehe uuendamine
*DB ConnectionStringi lugemine konfifalist valmistas probleeme (kui kasutasime projektiga kaasasolevat .mdf faili, mitte eraldi SQL servrit).
*Riiuli muutmisega sattusime probleemi otsa, kus juba olemasolevat seost (FK reference) ei lubatud muuta.
*Logimine jäi poolikuks - nii lihtlabaselt objekti stringiks sundida siiski ei saa :( - näiteks raamatu salvestamisel logitakse seetõttu tabelinimi, mitte väljade väärtused.

Latest revision as of 17:36, 18 December 2010

Projekti sisu

Projekti sisuks on meeskonnatöö tulemusena tekitada koduse raamatukogu rakendus, mis täidab vähemalt kodutöö juhendis märgitud miinimumnõudeid. Valmib Windows Forms rakendus, mis töötab MSSQL baasi peal.


Liikmed

Ivo Lõhmus

Indrek Kahu

Tanel Staub


Tööjaotus


Ivo - projektijuht ja programmeerija. Meeskonnatöö koordineerimine, TF (Codeplex) ülesseadmine, dokumentatsiooni koostamine (wiki), andmebaasi skeema, sisestamisvorm, laenutamine jne

Tanel - programmeerija. Otsing, muutmine, kontrollid, raportid, bugiparandused jne.

Indrek - programmeerija. bugiparandused, 1 raport + kehva ajaloo hoiatus (pooleli!)

Kood

Lähtekood asub siin

PS! Indreku poolt tehtavad lisad on pooleli (seisuga 8.12.2010). Esitamisel nähtud töötav versioon on CS1730 all. EDIT: seisuga 11.12.2010 on viimane versioon (1 lisaraport juures) allalaetav patches alt.

Rakendus kasutab eraldiserisvat MSSQL baasi - baasi loomise skripti saab Codeplexist Patches alt. Andmebaasiühendus tuleb app.configis ära määrata!


Programmi funktsionaalsus

1. Sisestamise vorm

Antud vormil saab sisestada raamatuid, laenutajaid ja riiuleid.

2. Laenutamise ja tagastamise vorm:

Selle vormi abil saab raamatuid välja laenutada ja tagastatuks märkida:

3. Otsinguvorm:

See vorm võimaldab otsida raamatuid ja vajadusel muuta raamatute andmeid - näiteks asukohta (millises riiulis raamat asub) või olemasolu (kui raamat kaob või hävib, siis saab märkida "mitteeksisteerivaks/hävinuks"



4. Raportite vorm

Sellel vormil on nupud erinevate raportite koostamiseks. Raportid salvestatakse tekstifailidena (raportite kataloog tuleb app.configis määrata!)



Ülesehitus

Loodud klassid:

  • Form1.cs - rakenduse vorm.
  • RaamatService.cs - teenusklass raamatutega seotud tegevuste jaoks.
  • LaenutajaService.cs- teenusklass laenutajatega seotud tegevuste jaoks.
  • RiiuliService.cs - teenusklass riiulitega seotud tegevuste jaoks.
  • Andmetootlus.cs - enamus äriloogikast.
  • Log.cs - logimine.

Iga objekti (raamat, riiul, laenutaja) jaoks on oma klass - päringud/salvestamised/kontrollid jms - andmetöötluse ja vormi jaoks vajalikud päringud käivad nende kaudu.

ERD:

Probleemid

Tiimi liikmed õpivad IT Süsteemide administreerimist (loe: mõõdukas või puuduv programmeerimise kogemus ja huvi) - seetõttu oli selle projekti teostamine päris keeruline. Indrekule ja Tanelile oli ka see esimene kokkupuude andmebaasidega, niiet väga palju energiat on võtnud "andmebaaside alustega tuvumine". Ka meeskonnatöös on meil natuke arenguruumi:)

Lõpplahendus ei ole päris täiuslik ja tõenäoliselt sellel programmil väga palju kasutajaid ei saa olema:)

Mõned tehnilised probleemid


  • DB ConnectionStringi lugemine konfifalist valmistas probleeme (kui kasutasime projektiga kaasasolevat .mdf faili, mitte eraldi SQL servrit).
  • Riiuli muutmisega sattusime probleemi otsa, kus juba olemasolevat seost (FK reference) ei lubatud muuta.
  • Logimine jäi poolikuks - nii lihtlabaselt objekti stringiks sundida siiski ei saa :( - näiteks raamatu salvestamisel logitakse seetõttu tabelinimi, mitte väljade väärtused.