Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2014: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Rmaripuu (talk | contribs)
Aluuri (talk | contribs)
No edit summary
 
(28 intermediate revisions by 10 users not shown)
Line 192: Line 192:
*Lasse Kolkanen
*Lasse Kolkanen


===Meeskonna poolt kirjutatud retsensioonid===
Projekt: https://wiki.itcollege.ee/index.php/Minions#Projekti_l.C3.A4htekood
*
*
 
== Meeskond "KIRVES" ==
Meeskonna wikileht: [https://wiki.itcollege.ee/index.php/Kirves "Kirves"]
Meeskonna liikmed:
*Ahto Luuri
*Tauri Metsoja
*Raul Prosso
 
[https://wiki.itcollege.ee/index.php/Kirves#Veebiteenus Valminud veebiteenus ja klientrakendus]


===Meeskonna poolt kirjutatud retsensioonid===
===Meeskonna poolt kirjutatud retsensioonid===
*[https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC2 XML retsensioon meeskonnale "TÜC"]
* [https://wiki.itcollege.ee/index.php/Minions#Retsensioon_MRPD_xmli_kodut.C3.B6.C3.B6le Retsensioon MRPD xmli kodutööle]
*[https://wiki.itcollege.ee/index.php/Talk:Meeskond_Vargamae XML retsensioon meeskonnale "Vargamäe"]
* [https://wiki.itcollege.ee/index.php/Minions#Retsensioon_Hashtag_xmli_kodut.C3.B6.C3.B6le Retsensioon Hashtag xmli kodutööle]


==Meeskond [[HVHB]]==
==Meeskond [[HVHB]]==
Line 250: Line 239:
*[https://wiki.itcollege.ee/index.php/Talk:Kirves "XML retsensioon meeskonnale "Kirves"]
*[https://wiki.itcollege.ee/index.php/Talk:Kirves "XML retsensioon meeskonnale "Kirves"]
*[https://wiki.itcollege.ee/index.php/Talk:Lingviinid "XML retsensioon meeskonnale "Lingviinid"]
*[https://wiki.itcollege.ee/index.php/Talk:Lingviinid "XML retsensioon meeskonnale "Lingviinid"]
*[https://wiki.itcollege.ee/index.php/Talk:Kirves "Klientrakenduse ja teenuse retsensioon meeskonnale "Kirves"]


== Meeskond [https://wiki.itcollege.ee/index.php/Meeskond_%22Kipsplaat%22 "Kipsplaat"] ==
== Meeskond [https://wiki.itcollege.ee/index.php/Meeskond_%22Kipsplaat%22 "Kipsplaat"] ==
Line 279: Line 269:
*Piia-Helin Oras
*Piia-Helin Oras
*Doris Hallmägi
*Doris Hallmägi
 
[https://www.dropbox.com/s/4yw4u2p34lzn7ya/VRII%20-%20Shortcut.zip Eraldunud grupp Unised ( Doris Hallmägi ja Piia-Helin Oras) ]<br>
[http://enos.itcollege.ee/~mbirk/codecamp/CodeCamp.rar Eraldunud grupp CodeCamp (Margus Birk) ]<br>
===Meeskonna poolt kirjutatud retsensioonid===
===Meeskonna poolt kirjutatud retsensioonid===
[https://wiki.itcollege.ee/index.php/Talk:MeilEiOleGrupinime#Retsensioonid XML-i retsensioon rühmale nimega "MeilEiOleGrupinime"]<br>
[https://wiki.itcollege.ee/index.php/Talk:MeilEiOleGrupinime#Retsensioonid XML-i retsensioon rühmale nimega "MeilEiOleGrupinime"]<br>
[https://wiki.itcollege.ee/index.php/Talk:Kirves#Retsensioonid XML-i retsensioon rühmale nimega "Kirves"]<br>
[https://wiki.itcollege.ee/index.php/Talk:Kirves#Retsensioonid XML-i retsensioon rühmale nimega "Kirves"]<br>
[https://wiki.itcollege.ee/index.php/Talk:TÜC2#Teenuse_ja_klientrakenduse_retsensioon_meeskonna_.22MRPD.22_poolt Teenuse retsensioon rühmale nimega "TÜC2"]
[https://wiki.itcollege.ee/index.php/Talk:TÜC2#Teenuse_ja_klientrakenduse_retsensioon_meeskonna_.22MRPD.22_poolt Teenuse ja klientrakenduse retsensioon rühmale nimega "TÜC2"]<br>
[https://wiki.itcollege.ee/index.php/Talk:Kirves#Klientrakenduse_ja_teenuse_retsensioon_meeskonnalt_nimega_.22MRPD.22 Teenuse ja klientrakenduse retsensioon rühmale nimega "Kirves"]


==Meeskond [https://wiki.itcollege.ee/index.php/AM "AM"]==
==Meeskond [https://wiki.itcollege.ee/index.php/AM "AM"]==
Line 331: Line 323:
===Meeskonna poolt kirjutatud retsensioonid===
===Meeskonna poolt kirjutatud retsensioonid===
* [https://wiki.itcollege.ee/index.php/Talk:Poial XML retsensioon rühmale nimega "pöial"]
* [https://wiki.itcollege.ee/index.php/Talk:Poial XML retsensioon rühmale nimega "pöial"]
*[https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC2#Teenuse_ja_kliendi_retsensioon_meeskonna_.22HashTag.22_poolt Teenuse ja kliendi retsensioon meeskonnale "TÜC"]


==Meeskond [https://wiki.itcollege.ee/index.php/MeilEiOleGrupinime MeilEiOleGrupinime]==
==Meeskond [https://wiki.itcollege.ee/index.php/MeilEiOleGrupinime MeilEiOleGrupinime]==
Line 337: Line 330:
* Jander Lapmaa
* Jander Lapmaa
* Kristjan Oliver Kruus
* Kristjan Oliver Kruus
* <del>Rene Hollo</del>
* Rene Hollo
* Mihkel Ehrlich
* Mihkel Ehrlich


===Meeskonna poolt kirjutatud retsensioonid===
===Meeskonna poolt kirjutatud retsensioonid===
* [https://wiki.itcollege.ee/index.php/Talk:MRPD#Restsensioon_XML-ile_meeskonnalt_.22Meil_ei_ole_grupinime.22 XML-i retsensioon rühmale nimega "MRPD"]
* [https://wiki.itcollege.ee/index.php/Talk:MRPD#Restsensioon_XML-ile_meeskonnalt_.22Meil_ei_ole_grupinime.22 XML-i retsensioon rühmale nimega "MRPD"]
* [https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC2#XML_failide_retsensioon_meeskonna_.22MeilEiOleGrupinime.22_poolt XML-i retsensioon rühmale nimega "TÜC"]
* [https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC2#XML_failide_retsensioon_meeskonna_.22MeilEiOleGrupinime.22_poolt XML-i retsensioon rühmale nimega "TÜC"]<br>
====Videofy poolt kirjutatud retsensioonid====
* [https://wiki.itcollege.ee/index.php/Talk:Kirves#Klientrakenduse_ja_teenuse_retsensioon_meeskonnalt_nimega_.22MeilEiOleGrupinime.22 Klientrakenduse ja teenuse retsensioon rühmale nimega "Kirves"]
* [https://wiki.itcollege.ee/index.php/Talk:Meeskond_Vargamae#Teenuse_ja_klientrakenduse_retsensioon_Meeskonna_.22MeilEiOleGrupinime.22_.28alam-meeskond_.22Videofy.22.29_poolt Klientrakenduse ja teenuse retsensioon rühmale nimega "Vargamäe"]
====Ostunimekiri poolt kirjutatud retsensioonid====
* [https://wiki.itcollege.ee/index.php/Talk:Poial#Teenuse_ja_klientrakenduse_retsensioon_Meeskonna_.22Ostunimekiri.22.28.22MeilEiOleGrupinime.22_alam-meeskond.29__poolt Klientrakenduse ja teenuse retsensioon rühmale nimega "pöial"]


==Meeskond [https://wiki.itcollege.ee/index.php/Poial pöial]==
==Meeskond [https://wiki.itcollege.ee/index.php/Poial pöial]==
Line 351: Line 349:
*Priit Aarma
*Priit Aarma


 
[https://wiki.itcollege.ee/index.php/Poial Veebiteenus ja klientrakendus]
===Meeskonna poolt kirjutatud retsensioonid===
===Meeskonna poolt kirjutatud retsensioonid===
* [https://wiki.itcollege.ee/index.php/Talk:Node#Retsensioon_meeskonna_.22RAKK.22_poolt. XML retsensioon meeskonnale '''"Node"''']
* [https://wiki.itcollege.ee/index.php/Talk:Node#Retsensioon_meeskonna_.22RAKK.22_poolt. XML retsensioon meeskonnale '''"Node"''']


* [https://wiki.itcollege.ee/index.php/Talk:AM#XML_failide_retsensioon_meeskonna_.22Kipsplaat.22_poolt. XML retsensioon meeskonnale '''"AM"''']
* [https://wiki.itcollege.ee/index.php/Talk:AM#XML_failide_retsensioon_meeskonna_.22Kipsplaat.22_poolt. XML retsensioon meeskonnale '''"AM"''']
* [https://wiki.itcollege.ee/index.php/Talk:T%C3%9CC2 Teenuse ja klientrakenduse retsensioon meeskonnale "TÜC"]


==Meeskond [https://wiki.itcollege.ee/index.php/XYZ XYZ]==
==Meeskond [https://wiki.itcollege.ee/index.php/XYZ XYZ]==

Latest revision as of 13:51, 27 June 2014


Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2014

Eesmärk

Saada praktiline kogemus hajussüsteemide ehitamisest XML veebiteenus ja vastava kliendi loomise abil ning süvendada meeskonnatööoskust. Kaugem eesmärk on loomulikult hinne :).

Reeglid

Kodutöö koosneb kolmest eraldiseisvast ülesandest:

  • Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)
  • Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes
  • Luua klientrakendused (soovitavalt vähemalt kaks)endaloodud veebiteenusele

Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda.

Töö käiku kajastatakse http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.

Tähtajad

  • XML fail NB! Täpsem info
    • XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt 08. märts 2014.
    • Retsensioonid XML-failide kohta peavad tehtud olema 15. märts 2014.
    • Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.
  • Veebiteenus NB! Täpsem info
    • Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 25. mai 2014.
    • Retsensioonid veebiteenuste kohta peavad tehtud olema 31. mai 2014.


  • Klientrakendused NB! Täpsem info
    • Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 25. mai 2014.
    • Retsensioonid klientrakenduste kohta peavad tehtud olema 31. mai 2014.


Hindamine

Üldised kriteeriumid

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.

Maksimumtulemuse annab (vähemalr 4/7):

  • Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)
  • Mobiilrakendused
  • Kogukondade kaasamine
  • AJAX / Silverlight
  • Kasutajamugavus
  • Läbimõeldud töökorraldus
  • Lisavõimaluste realiseerimine (vt näidisteemad)


XML andmefail

Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks.

XML-il peab olema vähemalt 4 loogilist dimensiooni.

<dim1>
  <dim2>
    <dim3>
      <dim4>
      </dim4>
    </dim3>
  </dim2>
</dim1>

Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.

Käesoleva ülesande käigus peab looma meeskonna ning selle wiki lehekülje

Veebiteenus

Loodav veebiteenus peab võimaldama:

  • Teenuse pakkumist
  • Teenuse kasutajate tuvastamist ning haldamist
  • Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes

Loodav veebiteenus tuleb luua kasutades Windows Communication Foundation või ASP.NET MVC 4 Web API tehnoloogiat

Andmebaasis peab olema vähemalt 6 olemit ehk andmebaas on eeldus


Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).

Klientrakendus

Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.

Variant1: teha klientrakendus enda loodud veebiteenusele

Variant2: teha klientrakendus mõnele levinud veebiteenusele. Näiteks:

Retsensioonid

Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.

Retsensioon peab sisaldama minimaalselt...

  • XML - ...200 sõna.
  • Veebiteenus - ...600 sõna.
  • Klientrakendus - ...600 sõna.

Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.

Konsultatsioonid

Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma
töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida
õppejõuga kokkuleppeid kontaktidel
mait.poska [ät] itcollege.ee (+372 53 469 734) või
(teksti originaalautor Priit Raspel)

Teemad 2014 kevad

Kodutöö koosneb kolmest eraldiseisvast ülesandest:

  • Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)
  • Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes
  • Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele


Näidisteemad

Nimede pakkumise teenus

Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: autocompleter tarvis teenuse pakkumine

Ülesanne

Luua sobiva alguse järgi nimede pakkumise teenus:

  • alates kahetähelisetest algustest pakkuda sobivad nimesid
  • luua võimalus kasutajatel nimesid lisada
  • luua võimalus administraatoril nimesid muuta/kustutada
  • meeste ja naiste nimed peavad olema süsteemis eristatavad
  • luua võimalus, mis võimaldab kuvada populaarseid nimesid
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud

Külastusstatistika teenus

Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.

Ülesanne

Luua külastusstatistika teenus:

  • kasutaja saab teenuses registreerida külastusi
  • kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks

Lisavõimalused:

  • luua võimalus registreerida alamlehtede külastusstatistikat
  • luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)

Telefoniraamatu teenus

Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida

Ülesanne

Luua telefoniraamatu teenus:

  • kasutaja saab teenuses kontakte lisada ja kustutada
  • kasutaja saab kontaktide nime/telefoninumbri jne abil otsida
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • kasutajaid on võimalik lisada gruppidesse
  • kasutajal on võimalik lisada vajalike kontaktandmete liike
  • kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper

RSS voogude kogumise ja uudiste kuvamise teenus

Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda

Ülesanne

Luua RSS voogude haldusteenus:

  • kasutaja saab teenuses RSS vooge lisada ja kustudada
  • kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid
  • luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks
  • kasutaja saab RSS vooge vaadata eraldi või grupeeritult
  • vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega

Meeskonnad 2014

Meeskond Demo

Meeskonna liikmed:

  • Liige 1
  • Liige 2

Meeskonna poolt kirjutatud retsensioonid

  • Meie poolt kirjutatud retsensiooni link 1
  • Meie poolt kirjutatud retsensiooni link2

Meeskond "Minions"

Meeskonna wikileht: "Minions" Meeskonna liikmed:

  • Tõnis Markus
  • Kaspar Kund
  • Lasse Kolkanen

Projekt: https://wiki.itcollege.ee/index.php/Minions#Projekti_l.C3.A4htekood

Meeskonna poolt kirjutatud retsensioonid

Meeskond HVHB

Meeskonna liikmed:

  • Helge Saks
  • Vladimir Domaškin
  • Heiki Linnamägi
  • Braid Torn

Meeskonna poolt kirjutatud retsensioonid

Meeskond "Margus Pärt"

Meeskonna liikmed:

  • Margus Pärt
  • Margus Pärti alter ego

Kirjutatud retsensioonid:

  • ...

Meeskond KM

Meeskonna liikmed:

  • Kristian Kalm
  • Hendri Mikita

Meeskonna poolt kirjutatud retsensioonid

Meeskond "TÜC"

Meeskonna liikmed:

  • Anna Carina Vainola
  • Ülle Tiitson
  • Tiit Teder

Teenus ja rakendused meie lehel.

Retsensioonid:

Meeskond "Kipsplaat"

Meeskonna liikmed:

  • Daniil Slobodin
  • Oliver Vahenõmm
  • Kaspar Jesse Tormis
  • Alari Talvar

Meeskonna poolt kirjutatud retsensioonid:

Meeskond Vargamäe

Meeskonna liikmed:

  • Kentti Koppel
  • Aare-Arnold Äkke

Meeskonna poolt kirjutatud retsensioonid

Meeskond "MRPD"

Meeskonna liikmed:

  • Margus Birk
  • Ranno Maripuu
  • Piia-Helin Oras
  • Doris Hallmägi

Eraldunud grupp Unised ( Doris Hallmägi ja Piia-Helin Oras)
Eraldunud grupp CodeCamp (Margus Birk)

Meeskonna poolt kirjutatud retsensioonid

XML-i retsensioon rühmale nimega "MeilEiOleGrupinime"
XML-i retsensioon rühmale nimega "Kirves"
Teenuse ja klientrakenduse retsensioon rühmale nimega "TÜC2"
Teenuse ja klientrakenduse retsensioon rühmale nimega "Kirves"

Meeskond "AM"

Meeskonna liikmed:

  • Andres Kalev
  • Marten Jänt

Meeskonna poolt kirjutatud retsensioonid

Meeskond RAKK

Meeskonna liikmed:

  • Roland Pukk
  • Anti Meos
  • Kert Kukk
  • Kristjan Adrat

Meeskonna poolt kirjutatud retsensioonid

Meeskond "Lingviinid"

Meeskonna liikmed:

  • Olga Trikk
  • Johanna Kammiste
  • Triin Oja
  • Karin Lepik

Meeskonna poolt kirjutatud retsensioonid

XML-i retsensioon meeskonnale "Hashtag"

Meeskond Udud

Meeskonna liikmed:

  • Siim Talvik
  • Joosep Taluväli
  • Henri Abel
  • Kristo Kuiv
  • Priit Aarne

Meeskonna poolt kirjutatud retsensioonid

Meeskond Hashtag

Meeskonna liikmed:

  • Jaan Kängsepp

Meeskonna poolt kirjutatud retsensioonid

Meeskond MeilEiOleGrupinime

Meeskonna liikmed:

  • Jander Lapmaa
  • Kristjan Oliver Kruus
  • Rene Hollo
  • Mihkel Ehrlich

Meeskonna poolt kirjutatud retsensioonid

Videofy poolt kirjutatud retsensioonid

Ostunimekiri poolt kirjutatud retsensioonid

Meeskond pöial

Meeskonna liikmed:

  • Kert Treikelder
  • Stenn Mäeots
  • Jevgenia Motorenko
  • Priit Aarma

Veebiteenus ja klientrakendus

Meeskonna poolt kirjutatud retsensioonid

Meeskond XYZ

Meeskonna liikmed:

  • Sulev Pert

Meeskonna poolt kirjutatud retsensioonid

Meeskond Node

Meeskonna liikmed:

  • Stanislav Gorski
  • Meelis-Marius Pinka
  • Janno Mäemets
  • Andre Padu
  • Indrek Luts

Meeskonna poolt kirjutatud retsensioonid


Meeskond (kaugõpe) Tudengikalender

Meeskonna liikmed:

  • Taavi Sildeberg
  • Kunnar Kukk

Meeskonna poolt kirjutatud retsensioonid

Logi

  • 11.03.2014 xml, xsd ja 2x xslt lisatud meeskonna wiki-lehele Tudengikalender
  • 16.03.2014 Lisatud XML-kodutöö osa 2 retsensiooni

Meeskond Maverick

Meeskonna liikmed:

  • Lasse Kolkanen

Meeskonna poolt kirjutatud retsensioonid

Meeskond PERCENT 51

Meeskonna liikmed:

  • Fredi Poobus

Meeskonna poolt kirjutatud retsensioonid

Meeskond Drem

Meeskonna liikmed:

  • Roland Kontson

Meeskonna poolt kirjutatud retsensioonid