13
UNIVERZITET CRNE GORE STUDIJE PRIMJENJENOG RAČUNARSTVA PODGORICA INTERNET TEHNOLOGIJE PROJEKTNI ZADATAK WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA SURULIZ ŠAĆIR Br. Indexa 17/04

WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

  • Upload
    lamngoc

  • View
    224

  • Download
    1

Embed Size (px)

Citation preview

Page 1: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

UNIVERZITET CRNE GORE STUDIJE PRIMJENJENOG RAČUNARSTVA PODGORICA

INTERNET TEHNOLOGIJE

PROJEKTNI ZADATAK

WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA

SURULIZ ŠAĆIR Br. Indexa 17/04

Page 2: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 3 -

Projektni zadatak: Izrada Web aplikacije za on-line polaganje ispita ili kolokvijuma Aplikacija treba da zadovolji sledeće uslove:

• Unos, ispravku i brisanje seta ispitnih pitanja • Unos, ispravku i brisanje odgovora na ispitna pitanja • Generisanje više setova ispitnih pitanja • Logovanje toka ispita uz mogućnost snimanja log file-ova • Stalan uvid u listu sa rezultatima ispita uz mogućnost snimanja file-a sa

rezultatima • Zaštitu od zloupotrebe od strane studenata (istovremeno polaganje ispita za više

studenata, višestruki unos rezultata u cilju dobijanja što većeg zbira bodova i sl.) • Dio za prezentaciju ispita studentima sa random generisanim pitanjima iz random

odabranog seta pitanja i računanjem broja postignutih bodova Projektni zadatak je rađen u PHP programskom jeziku, baziran na dinamičkom web sadržaju koji se oslanja na MySQL bazu podataka, a kao web server je korišćen Apache 2 web server. Aplikacija je rađena na Windows platformi, ali je bez ikakvih ograničenja portabilna i funkcionalna i na Linux operativnim sistemima. Aplikacija je testirana na Fedora Core 2 Linux distribuciji, ali garantovano radi i na Red Hat distribucijama Linuxa. Potrebni preduslovi da bi aplikacija radila je da na računaru/serveru postoje instalirani sledeći servisi:

• Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera)

• PHP compiler • MySQL baza podataka • Linux ili Windows operativni sistem

Instalaciju ovih servisa neću objašnjavati u okviru ovog projektnog zadatka zbog obimnosti i razlika u procesu instalacije u zavisnosti od serverske platforme, tj. da li je u pitanju Linux ili Windows operativni sistem. Uputstva za instalaciju kao i najnovije verzije software-a mogu se naći na adresama:

1. Apache web server (http://www.apache.org) 2. PHP compiler (http://www.php.net) 3. MySQL baza podataka (http://www.mysql.com)

Sav software je potpuno besplatan.

Page 3: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 4 -

PHP programski jezik

PHP (skraćenica od PHP:Hypertext Preprocessor) je Open Source programski jezik koji se sve više koristi u svijetu naročito kada je u pitanju razvoj web aplikacija i dinamičkih web prezentacija. Za razliku

od programskih jezika kao što su Perl ili C, kod kojih je potrebno pisati čitave programe koji generišu HTML kod i prezentiraju ga krajnjem korisniku, kod PHP-a se sam kod ubacuje (embed) u okviru HTML koda. <html> <head> <title>Primjer</title> </head> <body> <?php echo "Ovo je PHP script!!!"; ?> </body> </html> PHP dio je od ostatka koda stranice odvojen specijalnim tag-ovima u ovom slučaju tagom <?php ?>. PHP je namjenjen pisanju koda koji je serverski orjentisan. To znači da prilokom izvršavanja bilo kojeg PHP script-a, krajnji korisnik dobija rezultat tog izvršavanja i ne može da vidi kakav kod je programer koristio pri pisanju tog script-a. Kao programski jezik, vrlo je lak za korišćenje za početnike ali je istovremeno i vrlo moćan programski alat za iskusne programere. Iako je fokusitran na server-side aplikacije, PHP ima vrlo široke mogućnosti, a zbog činjenice da je Open Source, njegove mogućnosti se svakim danom povećavaju. Osnovne tri sfere u kojima je primjena PHP-a najzastupljenija su :

• Pisanje server-side script-i i aplikacija koje se izvršavaju na serveru i kao rezultat generišu i krajnjem korisniku isporučuju HTML ili XML kod. Za izvršavanje ovog vida PHP script-i potreban je web server.

• Pisanje i izvršavanje script-i iz konzolnog moda (command prompt-a). Za izvršavanje ovih script-i nije nam neophodan web server vec samo PHP compiler, i idealne su za izvršavanje iz Task Scheduler-a na Windows-u ili iz cron-a na Linux – Unix operativnim sistemima

• Pisanje desktop aplikacija koje se izvršavaju u grafičkom okruženju (windows like aplications). PHP nije najbolje rešenje za pisanje aplikacija sa grafičkim korisničkim interface-om (jer postoji mngo bolji .NET alat) ali zbog svog funkcionisanja na mnogobrojnim operativnim sistemima, omogućava pisanje aplikacija nezavisnih od operativnog sistema.

Page 4: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 5 -

Jedna od najvažnijih i najprimjenjivijih karakteristika PHP-a je podrška za rad sa izuzetno velikim brojem različitih baza podataka kao na primjer :

• Adabas D • dBase • Empress • FilePro • Hyperwave • IBM DB2 • Informix • Ingres • InterBase • FrontBase • mSQL • Direct MS-SQL • MySQL • ODBC • Oracle • PostgreSQL • SQLite • Solid • Sybase • Unix dbm itd...

PHP takođe ima podršku za rad sa velikim brojem protokola zastupljenih u okviru mrežnih servisa. Neki od tih protokola su LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM. Ukratko, PHP programski jezik predstavlja vrlo jak alat za sve programere koji se bave pravljenjem aplikacija baziranih na Web tehnologijama i protokolima.

Page 5: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 6 -

WEB APLIKACIJE Pod pojmom web aplikacije podrazumjeva se širok skup programskih rešenja koje kao korisnički interface (metod slanja zahtjeva i dobijanja rezultata) koriste neki web browser.

Sve web aplikacije funkcionišu po principu klijent – server. Server predstavlja računar na kojem je aplikacija smještena i koji u zavisnosti od zahtjeva korisniku isporučuje (servira) rezultat u zavisnosti od tipa i funkcije aplikacije. Klijet dio, kao što sam već rekao može biti bilo koji web browser ili neki specijalno napravljeni klijen program, koji opet mora kontaktirati server da bi korisnik dobio rezultate na osnovu svojih zahtjeva. Najelementarniji oblik web aplikacije jeste najobičnija Internet prezentacija. Upravo zbog ove činjenice, a i s obzirom da najveći broj ljudi koji se koriste Internet-om pojam web aplikacije poistovjećuje sa web prezentacijama, web aplikacije su obično predmet skepticizma i potcjenjivanja kada su u pitanju mogućnosti realizacije nekih kompleksnih problema ili kreiranja nekog ozbiljnijeg software-a. Kompletan software-ski dio web aplikacije smješten je na serveru, i samim tim je dostupan na korišćenje većem broju ljudi istovremeno. U isto vrijeme je siguran od krađe, prepravljanja i uopšte bilo kakvog uticaja na kod u onolikoj mjeri u kojoj je i sam server siguran od neovlašćenih upada. Znači, nema nikakve potrebe za komplikovanim instalacijama, podešavanjima, vođenja računa o kompatibilnosti. Sve se to završava na strani servera.

Server Internet

Web Aplikacija

Korisnik

Korisnikhttp ili https protokol

http ili https protokol

Page 6: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 7 -

Korisniku nije potreban nikakav specijalni software za pristup aplikaciji, nije ograničen da je mora koristiti isključivo sa jednog računara, a sama brzina komunikacije sa aplikacijom zavisi od brzine kojom korisnik može da pristupi serveru. Klijen alikacija je web browser (MS Internet Explorer, Mozilla, Opera) i obično je uključen u okviru operativnog sistema instaliranog na korisničkom računaru, ili dolazi kao sastavni dio nekog od killer software-skih paketa kao što je na primjer MS Office. Upravo zbog ovih karakteristika web aplikacije, koristeći Internet kao globalnu mrežu, sve više se koriste za rešavanje vrlo ozbiljnih korisničkih zahtjeva. On line kupovina, elektronsko bankarstvo, informacioni sistemi u okviru firmi, turističke aplikacije i mnogi drugi slođeni sistemi bazirani su upravo na web aplikacijama.

Model e-commerce aplikacije

REALIZACIJA PROJEKTNOG ZADATKA Projektni zadatak je realizovan na principu klijent – server tehnologije. Serverski dio se sastoji od instalacije Apache web servera, PHP kompajlera i MySQL baye podataka. Koristio sam software-ski paket SOKKIT koji na Windows platformama, jednostavnim principom instalacije, instalira i podesi sve ove servise i omogućava adekvatnu serversku platformu za realizaciju PHP i HTML web aplikacija. Kod Linux operativnog sistema, ovi serivsi se po default-u instaliraju zajedno sa operativnim sistemom, ukoliko korisnik pri instalaciji ne odabere drugačije, a takođe se mogu i naknadno instalirati, uz mnogo veću mogućnost konfiguracije i custom-izacije instaliranih servisa (biranje root folder-a, uključivanje dodatnih mod-ova i plug-in-a).

Page 7: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 8 -

Linux serveri koji u sebi sadrže Apache web server, MySQL bazu podataka i PHP kompajler skraceno se nazivaju LAMP (Linux Apache MySQL Php) i predstavljaju trenutno najzastupljeniji oblik serverskih platformi.

Svi podaci koje unosi administrator aplikacije smještaju se u bazu podataka, odakle se u zavisnosti od zahtjeva administratora generišu novi podaci i kao međurezultat ponovo smještaju u bazu podataka, da bi na kraju bili prezentovani krajnjem korisniku aplikacije, u konkretnom slučaju, studentima. Prilikom korišćenja aplikacije, komunikacija između pojedinih servisa u okviru samog servera se odvija na prilično prostom principu. Apache web server prati korisnićke zahtjeve koji na server dolaze preko standardnog http porta 80. Kada korisnik serveru uputi zahtjev, Apache web server taj zahtjev preuzima i ukoliko je zahtjev korisnika u sebi sadržao podatke koji se tiču PHP stranica, server taj zahtjev preusmjeri na PHP kompajler koji, u zavisnosti od dijela aplikacije koju korisnik zahtijeva, vrši obradu tog zahtjeva i generiše razultate koji će biti isporučeni korisniku kao rezultat njegovog zahtjeva. Ukoliko u okviru stranice koju je pokrenuo korisnik postoji i dio koda koji zahtijeva informacije i podatke iz baze podataka, PHP kompajler procesira komande koje komuniciraju sa bazom podataka i prihvata rezultat interakcije sa bazom podataka.

Page 8: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 9 -

Kada su svi zahtjevi koje je korisnik uputio ka serveru obrađeni i svi podaci prikupljeni, PHP kompajler generiše HTML ili XML stranice koje, nakon toga, Apache web server isporučuje korisniku kao stranicu sa rezultatima njegovog zahtjeva. Korisnik te rezultate dobija preko svog web browser-a koji predstavlja klijent aplikaciju i interface uz pomoć kojeg korisnik komunicira sa aplikacijom. Web browser-i su sastavni dio svih operativnih

Page 9: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 10 -

sistema i nema potrebe za bilo kakvom instalacijom, što je još jedna olakšavajuća okolnost kada je u pitanju široka upotreba aplikacije. CJELINE PROJEKTNOG ZADATKA U skladu sa postavljenim zahtjevima u okviru projektnog zadatka, aplikacija je morala biti podijeljena na administrativni dio i dio za prezentovanje ispitnih pitanja studentima. Administrativni dio omogućava administratoru (profesorima) potpunu manipulaciju pitanjima i odgovorima, generisanje ispitnih pitanja, praćenje toka ispita i ažuriranje liste sa rezultatima. Administrativni dio aplikacije je zaštićen passwordom i samo autorizovani korisnik, preko log-in stranice može da pristupi tom dijelu aplikacije.

Username i lozinka predstavljaju jedini vid zaštite na nivou same aplikacije od neovlašćenog korišćenja administrativnih stranica, dok se dodatna zaštita može postići ograničavanjem prava pristupa stranicama na posebne IP adrese, postavljanjem firewall-a ispred web servera i ograničavanjem broja istovremenih sesija na jednu. Nakon uspješne validacije, administrator aplikacije dobija stranice za administraciju aplikacije koja je vrlo jasna i jednostavna za korišćenje.

Page 10: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 11 -

Svi podaci u bazu unose se popunjavanjem web formi, iza kojih stoje PHP script-e koje, u zavisnosti šta se od njih zahtijeva, izvršavaju svoj dio posla (unose podatke u bazu, pretražuju podatke iz baze i slično). Prikaz traženih podataka, kao i kompletna komunikacija sa bazom podataka izvršava se vrlo brzo zbog toga što su i baza i aplikacija na istom računaru, a i iz iskustva se pokazalo da Apache-PHP-MySQL vrlo dobro funkcionišu zajedno, pogotovo na Linux serverskim platformama. Navigacija kroz aplikaciju je realizovana preko web linkova. Ukoliko korisnik prilikom rada na aplikaciji, zatvori web browser prozor, moraće ponovo da se uloguje u aplikaciju jer zatvaranje prozora server smatra kao kraj korišćenja aplikacije.

Page 11: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 12 -

Dio aplikacije koji koriste studenti se sastoji od dijela u kojem student unosi svoje podatke (ime i prezime i broj indeksa) i dijela koji prezentira studentu pitanja na koja on može da odgovara i kada završi sa ispitom, dobije izvještaj koliko je bodova dobio.

Svaka aktivnost koja se desi na nivou aplikacije koji koristi student se automatski loguje u bazi, tako da profesor kasnije ima mogućnost da retrogradno isprati čitav tok ispita onako kako se on odvijao i kojim tempom su studenti se logovali i radili ispit. Nakon unosa podataka o studentu, dobija se stranica sa postavljenim ispitnim pitanjima, na koja student odgovara štrikiranjem checkbox-ova.

Nakon završenog štrikiranja odgovora, student šalje odgovore na validaciju i dobija odgovor od sistema o broju bodova koji je dobio, a njegov rezultat se automatski pojavljuje na listi sa rezultatima ispita.

Page 12: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 13 -

Svi logovi, liste sa rezultatima, ispitnim pitanjima mogu se snimiti u obliku .txt file-ova i kao takvi se mogu importovati u Microsoft Excell (Windows) ili Open Office (Linux) radi lakšeg formatiranja i štampe. Aplikaciju nije poželjno koristiti na javnoj mreži, jer time postaje podložna detaljnijoj analizi od strane ljudi koji imaju namjeru da je zloupotrebe pronalaženjem propusta u kodu ili sigurnosti samog servera. Najbolja primjena ove aplikacije je na serverima vidljivim u okviru izolovane LAN mreže, koji je vidljiv isključivo za vrijeme ispita, ili na notebook računaru koji je na mreži samo dok traje ispit.

Page 13: WEB APLIKACIJA ZA POLAGANJE ISPITA / KOLOKVIJUMA · PDF filesledeći servisi: • Apache ili Apache 2 web server (moguća je i instalacija IIS ili Perwonal Web servera) • PHP compiler

Projektni zadatak iz Internet Tehnologija Suruliz Šaćir br.indeksa 17/04

Web aplikacija za on-line polaganje ispita

- 14 -

Korisni linkovi: PHP:

• PHP Hypertext Preprocessor (http://www.php.net/) • PHP Builder (http://www.phpbuilder.com/) • ZEND Technologies (http://www.zend.com/)

Apache:

• The Apache HTTP Server Project (http://httpd.apache.org/) • Apache Week (http://www.apacheweek.com/)

MySQL:

• MySQL (http://www.mysql.com/) • MySQL Help, MySQL Tutorials, MySQL Tips

(http://www.devshed.com/Server_Side/MySQL)