Vorgurakendused 2 prax 2 2009

Allikas: Lambda

NB! Tegu on 2009 aasta praktikumi arhiivilehega, mitte kehtiv praktikumiülesanne!

Ülesandeks on arendada edasi esimeses praktikumis tehtud kodutööd, lisades sellele multichati (mitme osalisega chati) funktsionaalsuse, pluss veel mõningat täiendavat funktsionaalsust.


Põhinõuded

Sinu P2P chatirakendus peab suutma pidada samaaegset chati N teise kasutajaga. Sinu kirjutatav tekst peab jõudma kõigini neist, nende kirjutatud tekst peab jõudma sinuni ja sa pead selle välja kuvama.

Teise inimese chatti lisamiseks sisestad tema kasutajanime: kui ta on online ja vastab, lisatakse ta chatti.

Lihtsuse mõttes eeldame, et korraga on igaühel käimas üks chatt: kasutajal ei ole mitut eri chatti samaaegselt. Mitme eri chati realiseerimine otseselt keelatud ei ole.

Kõk chatiosalised peavad nägema, kes on chatis (käsurealt tehes vahel trükkida, akent kasutades kuvada mingis eriosas).

Igaühel peab olema võimalus chatist lahkuda: selleks tuleb saata sõnum või vastus teistele osavõtjatele, et minuga enam ühendust ei võetaks.

Kui osalisega ühendus kaob ilma, et ta lahkuks, siis kuvatakse ta chatiosaliste seas hoiatava märkmega.

Võid realiseerida ka automaatse väljaviskamise, kui kasutajaga ühendust pole viimase N minuti jooksul õnnestunud.

Kui lisad kellegi chatti, peab talle saatma käimasoleva chati M viimast sõnumit või M viimase minuti jooksul saadetud sõnumid, omal valikul. Samuti, kui kasutaja kaob ajutiselt chatist (temaga ei saa ühendust) ja seejärel tagasi tuleb, tuleb talle saata sõnumid, mis tal vahepeal kätte saamata.

Kasutaja peab saama valida/sisestada oma kasutuskeele. Vaikimisi valitakse inglise keel.

Chatisõnumi reas peab olema näha:

  • saatja
  • aeg (saatja pool)
  • keel
  • sõnum

Vaheserveri nõue

Tulemüüride takistusest ümbersaamiseks peab sinu rakendus suutma kasutada seda vaheserverit. Võid vaheserveri toodud protokolli järgi ka ise realiseerida.

NB! Kui sinu rakendus vaheserverit kasutada ei suuda, siis saad praktikumi ikkagi arvestatud, lihtsalt teatud arvu miinuspunktidega.

Protokoll ja spetsifikatsioon

Erinevalt esimesest praktikumist pead seekord ise protokolli välja töötama. Võid kasutada ka teiste tudengite tehtud protokolli, st enda eridisain ei ole otseselt kohustuslik.

Protokoll tuleb arusaadavalt ja selgitustega kirja panna ja praktikumijuhendajale võimalikult vara ette näidata, kindlasti enne praktikumi näitamist! Protokolli ettenäitamisega hilinemine võtab punkte maha.

Lisafunktsionaalsus

Chatile võiksid lisada automaatse keeletõlke, mis tõlgib X keeles sissetulnud teksti automaatselt sinu poolt valitud Y keelde. Selleks tõlkeks kasutada Google translate API-t.

Keeletõlke lisamine annab ekstrapunkte.