MeeskondX: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mnaris (talk | contribs)
No edit summary
Habel (talk | contribs)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
===Liikmed===
===Liikmed===
Henri Abel (projektijuht)<br>
(projektijuht)<br>
Eda Post<br>
Eda Post<br>
Raudo Lepik<br>
Raudo Lepik<br>
Mart Naris
Mart Naris
==Retsensioonid==
[https://wiki.itcollege.ee/index.php/Talk:MeeskondX Link]


==Projekt==
==Projekt==
===Kirjeldus===
Loome veebipõhise IRC kliendi. Rakendus koosneb kahest suuremast osast:
*veebiliides mille abil saab mugavalt sõnumeid lugeda/saata
*universaalne teek mis oskab IRC serveriga ühendust võtta ning sõnumeid vahetada
==Analüüs==
===Millega on tegemist?===
Meie meekond loob IRC (Internet Relay Chat, eesti keeles
rühmadiskussioon internetis) protokolli kasutava klientprogrammi, millega saab
ühenduda avalike IRC kanalitega (jututubadega) ja reaalajas tekstisõnumeid
vahetada. Klientprogramm jookseb kasutaja veebilehitejas.
===Milleks seda vaja on?===
Nagu näitasid kogemused IT Kolledži esimesel kursusel
õppides, ei tule Skype intensiivsemate grupivestluste reaalajas
sünkroniseerimisega alati toime. Meie loodav IRC klient on suunatud eelkõige
suhtlemiseks 10–100 inimesega rühmades ning see pakub loodetavasti
usaldusväärsemat lahendust ka aeglase ja/või ebastabiilse internetiühenduse
puhul. Lisaks ei vaja see arvutisse eraldi tarkvara paigaldamist, kuna veebilehitseja
on kõigi arvutis juba olemas.
===Kuidas me selle tööle paneme?===
Klientprogramm kasutab jututoaga ühendumiseks IRC RFC 1459
protokolli üle TCP tunneli. Töötleme eraldi igat vastuvõetud sõnumit ning
vastavalt protokollile kas näitame seda sõnumit kasutajale või saadame
serverile vastuse. Programmi kasutamine toimub veebiliidese kaudu. Veebiliidese
realiseerime kasutades võimalikult palju CSS3 ja HTML5 elemente. Kindlasti saab sellega vahetada tekstisõnumeid, näha kasutajate nimekirja
ning nende tüüpi, aga kaalume ka lisavõimalusi, näiteks failivahetust.
Kasutatavad tehnoloogiad on C#, ASP.NET, Javascript, CSS3
ja HTML5.
Eeldatavalt on probleemsemad osad see, mis puudutab
sõnumite saatmist ja vastu võtmist ning serveriga ühenduse hoidmist (et sõnumid
„teel“ kaotsi ei läheks), samuti kasutajaliidese graafiline pool.
Lahenduse realiseerimise käigus ehitame valmis kaks suuremat osa. Üks on universaalne teek mis tegeleb võrguühendusega serveri ja kliendi vahel. Ühenduse loomiseks tuleb ette anda mõned konfiguratsiooni parameetrid. Teegile saab ette anda enda poolt defineeritud sündmuse halduri mis kutsutakse välja igakord kui saabub sõnum serverist. Sinna alla ei kuulu süsteemsed sõnumid (näiteks ping). Ise sõnumeid saates tuleb välja kutsuda teegi sendMessage meetodit. Lisaks on teegil hulk avalikke parameetreid mis täidetakse serveriga/kanaliga ühendumisel(serveri nimi, online kasutajate arv, kanali teema…).
Tervet RFC 1459 protokolli plaanis implementeerida ei ole. Ainult vajalikud osad, et serveriga ühendust hoida ning sõnumeid saata.
Teine suurem sõltumatu osa on veebiliides. Lehe avamisel tuleb ette aken kuhu saab sisestada serveri aadressi, pordi, kanali nime ning kasutaja enda nime. Edasi ühenda nuppu vajutades ühendatakse kanalisse ning sõnumeid hakatakse edastama. Ekraani parempoolses ääres on loend kasutajatest kes kanalis sees on. Sõnumeid saab saata ekraani allosas olevast teksti kastist. Kanali teemat näidatakse üleval osas. Teema peale vajutades muutub tekst muudetavaks ning peale uue teksti sisestamist saab sellest uus kanali teema.
Tööjaotus rühma liikmete vahel pole veel otsustatud.
===Programmi tuumikfunktsioonid:===
·        mugav veebiliides,<br>
·        saab saata ja vastu võtta tekstisõnumeid,<br>
·        saab vaadata, kes on kanalis online,<br>
·        näeb ka kasutajaid, kes on eemal (away),<br>
·        saab näha, mis õigused kasutajatel on (kas ta on admin, tavakasutaja jne),<br>
·        kanalile saab panna pealkirja (teema),<br>
·      laialdasemalt kasutatavad käsud on implementeeritud (nimekiri käskudest täpsustub töö käigus).<br>
===Programmi võimalikud lisafunktsioonid:===
·        see võiks olla ka mobiiliga kasutatav,<br>
·        võiks töötada ka brauseriga Internet Explorer,<br>
·        võiks toetada mitme kanaliga ühendamist (eri kanalid oleks eri vahelehtedel (tabides)),<br>
·        võiks olla võimalik faile saata,<br>
·        võiks näidata emotikone,<br>
·        võiks olla võimalus privaatvestluseks,<br>
·        võiks olla tehisintelligentne partner, kellega rääkida, kui kedagi teist kanalis parasjagu pole (nn chatterbot).<br>
<br>Kliendi veebilehitseja ja serveri vaheline ühendus võiks olla lahendatud kasutades websocket protokolli. Samas peaks kindlasti olema ka fallback vanematele veebilehitsejatele millel see tugi puudub.
Võiks olla SSL tugi turvaliselt serveriga ühendumiseks.
[[Category:Programmeerimine CSharp keeles]]
==Prototüüp==
[http://enos.itcollege.ee/~habel/IrcConnector.zip Solution(35mb)]
===Mis tehtud on===
*TCP kiht serveriga ühendumiseks
*Tähtsamad IRC protokolli osad on implementeeritud
*Lihtne veebiliides IRC kasutamiseks. Saab saata sõnumeid, näha kes online
*Võimalus kasutada veebiliidest kui bouncer-na. Ehk siis kanalist ei logita välja peale browseri akna sulgemist. Funktsionaalsuse sisselülitamiseks tuleb veebilehe logimise aknas teha linnuke StayLogged ette. Järgmine kord lehele tagasi tulles, on kasutaja juba sisselogitud
===Mis veel teha on===
*TCP kihile parem veahaldus
*Veebiliidest disainida
*Bouncer funktsiooni edasi arendada, et näeks ka ajalugu mis vahepeal juhtunud on
*Olenevalt ajast lisada analüüsis mainitud lisafunktsioone
Hetkel on võimalik projekti testida ka [http://meeskondx.azurewebsites.net/account/Login Azures]
Kuna tegemist on ka testkeskkonnaga ning versioonid muutuvad mitu korda päevas võib müstilisi erroreid seal näha


[[Category:Programmeerimine CSharp keeles 2013]]
==Valmis projekt==
[http://enos.itcollege.ee/~habel/IrcConnector_stable.zip Link]

Latest revision as of 19:51, 8 January 2015

Liikmed

(projektijuht)
Eda Post
Raudo Lepik
Mart Naris

Retsensioonid

Link

Projekt

Kirjeldus

Loome veebipõhise IRC kliendi. Rakendus koosneb kahest suuremast osast:

  • veebiliides mille abil saab mugavalt sõnumeid lugeda/saata
  • universaalne teek mis oskab IRC serveriga ühendust võtta ning sõnumeid vahetada

Analüüs

Millega on tegemist?

Meie meekond loob IRC (Internet Relay Chat, eesti keeles rühmadiskussioon internetis) protokolli kasutava klientprogrammi, millega saab ühenduda avalike IRC kanalitega (jututubadega) ja reaalajas tekstisõnumeid vahetada. Klientprogramm jookseb kasutaja veebilehitejas.

Milleks seda vaja on?

Nagu näitasid kogemused IT Kolledži esimesel kursusel õppides, ei tule Skype intensiivsemate grupivestluste reaalajas sünkroniseerimisega alati toime. Meie loodav IRC klient on suunatud eelkõige suhtlemiseks 10–100 inimesega rühmades ning see pakub loodetavasti usaldusväärsemat lahendust ka aeglase ja/või ebastabiilse internetiühenduse puhul. Lisaks ei vaja see arvutisse eraldi tarkvara paigaldamist, kuna veebilehitseja on kõigi arvutis juba olemas.

Kuidas me selle tööle paneme?

Klientprogramm kasutab jututoaga ühendumiseks IRC RFC 1459 protokolli üle TCP tunneli. Töötleme eraldi igat vastuvõetud sõnumit ning vastavalt protokollile kas näitame seda sõnumit kasutajale või saadame serverile vastuse. Programmi kasutamine toimub veebiliidese kaudu. Veebiliidese realiseerime kasutades võimalikult palju CSS3 ja HTML5 elemente. Kindlasti saab sellega vahetada tekstisõnumeid, näha kasutajate nimekirja ning nende tüüpi, aga kaalume ka lisavõimalusi, näiteks failivahetust. Kasutatavad tehnoloogiad on C#, ASP.NET, Javascript, CSS3 ja HTML5. Eeldatavalt on probleemsemad osad see, mis puudutab sõnumite saatmist ja vastu võtmist ning serveriga ühenduse hoidmist (et sõnumid „teel“ kaotsi ei läheks), samuti kasutajaliidese graafiline pool. Lahenduse realiseerimise käigus ehitame valmis kaks suuremat osa. Üks on universaalne teek mis tegeleb võrguühendusega serveri ja kliendi vahel. Ühenduse loomiseks tuleb ette anda mõned konfiguratsiooni parameetrid. Teegile saab ette anda enda poolt defineeritud sündmuse halduri mis kutsutakse välja igakord kui saabub sõnum serverist. Sinna alla ei kuulu süsteemsed sõnumid (näiteks ping). Ise sõnumeid saates tuleb välja kutsuda teegi sendMessage meetodit. Lisaks on teegil hulk avalikke parameetreid mis täidetakse serveriga/kanaliga ühendumisel(serveri nimi, online kasutajate arv, kanali teema…). Tervet RFC 1459 protokolli plaanis implementeerida ei ole. Ainult vajalikud osad, et serveriga ühendust hoida ning sõnumeid saata. Teine suurem sõltumatu osa on veebiliides. Lehe avamisel tuleb ette aken kuhu saab sisestada serveri aadressi, pordi, kanali nime ning kasutaja enda nime. Edasi ühenda nuppu vajutades ühendatakse kanalisse ning sõnumeid hakatakse edastama. Ekraani parempoolses ääres on loend kasutajatest kes kanalis sees on. Sõnumeid saab saata ekraani allosas olevast teksti kastist. Kanali teemat näidatakse üleval osas. Teema peale vajutades muutub tekst muudetavaks ning peale uue teksti sisestamist saab sellest uus kanali teema. Tööjaotus rühma liikmete vahel pole veel otsustatud.

Programmi tuumikfunktsioonid:

· mugav veebiliides,
· saab saata ja vastu võtta tekstisõnumeid,
· saab vaadata, kes on kanalis online,
· näeb ka kasutajaid, kes on eemal (away),
· saab näha, mis õigused kasutajatel on (kas ta on admin, tavakasutaja jne),
· kanalile saab panna pealkirja (teema),
· laialdasemalt kasutatavad käsud on implementeeritud (nimekiri käskudest täpsustub töö käigus).

Programmi võimalikud lisafunktsioonid:

· see võiks olla ka mobiiliga kasutatav,
· võiks töötada ka brauseriga Internet Explorer,
· võiks toetada mitme kanaliga ühendamist (eri kanalid oleks eri vahelehtedel (tabides)),
· võiks olla võimalik faile saata,
· võiks näidata emotikone,
· võiks olla võimalus privaatvestluseks,
· võiks olla tehisintelligentne partner, kellega rääkida, kui kedagi teist kanalis parasjagu pole (nn chatterbot).

Kliendi veebilehitseja ja serveri vaheline ühendus võiks olla lahendatud kasutades websocket protokolli. Samas peaks kindlasti olema ka fallback vanematele veebilehitsejatele millel see tugi puudub. Võiks olla SSL tugi turvaliselt serveriga ühendumiseks.

Prototüüp

Solution(35mb)

Mis tehtud on

  • TCP kiht serveriga ühendumiseks
  • Tähtsamad IRC protokolli osad on implementeeritud
  • Lihtne veebiliides IRC kasutamiseks. Saab saata sõnumeid, näha kes online
  • Võimalus kasutada veebiliidest kui bouncer-na. Ehk siis kanalist ei logita välja peale browseri akna sulgemist. Funktsionaalsuse sisselülitamiseks tuleb veebilehe logimise aknas teha linnuke StayLogged ette. Järgmine kord lehele tagasi tulles, on kasutaja juba sisselogitud

Mis veel teha on

  • TCP kihile parem veahaldus
  • Veebiliidest disainida
  • Bouncer funktsiooni edasi arendada, et näeks ka ajalugu mis vahepeal juhtunud on
  • Olenevalt ajast lisada analüüsis mainitud lisafunktsioone

Hetkel on võimalik projekti testida ka Azures Kuna tegemist on ka testkeskkonnaga ning versioonid muutuvad mitu korda päevas võib müstilisi erroreid seal näha

Valmis projekt

Link