Meeskond "Ventilaator": Difference between revisions
(40 intermediate revisions by 3 users not shown) | |||
Line 7: | Line 7: | ||
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
| '''Tüüp:''' | | '''Tüüp:''' | ||
| Programmeerimine C# - | | Programmeerimine C# - WPF-rakendus | ||
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
| '''Meeskond "Ventilaator":''' | | '''Meeskond "Ventilaator":''' | ||
|[[User:tmetsoja|Tauri Metsoja]]<br /> [[User:rprosso|Raul Prosso]]<br /> [[User:aluuri|Ahto Luuri]]<br /> | |[[User:tmetsoja|Tauri Metsoja]]<br /> [[User:rprosso|Raul Prosso]] (Projektijuht)<br /> [[User:aluuri|Ahto Luuri]]<br /> | ||
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
| '''Juhendaja:''' | | '''Juhendaja:''' | ||
Line 19: | Line 19: | ||
=Projekti kirjeldus= | =Projekti kirjeldus= | ||
Meil on raamatud. Need raamatud moodustavad raamatukogu. Raamatukogus on ka filme | Meil on raamatud. Need raamatud moodustavad raamatukogu. Raamatukogus on ka filme. Heliplaate ja videomänge on kah. Raamatukogust saab laenutada teavikuid. Laenutused pannakse kirja. Laenutajad kah. Tähtaja ületanud laenutajad saavad profiilile hoiatuse ja neid teavitatakse hilinemisest. | ||
Kõike seda viibki ellu meie WPF-rakendus. | Kõike seda viibki ellu meie WPF-rakendus. | ||
== | =Analüüs= | ||
= | ==Millega on tegemist?== | ||
* | |||
* | Antud WPF-rakendus laseb kasutajal salvestada andmebaasi infot talle kuuluvate teavikute ning nende teavikute sõpradele välja laenutamise kohta ja pidada arvet nii teavikute, laenajate, tähtaegade kui muu huvipakkuva üle. Rakendus jookseb ühel arvutil ning ühendub lokaalsesse andmebaasi. | ||
==Milleks seda vaja on?== | |||
Inimestel on kodus palju erinevaid teavikuid, mida tihti laenatakse teistele inimestele välja. Inimese mälu on aga teadupärast lühike ning nii laenaja kui ka laenutaja ise võivad unustada, et teavik välja laenati. Mõne laenajaga juhtub seda rohkem kui teistega. Mõni teine see-eest ei kanna laenatud esemete eest tihti heaperemehelikult hoolt. Oleks tore teada, kes need mõned on ja mitte neile enam laenutada. See tagab, et laenutaja omand säilib kauem ja/või paremini. | |||
Meie rakendus annabki selle kasutajale üldise ülevaate tema koduses kollektsioonis olevatest teavikutest, nende seisukorrast ja sellest, kelle kätte ning kui kauaks on neid välja laenatud. | |||
==Mida sellega teha saab?== | |||
Rakendus võimaldab andmebaasi sisestada, andmebaasis muuta ning sealt ka eemaldada kodus leiduvaid andmekandjaid nagu raamatud, DVD/BluRay plaadid filmidega, audioplaadid ja videomängud. Eemaldada ei saa andmekandjaid, mis on parasjagu välja laenatud. | |||
Kõik teavikud lähevad andmebaasis ühte tabelisse. Seetõttu on andmebaasi poolt kasutajal kohustus täita vaid teaviku nimetuse lahter (videomängudel ju näiteks autorit kui sellist pole), kuid rakenduse enda loogika võimaldab meil sisestatava teaviku tüübist lähtuvalt kasutajale teistegi lahtrite täitmist valikuliseks (filmidel kestvus, aasta, žanr jne.) või lausa kohustuslikuks (raamatutel autor, albumitel artist jne.) muuta. | |||
Andmebaasi sisestatakse ka kõik isikud, kes midagi laenanud on. Igal isikul on oma profiil, mida saab vaadata, muuta ja kustutada. Kõik isikud lähevad andmebaasis ühte tabelisse. Kohustuslik on vaid ees- ja perekonnanime väljade täitmine, muu info sisestamine on valikuline (nimekaimude puhul tungivalt soovituslik). Kustutada ei saa isikuid, kellel on tagastamata teavikuid. | |||
Profiili all on näha, mida see inimene on varasemalt laenanud ning kas ta on ka midagi lõhkunud või tagastamata jätnud. Seega näitab profiil ära, millise riskiastmega laenajaga on tegu. Seetõttu on lihtsam otsustada, kas talle edaspidi üldse midagi laenata. | |||
Andmebaasi saab sisestada laenutusi, neid muuta ja kustutada. Laenutuse registreerimisel on kohustuslik märkida, mida laenutatakse, kellele laenutatakse ning mis on tagastamise tähtaeg. Kui teavik on tagasi toodud, teeb kasutaja laenutusele selle kohta vastava ajalise märke ja programm loeb laenutuse lõppenuks. Teeme vahet aktiivsetel ja mitteaktiivsetel laenutustel. | |||
Ikka juhtub, et laenajal tekib tahtmine pikendada oma laenutuse kestvust, kuna ta ei jõudnud näiteks raamatut läbi loetud või filmi ära vaadatud. Selleks on meil ka loomulikult võimalus. Kasutaja saab seda teha, muutes lihtsalt kõnealuse laenutuse tagastamise tähtaega. | |||
Rakendus laseb koostada ka erinevaid aruandeid (olemasolevad teavikud, välja laenutatud teavikud, tähtaja ületanud laenutused, tähtaega pidevalt ületavad laenajad jne.). | |||
Rakendus peab taustal registrit, kuhu lähevad kirja nii sooritatud tegevused kui ka nende sooritamisel ette tulnud ja kinni püütud vead. | |||
==Milliste osade realiseerimine võib osutuda problemaatiliseks?== | |||
* Veebiliidese realiseerimine, kuna see eeldaks andmebaasi üle veebi sisse logimise teostamist. | |||
* Automaatne teavitus e-maili teel, kuna see eeldaks, et taustal jookseb kogu aeg teenus või andmebaasis skript, mis teostab toimingu mingi tingimuse täitumisel. Viimane variant eeldaks eraldi serveri olemasolu. | |||
* Graafikute koostamine raporti sektsioonis. | |||
==''Must have'' funktsionaalsus:== | |||
* Saab lisada, muuta, kustutada ja vaadata teavikuid. | |||
* Saab lisada, muuta, kustutada ja vaadata laenajate profiile. | |||
* Saab lisada, muuta, kustutada ja vaadata tähtajalisi laenutusi. | |||
* Võimaldab kuvada statistikat erinevate kriteeriumite alusel (kodusolevad teavikud, väljalaenutatud teavikud, laenutuste koguarv jne). | |||
[[File:Ventilaator_andmemudel1.jpg]] | |||
=====Rakenduse põhifunktsionaalsust täitva andmebaasi mudel===== | |||
==''Nice to have'' funktsionaalsus:== | |||
* Silmale ilus graafiline kasutajaliides. | |||
* Võimaldab laenutust lisada nii eraldiseisvalt kui ka tulevase laenutuse isiku profiili või teaviku infot vaadates. | |||
* Võimaldab tegevuste kohta registri pidamist (logi). | |||
* Võimaldab isikut lisada nii eraldiseisvalt kui ka uut laenutust registreerides. | |||
* Võimaldab koostatud raporteid mingil moel (kasvõi tekstifaili kujul) eksportida/salvestada. | |||
* Hoiatuse kuvamine laenutuse lisamisel, kui kõnealuse laenaja laenutuste ajalugu on vilets või kui mõni teavik on tagastamata. | |||
* Iga individuaalse juhtumi puhul kasutaja valikust olenev või väljalülitatav automaatne teavitus tähtaja lähenemisest/ületamisest e-kirja näol, kui laenaja profiili on märgitud e-maili aadress. | |||
* Rakenduse käivitamisel kontroll, kas mõni laenutus on üle tähtaja läinud. Üle tähtaja läinud laenutuse puhul küsida esimesel korral, kas ehk on teavik tegelikult juba tagastatud (sel juhul suunata laenutuse tagastusaega märkima). Mittetagastatud teaviku puhul pakkuda võimalust tähtaega pikendada. Keeldumise korral valikuline teavitus e-kirja näol (kui vastav funktsionaalsus on eelnevalt realiseeritud). | |||
* Võimaldab luua teavikutele üksikasjalikumad kirjed (kaanepilt, veebilink arvustustele jne.). | |||
* Võimaldab koostada graafikuid erinevate kriteeriumite alusel (teavikute populaarsus, kõige rohkem/vähem laenutajad jne.). | |||
* Lihtne, kuid silmale ilus veebiliides (et sõbrad saaksid veebist vaadata, mis teavikud kasutajal kodus veel alles on). | |||
=Prototüüp= | |||
Projekti versioon: [http://enos.itcollege.ee/~aluuri/prototyyp/Cowbell_prototyyp.zip "Allalaadimise link"] | |||
*Realiseeritud on teavikute lisamine, muutmine, kustutamine, laenutamine. | |||
*Teavikutel on erinevad liigid ja žanrid, mida saab samuti lisada ja kustutada. | |||
*Teavikuid sorteeritakse nii liigi kui teaviku nime järgi. | |||
*Laenutada saab erinevatele isikutele, keda saab koos kontaktandmetega samuti andmebaasi lisada. | |||
*Laenutustel saab pikendada tähtaega, neid lõpetatuks muuta ning ka kustutada. | |||
Rakendus ühendub eraldi serveril olevasse andmebaasi, kus on olemas ka testandmed. | |||
=Lõppversioon= | |||
Projekti versioon: | |||
[http://enos.itcollege.ee/~aluuri/loppversioon/Cowbell_loppversioon.zip "Allalaadimise link"] | |||
''Published'' versioon: | |||
[http://devfast.eu/Cowbell.rar "Allalaadimise link"] | |||
Kasutusjuhend: | |||
[http://enos.itcollege.ee/~aluuri/loppversioon/Cowbell_kasutusjuhend.pdf "Allalaadimise link"] | |||
*Realiseeritud on isikute lisamine, muutmine, kustutamine ning kuvamine. | |||
*Liigid on tehtud žanri-põhiseks, ehk igal liigil on omaette žanrid. | |||
*Laenutused sorteeritakse laenutamise aja järgi, uuemad ülevalpool. | |||
*Laenutused on kuvatud sõltuvalt staatusest erinevate värvidega. | |||
*Teavikute vaates on eristatavad väljalaenutatud teavikud. | |||
*Rakendusel on uus ilusam disain. | |||
*Lisatud on statistika. | |||
*Andmeid ei saa sisestada, kui on täitmata kohustuslikke välju. | |||
Telefoninumbrite, aastaarvude, meiliaadresside jms. sisestamisele ei ole sätestatud kindlat formaati. | |||
Kuna rakendus on ette nähtud kasutamiseks lokaalses arvutis ühe inimese poolt, hõlbustab taoline lähenemine kasutajamugavust | |||
= Tegevuste logi = | |||
==== 21. oktoober ==== | |||
*Meeskonna kokkupanek | |||
*Skype'i grupi loomine | |||
==== 2. november ==== | |||
*Wiki lehe loomine | |||
*Projekti üldkontseptsioon | |||
*Projektijuhi valimine | |||
==== 19. november ==== | |||
*Valmis põhjalikum analüüs | |||
==== 20. november ==== | |||
*Analüüsi [https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC#Retsensioon_meeskonnalt_.22Ventilaator.22 retsensioon] meeskonnale [https://wiki.itcollege.ee/index.php/TÜC "TÜC"] | |||
==== 21. november ==== | |||
*MS SQL Server up & running | |||
*Meeskonnale on loodud kasutajad | |||
*Olemas on VENTILAATOR andmebaas | |||
==== 28. november ==== | |||
*Loodud esmane funktsionaalsus, mis suhtleb andmebaasiga, rakendus sai koodnime '''Cowbell''' | |||
==== 30. november ==== | |||
*Paika pandud GUI ülesehitus, toimib teavikute kuvamine | |||
==== 2. detsember ==== | |||
*Realiseeritud objektide andmebaasi lisamine, laenutuste kuvamine | |||
==== 4. detsember ==== | |||
*Palju sisulisi parandusi ja täiustusi, olemas 70% plaanitavast funktsionaalsusest | |||
==== 5. detsember ==== | |||
*Valmis prototüüp | |||
==== 7. detsember ==== | |||
*Prototüübi [https://wiki.itcollege.ee/index.php/Talk:MeeskondX retsensioon] meeskonnale [https://wiki.itcollege.ee/index.php/MeeskondX "MeeskondX"] | |||
==== 15. detsember ==== | |||
*Valmis lõppversioon ning kasutusjuhend | |||
==== 16. detsember ==== | |||
*Projekt edukalt kaitstud | |||
==== 28. detsember ==== | |||
*Lõpptoote [https://wiki.itcollege.ee/index.php/Talk:MeeskondX retsensioon] meeskonnale [https://wiki.itcollege.ee/index.php/MeeskondX "MeeskondX"] | |||
=Git-i kasutamine Visual Studio 2012-s= | |||
*Kõigepealt peab olema installitud Update 4. | |||
Selle saab siit: http://www.microsoft.com/en-us/download/confirmation.aspx?id=39305 | |||
*Peale selle installi peab olema installitud Visual Studio Tools for Git. | |||
Selle saab siit: http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c | |||
*Järgmisena tuleb installida selline asi: http://www.microsoft.com/web/downloads/platform.aspx | |||
*Avaneb pluginate aken: | |||
**Install Microsoft WebMatrix3 | |||
[[Category:Programmeerimine CSharp keeles]] | [[Category:Programmeerimine CSharp keeles]] |
Latest revision as of 03:19, 28 December 2013
Projekti kirjeldus
Meil on raamatud. Need raamatud moodustavad raamatukogu. Raamatukogus on ka filme. Heliplaate ja videomänge on kah. Raamatukogust saab laenutada teavikuid. Laenutused pannakse kirja. Laenutajad kah. Tähtaja ületanud laenutajad saavad profiilile hoiatuse ja neid teavitatakse hilinemisest. Kõike seda viibki ellu meie WPF-rakendus.
Analüüs
Millega on tegemist?
Antud WPF-rakendus laseb kasutajal salvestada andmebaasi infot talle kuuluvate teavikute ning nende teavikute sõpradele välja laenutamise kohta ja pidada arvet nii teavikute, laenajate, tähtaegade kui muu huvipakkuva üle. Rakendus jookseb ühel arvutil ning ühendub lokaalsesse andmebaasi.
Milleks seda vaja on?
Inimestel on kodus palju erinevaid teavikuid, mida tihti laenatakse teistele inimestele välja. Inimese mälu on aga teadupärast lühike ning nii laenaja kui ka laenutaja ise võivad unustada, et teavik välja laenati. Mõne laenajaga juhtub seda rohkem kui teistega. Mõni teine see-eest ei kanna laenatud esemete eest tihti heaperemehelikult hoolt. Oleks tore teada, kes need mõned on ja mitte neile enam laenutada. See tagab, et laenutaja omand säilib kauem ja/või paremini.
Meie rakendus annabki selle kasutajale üldise ülevaate tema koduses kollektsioonis olevatest teavikutest, nende seisukorrast ja sellest, kelle kätte ning kui kauaks on neid välja laenatud.
Mida sellega teha saab?
Rakendus võimaldab andmebaasi sisestada, andmebaasis muuta ning sealt ka eemaldada kodus leiduvaid andmekandjaid nagu raamatud, DVD/BluRay plaadid filmidega, audioplaadid ja videomängud. Eemaldada ei saa andmekandjaid, mis on parasjagu välja laenatud.
Kõik teavikud lähevad andmebaasis ühte tabelisse. Seetõttu on andmebaasi poolt kasutajal kohustus täita vaid teaviku nimetuse lahter (videomängudel ju näiteks autorit kui sellist pole), kuid rakenduse enda loogika võimaldab meil sisestatava teaviku tüübist lähtuvalt kasutajale teistegi lahtrite täitmist valikuliseks (filmidel kestvus, aasta, žanr jne.) või lausa kohustuslikuks (raamatutel autor, albumitel artist jne.) muuta. Andmebaasi sisestatakse ka kõik isikud, kes midagi laenanud on. Igal isikul on oma profiil, mida saab vaadata, muuta ja kustutada. Kõik isikud lähevad andmebaasis ühte tabelisse. Kohustuslik on vaid ees- ja perekonnanime väljade täitmine, muu info sisestamine on valikuline (nimekaimude puhul tungivalt soovituslik). Kustutada ei saa isikuid, kellel on tagastamata teavikuid.
Profiili all on näha, mida see inimene on varasemalt laenanud ning kas ta on ka midagi lõhkunud või tagastamata jätnud. Seega näitab profiil ära, millise riskiastmega laenajaga on tegu. Seetõttu on lihtsam otsustada, kas talle edaspidi üldse midagi laenata.
Andmebaasi saab sisestada laenutusi, neid muuta ja kustutada. Laenutuse registreerimisel on kohustuslik märkida, mida laenutatakse, kellele laenutatakse ning mis on tagastamise tähtaeg. Kui teavik on tagasi toodud, teeb kasutaja laenutusele selle kohta vastava ajalise märke ja programm loeb laenutuse lõppenuks. Teeme vahet aktiivsetel ja mitteaktiivsetel laenutustel.
Ikka juhtub, et laenajal tekib tahtmine pikendada oma laenutuse kestvust, kuna ta ei jõudnud näiteks raamatut läbi loetud või filmi ära vaadatud. Selleks on meil ka loomulikult võimalus. Kasutaja saab seda teha, muutes lihtsalt kõnealuse laenutuse tagastamise tähtaega.
Rakendus laseb koostada ka erinevaid aruandeid (olemasolevad teavikud, välja laenutatud teavikud, tähtaja ületanud laenutused, tähtaega pidevalt ületavad laenajad jne.).
Rakendus peab taustal registrit, kuhu lähevad kirja nii sooritatud tegevused kui ka nende sooritamisel ette tulnud ja kinni püütud vead.
Milliste osade realiseerimine võib osutuda problemaatiliseks?
- Veebiliidese realiseerimine, kuna see eeldaks andmebaasi üle veebi sisse logimise teostamist.
- Automaatne teavitus e-maili teel, kuna see eeldaks, et taustal jookseb kogu aeg teenus või andmebaasis skript, mis teostab toimingu mingi tingimuse täitumisel. Viimane variant eeldaks eraldi serveri olemasolu.
- Graafikute koostamine raporti sektsioonis.
Must have funktsionaalsus:
- Saab lisada, muuta, kustutada ja vaadata teavikuid.
- Saab lisada, muuta, kustutada ja vaadata laenajate profiile.
- Saab lisada, muuta, kustutada ja vaadata tähtajalisi laenutusi.
- Võimaldab kuvada statistikat erinevate kriteeriumite alusel (kodusolevad teavikud, väljalaenutatud teavikud, laenutuste koguarv jne).
Rakenduse põhifunktsionaalsust täitva andmebaasi mudel
Nice to have funktsionaalsus:
- Silmale ilus graafiline kasutajaliides.
- Võimaldab laenutust lisada nii eraldiseisvalt kui ka tulevase laenutuse isiku profiili või teaviku infot vaadates.
- Võimaldab tegevuste kohta registri pidamist (logi).
- Võimaldab isikut lisada nii eraldiseisvalt kui ka uut laenutust registreerides.
- Võimaldab koostatud raporteid mingil moel (kasvõi tekstifaili kujul) eksportida/salvestada.
- Hoiatuse kuvamine laenutuse lisamisel, kui kõnealuse laenaja laenutuste ajalugu on vilets või kui mõni teavik on tagastamata.
- Iga individuaalse juhtumi puhul kasutaja valikust olenev või väljalülitatav automaatne teavitus tähtaja lähenemisest/ületamisest e-kirja näol, kui laenaja profiili on märgitud e-maili aadress.
- Rakenduse käivitamisel kontroll, kas mõni laenutus on üle tähtaja läinud. Üle tähtaja läinud laenutuse puhul küsida esimesel korral, kas ehk on teavik tegelikult juba tagastatud (sel juhul suunata laenutuse tagastusaega märkima). Mittetagastatud teaviku puhul pakkuda võimalust tähtaega pikendada. Keeldumise korral valikuline teavitus e-kirja näol (kui vastav funktsionaalsus on eelnevalt realiseeritud).
- Võimaldab luua teavikutele üksikasjalikumad kirjed (kaanepilt, veebilink arvustustele jne.).
- Võimaldab koostada graafikuid erinevate kriteeriumite alusel (teavikute populaarsus, kõige rohkem/vähem laenutajad jne.).
- Lihtne, kuid silmale ilus veebiliides (et sõbrad saaksid veebist vaadata, mis teavikud kasutajal kodus veel alles on).
Prototüüp
Projekti versioon: "Allalaadimise link"
- Realiseeritud on teavikute lisamine, muutmine, kustutamine, laenutamine.
- Teavikutel on erinevad liigid ja žanrid, mida saab samuti lisada ja kustutada.
- Teavikuid sorteeritakse nii liigi kui teaviku nime järgi.
- Laenutada saab erinevatele isikutele, keda saab koos kontaktandmetega samuti andmebaasi lisada.
- Laenutustel saab pikendada tähtaega, neid lõpetatuks muuta ning ka kustutada.
Rakendus ühendub eraldi serveril olevasse andmebaasi, kus on olemas ka testandmed.
Lõppversioon
Projekti versioon: "Allalaadimise link"
Published versioon: "Allalaadimise link"
Kasutusjuhend: "Allalaadimise link"
- Realiseeritud on isikute lisamine, muutmine, kustutamine ning kuvamine.
- Liigid on tehtud žanri-põhiseks, ehk igal liigil on omaette žanrid.
- Laenutused sorteeritakse laenutamise aja järgi, uuemad ülevalpool.
- Laenutused on kuvatud sõltuvalt staatusest erinevate värvidega.
- Teavikute vaates on eristatavad väljalaenutatud teavikud.
- Rakendusel on uus ilusam disain.
- Lisatud on statistika.
- Andmeid ei saa sisestada, kui on täitmata kohustuslikke välju.
Telefoninumbrite, aastaarvude, meiliaadresside jms. sisestamisele ei ole sätestatud kindlat formaati. Kuna rakendus on ette nähtud kasutamiseks lokaalses arvutis ühe inimese poolt, hõlbustab taoline lähenemine kasutajamugavust
Tegevuste logi
21. oktoober
- Meeskonna kokkupanek
- Skype'i grupi loomine
2. november
- Wiki lehe loomine
- Projekti üldkontseptsioon
- Projektijuhi valimine
19. november
- Valmis põhjalikum analüüs
20. november
- Analüüsi retsensioon meeskonnale "TÜC"
21. november
- MS SQL Server up & running
- Meeskonnale on loodud kasutajad
- Olemas on VENTILAATOR andmebaas
28. november
- Loodud esmane funktsionaalsus, mis suhtleb andmebaasiga, rakendus sai koodnime Cowbell
30. november
- Paika pandud GUI ülesehitus, toimib teavikute kuvamine
2. detsember
- Realiseeritud objektide andmebaasi lisamine, laenutuste kuvamine
4. detsember
- Palju sisulisi parandusi ja täiustusi, olemas 70% plaanitavast funktsionaalsusest
5. detsember
- Valmis prototüüp
7. detsember
- Prototüübi retsensioon meeskonnale "MeeskondX"
15. detsember
- Valmis lõppversioon ning kasutusjuhend
16. detsember
- Projekt edukalt kaitstud
28. detsember
- Lõpptoote retsensioon meeskonnale "MeeskondX"
Git-i kasutamine Visual Studio 2012-s
- Kõigepealt peab olema installitud Update 4.
Selle saab siit: http://www.microsoft.com/en-us/download/confirmation.aspx?id=39305
- Peale selle installi peab olema installitud Visual Studio Tools for Git.
Selle saab siit: http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c
- Järgmisena tuleb installida selline asi: http://www.microsoft.com/web/downloads/platform.aspx
- Avaneb pluginate aken:
- Install Microsoft WebMatrix3
VENTILAATOR | ||
Ülikool: | Eesti Infotehnoloogia Kolledž | |
Tüüp: | Programmeerimine C# - WPF-rakendus | |
Meeskond "Ventilaator": | Tauri Metsoja Raul Prosso (Projektijuht) Ahto Luuri | |
Juhendaja: | Mait Poska |