MeeskondX
Liikmed
(projektijuht)
Eda Post
Raudo Lepik
Mart Naris
Retsensioonid
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
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