Faculty Management System For: Master's Project Report
This document provides an overview of a faculty management system project for a master's degree. It includes an abstract, acknowledgements, purpose of the project, existing solutions, technologies considered like ColdFusion, JavaScript, PHP, Apache HTTP Server, Oracle database, and web design access sections for public pages, private pages, and reporting. The table of contents outlines areas like personal information, education, research, services, and information uploading/viewing that will be included in the faculty profile system.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
124 views66 pages
Faculty Management System For: Master's Project Report
This document provides an overview of a faculty management system project for a master's degree. It includes an abstract, acknowledgements, purpose of the project, existing solutions, technologies considered like ColdFusion, JavaScript, PHP, Apache HTTP Server, Oracle database, and web design access sections for public pages, private pages, and reporting. The table of contents outlines areas like personal information, education, research, services, and information uploading/viewing that will be included in the faculty profile system.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 66
Faculty Management System for
Masters Project Report
by Mwamini Naggayi Submitted to the Graduate Faculty of Old ominion !ni"ersity in partial fulfillment of the re#uirement for the degree of Masters of Science in $omputer %nformation System epartment of $omputer Science and epartment of %nformation &echnology ' ecision Sciences Faculty (d"isor) r* +ijay ,alburgi epartment $hair) r* -i .u Fall /001 Table of Contents TABLE OF CONTENTS....................................................................................................2 ABSTRACT.......................................................................................................................5 ACKNOWLEDGEMENTS.................................................................................................6 PRPOSE OF T!E PRO"ECT.........................................................................................# E$%ST%NG SOLT%ONS....................................................................................................& Cost Pricing...................................................................................................................................................................8 Data control...................................................................................................................................................................8 Privacy............................................................................................................................................................................8 TEC!NOLOG' CONS%DERED........................................................................................( ColdFusion.....................................................................................................................................................................9 JavaScript......................................................................................................................................................................9 &he difference between 2a"aScript and 2a"a************************************************************************************************************30 Pros and cons of 2a"aScript**************************************************************************************************************************************30 Case for PHP...............................................................................................................................................................10 P4P bac5ground or history**************************************************************************************************************************************33 %mportance of P4P***************************************************************************************************************************************************33 4andling P4P Forms***********************************************************************************************************************************************3/ Apace !e" server #Apace H$$P%..........................................................................................................................1& (pache 4&&P Ser"er Project***********************************************************************************************************************************36 4ow (pache $ame to 7e ***************************************************************************************************************************************36 8hy (pache Software is Free ********************************************************************************************************************************39 Case for 'racle............................................................................................................................................................1( MyS:- atabase*****************************************************************************************************************************************************31 8hy Oracle atabase***********************************************************************************************************************************************31 Oracle "s* S:- Ser"er**********************************************************************************************************************************************3; WEB MAP )WEB S%TE NA*%GAT%ONS+........................................................................,( WEB DES%GN ACCESS.................................................................................................2, Pu"lic )e" Page..........................................................................................................................................................*1 +ndividual Private Pages.............................................................................................................................................** / Personal********************************************************************************************************************************************************************/6 Personal %nformation*******************************************************************************************************************************************/6 Resume upload< Resume download ' Picture upload****************************************************************************************/6 (dd profile***********************************************************************************************************************************************************/6 (dd Ran5< position from other uni"ersity***********************************************************************************************************/6 $hange Password*************************************************************************************************************************************************/9 (chie"ements***********************************************************************************************************************************************************/9 =ducation*************************************************************************************************************************************************************/9 $ertification and 4onors ' (wards********************************************************************************************************************/9 &eaching*******************************************************************************************************************************************************************/9 (dd courses*********************************************************************************************************************************************************/> Research?Grants*******************************************************************************************************************************************************/> Publications*********************************************************************************************************************************************************/> Refereed 2ournal and Non@Refereed 2ournal**************************************************************************************************/> Proceedings*****************************************************************************************************************************************************/1 Refereed proceedings and Non@refereed proceedings*******************************************************************************/1 7oo5s and Monographs< 7oo5 chapters< case studies************************************************************************************/1 $onference***********************************************************************************************************************************************************/1 Seminars**************************************************************************************************************************************************************/; Students irected*************************************************************************************************************************************************/; (dd Grants***********************************************************************************************************************************************************/; Research interest**************************************************************************************************************************************************/; Ser"ices********************************************************************************************************************************************************************/A (dd Ser"ices********************************************************************************************************************************************************/A !ni"ersity< $ollege< epartment and $ommunity*****************************************************************************************/A (cademic?Professional****************************************************************************************************************************************/A Report***********************************************************************************************************************************************************************/A !pload %nformation sheet************************************************************************************************************************************/A +iew information sheet***************************************************************************************************************************************/B -ogout**********************************************************************************************************************************************************************/B ,eport Section.............................................................................................................................................................&0 Report in Progress****************************************************************************************************************************************************60 Report FinaliCed*******************************************************************************************************************************************************60 PRO"ECT ADM%N%STRATOR SECT%ON.......................................................................-2 (dd eans****************************************************************************************************************************************************************6/ (dd epartment*******************************************************************************************************************************************************6/ (dd epartment $hair Person*********************************************************************************************************************************6/ (dd epartment Secretary***************************************************************************************************************************************66 (dd 2ournals*************************************************************************************************************************************************************66 (dd !sers*****************************************************************************************************************************************************************69 -diting -.isting +nfor/ation.....................................................................................................................................&0 =dit eans ***************************************************************************************************************************************************************69 =dit epartment $hair person *********************************************************************************************************************************69 =dit epartment Secretary***************************************************************************************************************************************6> 1ie!ing -.isting +nfor/ation....................................................................................................................................&( +iew eans**************************************************************************************************************************************************************6> +iew epartments****************************************************************************************************************************************************61 +iew epartment chair person*********************************************************************************************************************************61 +iew epartment Secretary*************************************************************************************************************************************61 +iew a"ailable 2ournals*******************************************************************************************************************************************61 +iew a"ailable !sers************************************************************************************************************************************************6; 6 FACLT' WEB DES%GN %N P!P...................................................................................-& Display pages...............................................................................................................................................................&8 Adding2-diting data pages.........................................................................................................................................00 3pload file pages.........................................................................................................................................................04 Designing report pages !it Fle.ireport..................................................................................................................(1 FleDi@Report $lasses************************************************************************************************************************************************>3 ,ey concepts*******************************************************************************************************************************************************>3 GeneraliCed o"er"iew of the report ********************************************************************************************************************>6 dbsettings*php******************************************************************************************************************************************************>1 butilityEb*php*************************************************************************************************************************************************>1 FleDireportEReport*php***************************************************************************************************************************************>; FleDireportE-e"el*php*****************************************************************************************************************************************>A FleDireportEField*php******************************************************************************************************************************************13 FleDireportE+alue*php*****************************************************************************************************************************************13 FleDireportE&otal*php******************************************************************************************************************************************1/ FleDireportE&otal-abel*php*********************************************************************************************************************************1/ FleDireportEMisc*php******************************************************************************************************************************************1/ FleDireport*css*****************************************************************************************************************************************************1/ CONCLS%ONS..............................................................................................................6- REFERENCES................................................................................................................6. *%TA.................................................................................................................................65 9 Abst/a0t ( web based Faculty Management System was designed and implemented for the $ollege of 7usiness and Public (dministration* &his system allows faculty to input teaching< research< and ser"ice information into an Oracle database* Faculty can input and update personal information< resume< picture< positions< education< certificates and honors< courses taught< curriculum de"elopment< published journals< boo5 chapters< boo5 monographs< case studies< certificates awarded< conference presentations< research interest< grants recei"ed< other additional ser"ices to just to mention but few* &his data is used to generate the indi"idual Facultys information sheet and to submit online* &his information sheet is accessible by their department chair and the dean as part of their annual e"aluation* &his information can also be used to generate the $olleges "arious producti"ity reports* > ACKNOWLEDGEMENTS First and foremost< % am grateful to God for pro"iding me with the most understanding man< with a lot of patience and a caring husband r* -uttamaguCi< 2amiiru* 4e has not only pro"ided the e"er increasing tuition for international students year after year but he has also belie"ed in me and ga"e me his full support without e"er complaining of my midnight dri"e home* 8ithout him< % doubt if % would ha"e reached this far* % would ne"er ha"e been able to complete this project without his support and encouragement* My (lmighty God reward him bounty in both worlds as 4e sees fits* % would li5e to than5 r* ,alburgi< +ijay for ta5ing a chance with me on this project* 4is ideas< boo5s< long hours of discussions< and emails were highly appreciated* 4e ne"er ga"e up on me e"en when % need time out to concentrate on my course wor5* r* ,alburgi< than5s a million times* % would also li5e to than5 r* $rouch< 8illiam from %& department for recommending me to r* ,alburgi for this project* -astly but not least % would li5e to than5 r* (bdel@8ahab< 4ussein who pa"ed the way for me to join Old ominion !ni"ersity* r* (bdel@8ahab< may God reward you accordingly* 1 P1/2ose of t3e 2/o4e0t &he $ollege of 7usiness and Public (dministration needed to create a web@based database system to maintain faculty information* (t the present time< they were using a paper based system where by indi"iduals maintained their data without any uniformity for the entire academic year* 4ard copies of reports were then e"aluated by the department chair person* &his system created a lot of paper wor5 without any consistent single standard for each department to follow* $reating a web based database system will help to establish a standard which each faculty in the department can follow* %t is easier to record each acti"ity or contribution as it happens into the database* %n so doing< faculty will not forget what they did at the beginning of the year since it will be already recorded in the system* (s the deadline approaches for submitting faculty information sheets for e"aluation to the department chair< a faculty has to just login into the system and automatically generate a report based on the information entered into the system* 8ith just a clic5 of mouse< a faculty can then submit his or her report to the department chair* Once a report is submitted< a faculty has access to all submitted* epartment chairs ha"e access to all submitted reports from faculty members in their department* &he ean of the $ollege of 7usiness and Public (dministration has access to all reports alphabetically listed by department and faculty name* &hese reports are a"ailable o"er the web by indi"idual faculty< chairs and area $oordinators< and the ean* ; E56st6n7 Sol1t6ons Se"eral solutions eDist on the mar5et to manage faculty producti"ity information* &wo such systems that pro"ide web ser"ices are igital Measures and Sedona Systems* &hese companies collect data from uni"ersities< conduct course e"aluations for the students and pro"ide reporting solutions to uni"ersities* &he companies were doing eDactly what this college needed but we #uic5ly realiCed that these solutions may not be suitable because of the following reasons* Cost Pricing %t was not going to be cost effecti"e to the college* &he annual license fee for S=ON( is based on the number of users* &he formula for calculating the license fee as per May /001 is F/<>00 as the base fee plus F/> per faculty if the number of users eDceeds 60* So if a college has 300 faculty members< the annual license fee would be F><000 G/<>00 H />I300J* Data control (nother problem of using eDisting solutions is that the college would not ha"e any control about the data the company collects* &here is also loss of fleDibility as the college would become too dependent on the company in the long run* %f there is web@ser"ices downtime and ser"ice disruptions< the college would not ha"e control of that* &his creates a big threat to the college* %f there is change in management of the company or company going out of business this may result in losing data and the college would ha"e to loo5 for another company* &here might be switching costs in"ol"ed to get a new "endor* (lso if the college decides at that time to bring bac5 the project in@house< the college may lose producti"ity during the period of transition* Privacy &he fact that data eDists on the pro"iders ser"er raises some pri"acy issue* 8hat will happen if the college decides to no longer use the company* &he company will ha"e too much data collected on faculty* oes the company ha"e the right to 5eep the dataK 4ow does the college ma5e sure the faculty pri"acy is fully protectedK %nternet companies ha"e designed numerous ways to trac5 web users* &he more we pondered about these #uestions the more clear it became to do the project de"elopment in@house* &he company may decide to sell the data without consent* So it is a ris5 to use outside companies*
One can ha"e pri"acy if one ma5es it herself* %t was decided to go ahead to de"elop this project in@house so that the college doesnt ha"e to worry about annual licensing fees< pri"acy issues and other people 5eeping the "aluable data* A Te03nolo78 0ons69e/e9 ColdFusion $oldFusion is a scripting language for web de"elopment to interface with databases* &he operations are coded in the $oldFusion Mar5up -anguage L$FM-M which uses 4yper &eDt Mar5up -anguage L4&M-M li5e tags to be embedded in web pages* &he $oldFusion engine which interfaces with a windows@based web ser"er interprets the $FM- code< accesses the database and then deli"ers the results as an 4&M- page for the web browser* $oldFusion can ser"e two purposesN it can wor5 as a Mar5up -anguage< a tag@based language that can be used to create data@dri"en 8eb sitesN it can also ser"e as an (pplication Ser"er< which translates the tags that tal5s to the database< and returns 4&M- to the 8eb browser* %nternally< $oldFusion wor5s in a way similarly to other hyperteDt preprocessors* &he application ser"er recogniCes $oldFusion mar5up tags< processes the code< and performs any necessary operations* &hen it returns the result in 4&M-* &here are< of course< a number of other technologies that do this< such as Personal 4yperteDt Preprocessor LP4PM< (cti"e Ser"er Pages L(SPM< $ommon Getaway %nterface L$G%M< 2a"a Ser"er Pages L2SPM< and so forth* $oldFusion is commonly used on some of the most transaction@intensi"e< sensiti"e sites on the 8eb* For eDample< 7an5 of (merica< the !nited States Senate< and the Recording %ndustry of (merica all use $oldFusion to get their wor5 done* Oou can do some fantastic things with standard language elements that would re#uire doCens of lines of code or custom tags in other languages* Oou can send and retrie"e email o"er the 8eb and eDchange data with $omponent Object Model L$OMM< $ommon Object Re#uest 7ro5er (rchitecture L$OR7(M< and 2a"a objects* Oou can use a subset of .M- called 8eb istributed ata e.change L8.M to serialiCe and eDpose pac5ets of data as generic .M-* Oou can also perform file and directory manipulation< perform full File &ransfer Protocol LF&PM interactions< and create intelligent agents* %t is easy to interact with -ightweight irectory (ccess Protocol L-(PM ser"ers with just one $oldFusion tag* Oou can create database@dri"en graphs and charts in Flash* &he current "ersion is $oldFusion >< and it is stated to perform four times faster than its predecessor* !nfortunately< $oldFusion is not free* &he application ser"er from Macromedia costs thousands of dollars* $oldFusion is intended as a rapid application@de"elopment platform and the tags that ma5e up the language encapsulate much of the compleDity of the code re#uired to perform sophisticated operations* One tag in $oldFusion can do the wor5 of 30 or /0 lines of 2a"a Ser"let code* 4owe"er< since $oldFusion is not open source it was out of #uestion to be used to de"elop the project* JavaScript 2a"aScript is an easy@to@use programming language that can be easily embedded in the header of a web page* %t can enhance the dynamics and interacti"e features of a page by allowing users to B perform calculations< chec5 forms< write interacti"e games< add special effects< customiCe graphics selections< create security passwords< and much more* T3e 96ffe/en0e bet:een "a;aS0/62t an9 "a;a (ctually< the two languages ha"e almost nothing in common eDcept for the name* (lthough 2a"a is technically an interpreted programming language< it is coded in a similar fashion to $HH< with separate header and class files< compiled together prior to eDecution* %t is powerful enough to write major applications and insert them in a web page as special objects called applets* 2a"a generates a lot of eDcitement because of its uni#ue ability to run the same program on %7M< Mac< and !N%. computers* 2a"a is not considered an easy@to@use language for non@programmers* 2a"aScript is a programmable application programming interface L(P%M that allows cross@ platform scripting of e"ents< objects< and actions* %t allows the page designer to access e"ents such as startups< eDits< and users mouse clic5s* 2a"aScript eDtends the programmatic capabilities of most browsers to a wide range of authors< and is easy enough for anyone who can compose 4&M-* %t does not re#uire any compilation of the code or use of the applets* P/os an9 0ons of "a;aS0/62t 2a"aScript is a compact< object@based scripting language for de"eloping client and ser"er %nternet applications* %ts statements can be embedded directly in an 4&M- page* &hese statements can recogniCe and respond to user e"ents such as mouse clic5s< form input< and page na"igation* For eDample< in the project we used 2a"aScript date function where a user clic5s on an icon and a calendar popups for the user to select the date* (lso menus in the project sites utiliCe some 2a"aScript to some eDtent* 2a"aScript can also be used to "erify that a user has entered "alid information into a form* 8ithout any networ5 transmission< an 4&M- page with embedded 2a"aScript can #uic5ly interpret the entered teDt and alert the user with a message dialog if the input is in"alid* One can use 2a"aScript to perform an action Lsuch as play an audio file< eDecute an applet< or communicate with a plug@inM in response to the user opening or eDiting a page* One has to use 2a"aScript with care because $ode that wor5s just great on %=9 might not wor5 at all on Netscape 9< what wor5s in NN1 doesnt always wor5 in NN 9< and so on* (nother disad"antage of 2a"aScript is its security* 7ecause the code eDecutes on the usersP computer< in some cases it can be eDploited for malicious purposes* &his is one reason some people choose to disable 2a"aScript* Case for PHP P4P is an open@source ser"er@side scripting language* P4P is a widely@used general@purpose scripting language that is especially suited for dynamic web de"elopment and can be embedded into 4&M-* &he P4P scripting language resembles 2a"aScript< 2a"a< and Perl* &hese languages all share a common ancestor< the $ programming language* 30 P!P ba0<7/o1n9 o/ 36sto/8 (s more and more commercial< charitable and educational organiCations sought to de"elop and maintain sites containing dynamic client@ser"er functionality< cheap and functional solutions became commercially "iable* 8eb communities that had no financial goals also wished for full@ featured sites with< say< chat or forum functionality* &he solutions there were to come up with needed to cost little and be implemented #uic5ly* (ll this re#uired new de"elopment technology< that would) be free or< at least< affordableN be easily learnedN allow an administrator to support a site without too much effortN and pro"ide good application performance* (s usual< the new demands were #uic5ly satisfied* %n 3BB9< the world without 5nowing carried on something that was destined to grow into P4P* %t was a collection of open@source Perl scripts written by Rasmus Lerdorf< a secluded genius from is5o< an island of Greenland* 4e did it for his personal use< and he ne"er eDpected so much interest to arise when the world web de"elopment society eDamined his pac5age* &his o"erwor5ed is5o@tech had to polish his scripts further to fiD an infestation of bugs and impro"e performance* 7efore long< P4P was completely rewritten in $ 3 * %n 3BBA< P4P was released in its 6 rd "ersion* 7y that time< it turned into a respectable web de"elopment tool that could compete with similar products that had 5ept busy Software de"eloper giants such as Microsoft L(SPM and S!N L2a"a< 2SPM* (t the same time< it was free Llicensed as open sourceM and number one easy to learn script language* &hese are some of the factors that helped P4P to find millions of proponents within a short period of time* &here was this #uote that Qif you want a website but are short of time or money< the easiest way for you to get going would be to loo5 for a P4P specialist to de"elop your site for you* P4P is not without its critics* &here is no technology that can escape critical misgi"ings and be named the best and be uni"ersally ac5nowledged* P4P is of course no eDception* &echnology should always be chosen according to priorities* %f the project in #uestion is on "ery large scale< the 2a"a should be considered* For this project< P4P is the most appropriate without any hesitation* %=2o/tan0e of P!P P4P is different from 2a"aScript* P4P is a ser"er@side scripting language* (ll of the wor5 is done on the ser"er* 2a"aScript generally runs on the client machine and it has little access to the information that the ser"er has< and full access to information on the client* 2a"aScript can do lots of things on the client that P4P cannot* P4P has full access to the information that the ser"er has< and "ery little access to information that the client has* %n fact< it only has information that the client tells the ser"er and that the ser"er passes on to the P4P* Since P4P is on the ser"er< P4P cannot be modified by the client* 8hile you cannot necessarily trust the information that the client gi"es to P4P< you can trust that your P4P is doing what you 3 http)??www*de"eloper*com?lang?php? article*php?B00>/3 33 told it to do* 7ecause P4P is on the ser"er end< your P4P scripts can affect your ser"er such as 5eeping an acti"ity log or updating a database* P4P and Perl often wor5 side@by@side since they are both ser"er@side* 8hereas P4P eDcels at embedding dynamic content< Perl eDcels at modifying or filtering streams of teDt* P4P eDcels at putting things into documents< and Perl eDcels at finding things in documents* P4P has an ad"antage o"er Perl on most web sites because P4P is usually loaded as part of the web ser"er* 8hen scripting languages run< the system has to first load the interpreter and then compiles the language into code that the machine can understand* 8hen you tell P4P to echo the current time to the web page< the computer needs to ha"e your command translated into numbers that it can understand* Since the P4P interpreter is already loaded as part of the web ser"ers software< it is always running* &his cuts out half of that process* &he interpreter is already loaded< and it can go directly to compiling the language into code* 8hen web ser"ers see a re#uest to run a Perl script< they usually ha"e to first load the Perl interpreter* &his happens "ery #uic5ly< but when there are thousands or tens of thousands of re#uests coming e"ery second< time can "ery #uic5ly add up* P4P is more portable in that if it wor5s on one ser"er< it will most li5ely wor5 on any other ser"er that supports it* Most %SPs that pro"ide ser"er@side scripting language pro"ide P4P* P4P is the best choice for charities and educational organiCations that prefer free hosting ser"ices< as P4P is commonly included in hosting pac5ages< and doesnt re#uire too much effort from system administrators* !an9l6n7 P!P Fo/=s ( P4P script runs on the ser"er and it can re#uest data from a database* &he ser"er machine running the script forwards only 4&M- data to the client* P4P statements that output 4&M- code are echo and print statements* P4P statements can be written between / 5inds of tags) <?php //statements here?> or <? //statements here ?>* P4P forms ha"e 4&M- form data and P4P code to handle the form* &he general format of a P4P file Lhandling a formM is as below* %t initially displays only a form* 8hen user clic5s the RSubmitS button< the page reloads itself and eDecutes the P4P statements in the if@statement* 3/ <html> <head> <title>Form Title here</title> <?php if (isset($_POST!"tnSu"mit!#$$ % // &andle Form after pa'e is posted // P&P code to e(ecute if form is su"mitted )?> </head> <"od*> <form name+,form-, method+,post, action+,<?php echo $_S.R/.R!P&P_S.LF!#?>,> <011 Form elements here2 The element data 3ill "e su"mitted and 3ill "e accessi"le in the &andle Form1Section a"o4e 11> <input name+,"tnSu"mit, t*pe+,su"mit, id+,"tnSu"mit, 4alue+,Su"mit,> </form> </"od*> </html> Apache web server (Apache HTTP (pache web ser"er< oracle database< and P4P programming language gi"es this project a combination needed to build steady< secure< and speedy dynamic websites* A2a03e !TTP Se/;e/ P/o4e0t ( public@domain 8eb ser"er de"eloped by a loosely@5nit group of programmers* &he first "ersion of (pache< based on the N$S( httpd 8eb ser"er< was de"eloped in 3BB>* 7ecause it was de"eloped from eDisting N$S( code plus "arious patches< it was called a patchy ser"er T hence the name (pache Ser"er* (s a result of its sophisticated features< eDcellent performance< and itPs free< (pache has became the worldPs most popular 8eb ser"er* &he (pache 4&&P Ser"er Project is a collaborati"e software de"elopment effort aimed at creating a robust< commercial@grade< rich@feature< and freely@a"ailable source code implementation of an 4&&P L8ebM ser"er* &he project is jointly managed by a group of "olunteers located around the world< using the %nternet and the 8eb to communicate< plan< and de"elop the ser"er and its related documentation* &his project is part of the (pache Software Foundation* %n addition< hundreds of users ha"e contributed ideas< code< and documentation to the project* &his section is intended to briefly describe the history of the (pache 4&&P Ser"er and recogniCe the many contributors* !o: A2a03e Ca=e to Be %n February of 3BB>< the most popular ser"er software on the 8eb was the public domain 4&&P daemon de"eloped by Rob Mc$ool at the National $enter for Supercomputing (pplications LN$S(M< !ni"ersity of %llinois at !rbana@$hampaign* 4owe"er< de"elopment of that httpd had stalled after Rob left N$S( in mid@3BB9< and many webmasters had de"eloped their own eDtensions and bug fiDes that were in need of a common distribution* ( small group of these webmasters< contacted "ia pri"ate e@mail< gathered together for the purpose of coordinating their changes Lin the form of patchesM* 7rian 7ehlendorf and $liff S5olnic5 put together a mailing 36 list< shared information space< and logins for the core de"elopers on a machine in the $alifornia 7ay (rea< with bandwidth donated by 4ot8ired* 7y the end of February< eight core contributors formed the foundation of the original (pache Group) 7rian 7ehlendorf< Roy &* Fielding< Rob 4artill< a"id Robinson< $liff S5olnic5< Randy &erbush< Robert S* &hau< (ndrew 8ilson with additional contributions from =ric 4agberg Fran5 Peters Nicolas Pioch* !sing N$S( httpd 3*6 as a base< they added all of the published bug fiDes and worthwhile enhancements they could find< tested the result on their own ser"ers< and made the first official public release L0*1*/M of the (pache ser"er in (pril 3BB>* 7y coincidence< N$S( restarted their own de"elopment during the same period< and 7randon -ong and 7eth Fran5 of the N$S( Ser"er e"elopment &eam joined the list in March as honorary members so that the two projects could share ideas and fiDes* &he early (pache ser"er was a big hit< but the code base needed a general o"erhaul and redesign* uring May@2une 3BB> Rob 4artill and the rest of the group focused on implementing new features for 0*;*D model* &he group switched to this new ser"er base in 2uly and added the features from 0*;*D< resulting in (pache 0*A*A in (ugust* (fter eDtensi"e beta testing< a new set of documentation by a"id Robinson< and the addition of many features in the form of their standard modules< (pache 3*0 was released on ecember 3< 3BB>* -ess than a year after the group was formed< the (pache ser"er passed N$S(Ps httpd as the number one ser"er on the %nternet and according to the sur"ey by Netcraft< it retains that position today* %n 3BBB< members of the (pache Group formed the (pache Software Foundation to pro"ide organiCational< legal< and financial support for the (pache 4&&P Ser"er* &he foundation has placed the software on a solid footing for future de"elopment< and greatly eDpanded the number of Open Source software projects< which fall under this FoundationPs umbrella* W38 A2a03e Soft:a/e 6s F/ee (pache Software eDists to pro"ide robust and commercial@grade reference implementations of many types of software* %t is a platform upon which indi"iduals and institutions can build reliable systems< both for eDperimental purposes and for mission@critical purposes* &hey belie"e that the tools online for publishing should be in the hands of e"eryone< and that software companies should ma5e their money by pro"iding "alue@added ser"ices such as specialiCed modules and support< amongst other things* &hey realiCe that it is often seen as an economic ad"antage for one company to own a mar5et @ in the software industry< that means to control tightly a particular medium such that all others must pay for its use* &hus< ownership of the protocols must be pre"ented* &o them< the eDistence of robust reference implementations of "arious protocols and application programming interfaces< a"ailable free to all companies and indi"iduals is a tremendously good thing* Furthermore< the (pache Software Foundation is an organic entityN those who benefit from this software by using it< often contribute bac5 to it by pro"iding feature enhancements< bug fiDes< and support for others in public lists and newsgroups* &he effort eDpanded by any particular indi"idual is usually fairly light< but the resulting product is made "ery strong* &hese 5inds of 39 communities can only happen with freely a"ailable software* 8hen someone has paid for software< they are usually not willing to fiD its bugs for free* One can argue< then< that (pachePs strength comes from the fact that itPs free< and if it was made not free it would suffer tremendously< e"en if that money were spent on a real de"elopment team* &hey also want to see (pache Software used "ery widelyN by large companies< small companies< research institutions< schools< indi"iduals< in the intranet en"ironment< e"erywhere* ="en though this may mean that companies who could afford commercial software< and would pay for it without blin5ing< might get a free ride by using (pache* &hey are e"en happy when some commercial software companies completely drop their own 4&&P ser"er de"elopment plans and use (pache as a base< with the proper attributions as described in the -%$=NS=* &hat is to say< the (pache 4&&P Se"er only comes from the (pache Software Foundation< but many "endors ship their own product based on the (pache Project* &here is no +endor (pache Product* &he apache current "ersion a"ailable is /*/* Case for !racle atabase is an electronic storage of data* %t stores information about different entities and also contains relationships among these entities* Oracle is relational database model* %t is a client?ser"er database that runs the 7MS as a processor on the ser"er and runs the client database application on each client* &he client application sends a re#uest for data o"er the networ5 to the ser"er* 8hen the ser"er recei"es the client re#uest< the 7MS retrie"es data from the database< performs re#uired processing on the data< and sends only the re#uested data bac5 to the client o"er the networ5 as shown below* Data"ase server L7MS ProcessM @Gets data re#uest from client @ (dds< deletes< updates< and filter data @ Sends results to clients 5-)',6S $lient computer L$lient applicationM Sends data re#uest Recei"es results Sends new data or changes Client2Server data"ase 3> M8S>L Database MyS:- is a database ser"er engine which is an open source database* &he only ad"antage of MyS:- is being free but it has a lot of limitations* MyS:- table types dont really supports many features one eDpects from a real relational database* Sub@#ueries< Foreign 5eys< transactions< low le"el loc5ing just to mention but few are not a"ailable* MyS:- 9*3 started implementing some of the abo"e features but the fact that they recogniCe the need for these features means the MyS:- is on the right trac5* MyS:- does not support +iews< Stored Procedures< and &riggers* %t does not use !ser efined ata &ypes* MyS:- can handle large databases but it is so complicated and intimidating to install for people who are so comfortable with graphic user interface software* MyS:- could be considered if the application and the data are not mission critical< the data structures are simple and the organiCation can afford the bumps and bruises of lac5 of tools and support but a company can not afford Oracle< MyS:- can get the job done* W38 O/a0le Database Oracle can handle &=R(7O&= databases in production* Oracle supports uncorrelated and correlated sub@#ueries up to />> le"els* Oracle supports updatable "iews* &ransaction processing and many of the other relations database features mentioned abo"e are inherent in Oracle* Oracle has an incredible set of #uery functions and optimiCed S:- constructs allowing recursi"e tree@spanning result@sets< top@N< etc* Robust e"ent@based triggers are a"ailable in Oracle* Oracle has integrated .M- support< integrated web ser"ers and $(S= products< and eDtremely high@ #uality support* Oracle costs money but has time@pro"en stability< maDimum fleDibility and power< and also eDcellent support and reco"ery options* %f data is important to the organiCation as it is in this case therePs no eDcuse< the licensing fees are worth it* 7elow is a figure illustrating how the 4&&P ser"er wor5s with P4P and Oracle to ser"e a client* 31 O/a0le ;s. S>L Se/;e/ &he e"aluator< =li -eiba< wor5s at the %srael =lectric $ompany as a senior application 7( in Oracle and Microsoft S:- Ser"er< and has certifications in Oracle and S:- Ser"er database administration and implementation* (dditionally< Mr* -eiba teaches S:- Ser"er 7( and de"elopment courses at the Microsoft $&=$* 4e recently published detailed comparison of the relati"e merits of Oracle +s* S:- Ser"er / * -eiba compares S:- Ser"er to Oracle along the following lines) %n S:- Ser"er< the 7( has no real control o"er sorting and cache memory allocation* &he memory allocation is decided only globally in the ser"er properties memory folder< and that applies for (-- memory and not $($4%NG< SOR&%NG< etc*
%n S:- Ser"er< all pages Lbloc5sM are always A5 and all eDtents are always A pages L195M* &his means you ha"e no way to specify larger eDtents to ensure contiguous space for large objects*
%n S:- Ser"er< no range partitioning of large tables and indeDes* %n Oracle< a large 300 G7 table can be seamlessly partitioned at the database le"el into range partitions* For eDample< an in"oice table can be partitioned into monthly partitions* Such partitioned tables and partitioned indeDes gi"e performance and maintenance benefits and are transparent to the application* &here is no partitioning in S:- Ser"er* &here are no bitmap indeDes in S:- Ser"er* / Searchatabase*com 3; &here are no re"erse 5ey indeDes in S:- Ser"er* &here are no function@based indeDes in S:- Ser"er* &here is no star #uery optimiCation in S:- Ser"er* 4owe"er< with the MS@S:- Ser"er /00> some of these limitations ha"e been o"ercome* &hese include) New loc5ing mechanisms that allow writers that donPt bloc5 readers* (lso< with Snapshot %solation LS%M there is data consistency on transaction begin* =tc* 3A Web =a2 )Web s6te na;67at6ons+ &his section is designed to show the how different pages are lin5ed together* %t gi"es an o"er"iew of how users can mo"e easily mo"e from page to another* 3B /0 Web Des67n A00ess &he web project is di"ided into four different sections* Pu"lic )e" Page7 &he first section is a public web page in which any user can see limited information about the faculty member of interest* +ndividual private pages7 &he second section has pri"ate web pages where faculty member must be authenticated and authoriCed to access the system to add or edit information which will be used later to build a report* ,eport section7 &he third section deal with report which also re#uires authentication and authoriCation to "iew or upload report that department chairperson and dean uses to e"aluate a faculty contribution to the department and the uni"ersity in general* Pro8ect Ad/inistrator section7 &he last section is public administration site management* &his is only a"ailable to the administrator with special authentication* &he administrator uses these pages to enter information li5e faculty login< department chairperson for each department and so much more* Public "eb Page On this main page< the faculty members by default< are listed by department* %t shows faculty names< office location< office telephone number< Old ominion !ni"ersity email address and office hours of the faculty* %f a user 5nows the faculty names but does not 5now which department he?she belongs to< a user can chose to see the faculty listing by Names* (ll the user has to do is clic5 on the lin5 !Facult* Listin' "* 5ame!* (ll the information listed in the page shows only current faculty members* Sample form of main page) facult*Listin'2php 8hen a user clic5s on each faculty name< he?she gets to see brief information about the faculty such asN a picture< faculty profile< education bac5ground< research interest< courses taught in the last two years< recent papers published< recent presentations< recent grants recei"ed< and some editorial wor5 done* %f the faculty has not entered any of the information< only the information entered by an administrator such as names< phone number< email< and position in the department will show up* For presentations< grants and publications< only the first current four items that were presented?published or grants recei"ed in the last three years from the current date are shown* Sample form of indi"idual page) indi4idualFacult*2php On the main page< user ha"e three selectionN P&omeP< 6Facult* Reports Listin'7 and QLo'in* 8hen the user clic5 on !Facult* Reports Listin'!< report selections grouped by academic year show up* &here are three selections from which a user can select one* (ll the three selections re#uire user to authenticated and authoriCed* Sample form of reports selection8reportsSelection2php /3 8hen the user clic5s on !Facult* ReportP and logs in with proper user id and password< she will see the lin5 for all reports submitted in that academic year* %t will show the file name< due date and the date when that report was submitted* $lic5ing on the file name< a faculty will be prompted to download a file by either sa"ing the file< opening the file or canceling the operation* Sample reports listing for indi"idual faculty) reportsListin'2php &he !9epartment :hair!s Reports! or !9ean!s Reports! selection option can only be accessed by department chair persons and dean respecti"ely* &he department chair person will be able to see the reports for all faculty members in the department* %f department chair person chairs more than one department< she will be able to see faculty member reports in these departments* &he departments are ordered in the alphabetic order* &he reports are grouped by due dates* Some are due on February 3> while others are due on October 3* &he department chairperson can then download the reports one at a time for e"aluation* Sample reports listing by departments) reportsListin'2php 8hen the dean logins to see the report< he or she can see all the reports for all faculty who submitted the report* &he deans reports are grouped by department* Only the dean has access to all faculty reports* Sample reports listing for dean) reportsListin'2php &he last selection on the main page is !Lo'in!* $lic5 on this button will prompt a user to login in order to access indi"idual pri"ate information* %f user has "alid credentials< login will be successful and the user will then see the main pri"ate indi"idual page in the section* Sample form for login form) facult*Lo'in2php %n case a user has forgotten his or her password< he?she can clic5 on !for'ot pass3ord! lin5 located on login form* ( user will be prompted to enter a user id and an O! email address* &he password then is emailed to the users O! email account* Sample form for forgot password form8 for'otPass3ord2php #ndividual Private Pages (fter a successful login< the user will be directed to the !Facult* Lo''edin Pa'e! which is the most compleD page* (ll the information shown on the public page or in the reports is entered in the database through this page* &he faculty can add new information and change eDisting data but cannot delete confirmed data* &he page lists all the information that a faculty member can e"er enter in the database* %f the user has not entered any information< only the information entered by the administrator will be listed* %nformation that is editable has an edit lin5 beside the record* $lic5ing on the edit lin5 beside the record will bring up that record in a form where the user can ma5e changes to that record* &he information that can not be edited // such as personal information can only be changed by an administrator* %f the user wants to add new information< he or she can select a choice from the main menu* Sample form for faculty logged in page) facult*Lo''edin2php Pe/sonal !nder personal selection< there are se"en different choices a faculty can chose from* &he web pages that are used in these choices are almost identical in terms of appearance and functionality will be categoriCed together* Personal +nfor/ation On this form< a faculty can see an assigned uni"ersity identification number L!%NM< email address< faculty names< phone number< a department to which the faculty belongs< position held in the uni"ersity< year hired< office hours and office location* &here are only two fields a faculty can change on this formN office location and office hours* &he rest of the information on the form is entered by the administrator* %f a faculty recei"ed any promotion< the year when that promotion occurred is indicated on the form by !*ear of position!* Sample form for personal information) editPersonal2php ,esu/e upload9 ,esu/e do!nload : Picture upload &hese forms will allow the faculty to upload a resume and a personal picture respecti"ely* &he last picture uploaded will be the current picture shown on indi"idual public page< indi"idual pri"ate page and both reports Lfinished and progressM* &he picture uploaded must be either of 'if or ;pe' format and should not eDceed one megabyte* &he formats acceptable for resume uploads are Microsoft word< word perfect and PF* Resume download allow a faculty to download the last submitted resume to the system* Sample form for resume upload?picture upload) uploadResume2php/uploadPicture2php Add profile &his form contains one teDt boD where a faculty can enter brief information about him?herself* &he latest information submitted in the database system will always be "isible to the public indi"idual page* &he information entered should not eDceed /000 characters* Sample form for profile) editProfile2php Add ,an;9 position fro/ oter university &his form allows the faculty to enter a new position or pre"iously held position< and start?end dates for that position* &he faculty can select a position from the gi"en list of positions* Faculty can enter positions held in other uni"ersities as well* For instance if the faculty is department /6 chair< that can be entered for the record* &he form also ha"e start date when the faculty obtained that position and the end date that can be entered later through editing if the faculty retires from that position* Sample form for add ran58 addRan<2php ? editOther=ni4ersit*Pos2php Cange Pass!ord &his form allows the faculty to change the password* &he form has four fieldsN user id< old password< new password and confirm new password* &his form may show up as result of faculty clic5ing on changing password or the faculty is logging into the system for the first time* 7y default< the password assigned by administrator is PfacultyP* So as the faculty is authenticated for the first time< automatically this form will re#uest a faculty to change the password before he or she will be allowed to proceed to the pri"ate page* Sample form for change password) chan'ePass3ord2php A036e;e=ents &he achie"ement selection has three choices* &hese selections deals with faculty education achie"ements< certifications that are related to faculty academic area and honors ' awards the faculty recei"ed* -ducation &his form has only four teDt boDes* &he faculty can enter the name of a degree obtained such as Masters degree< the major area of concentration li5e accounting< the uni"ersity where the degree was awarded and lastly the date when degree was awarded* &his data is used to show faculty credentials on the public webpage* Sample form for education form) edit.ducation2php Certification and Honors : A!ards &he certification from ha"e only two fieldsN the certificate title and the date when the certificate was issued* (lso honors and awards form has two fieldsN the award name or honor achie"ed and the date when the award was gi"en* Sample form for certification or 4onors and awards form) edit:erts2php? edit&onors>3ards2php Tea036n7 &he choice deals with teaching* (ny course a faculty taught must be entered in the system through this option* /9 Add courses &his form is multi@purpose* %t is used to add new courses a faculty teaches in the current semester* %t can also be used to edit eDisting course record in the database* &he form has se"eral fields that are re#uired* &hese fields are $ourse number< course title and course call number* %f any of those three fields is not entered< the record will not be submitted to the database* &he other fields such as year and semester are used to identify when the course was taught* &he abbre"iated department name identifies the department to which that course belongs to* Some of the fields are in list boDes where a user can just choice from gi"en selection* &his helps to minimiCe typo errors* &hey are) year< semester< teaching mode and credit hours* Sample form for add courses form) edit:ourses2php Resea/03?G/ants (ny acti"ities related to research wor5 or grants proposal a faculty conducted must be entered in the system through this choice* &his section has se"en choices from which a user can select* &hese selections include) Publication< $onferences< Seminars< Students directed< Grants and Research %nterest* &he only choice that has some two le"el submenu is Publications* Pu"lications &his submenu deals with publications as the name suggest* %t has se"eral sub@selections grouped under this menu* &hese sub@selections include Refereed 2ournal< non@Refereed journal< proceedings< boo5s and monographs< boo5 chapters< and case studies* ,efereed Journal and 5on<,efereed Journal &hese are grouped together since they ha"e almost identical fields* &hey ha"e the same number of fields with only one eDemption) refereed journal choice contains well 5nown?highly ran5ed journals* &he uni"ersity has a list of journal names that it considers to be of high ran5s* %f a faculty can not find the name of the journal in the list< then he or she can use non@refereed journal to enter the publication* &he list of journals is grouped by department* %n the journal selection area< a faculty can select a department to narrow down the list search to the specified department* For instance< if a faculty selects Q(ccounting< the list of journals related to accounting will be listed* Otherwise< by default< all the journals in the database system will be listed* &he re#uired fields on these forms are author names< title of paper< journal where the paper was submitted< and submission date* %f any of those fields is missing< the record will not be recorded in the system* %f the paper has been accepted or published and the dates are not entered< the application will complain that changes will not ta5e effect until the dates are entered* &he status by default is QSubmitted* &he status helps to identify the stage at which the paper is on* &he classification helps to categoriCe the type of paper the faculty has submitted* &he sample image below represents both forms in this section* /> Sample form for refereed journal) editRefereedPu"lications2php ? edit5onRefPu"lications2php Proceedings &he proceedings section is subdi"ided into two sections) Refereed proceedings and non@refereed proceedings* ,efereed proceedings and 5on<refereed proceedings &hese forms are similar in terms of data being collected* &he only difference is that refereed proceeding papers are re"iewed by peers while non@refereed proceeding papers are not peer re"iewed* &he refereed proceeding papers ha"e greater "alue than non@refereed proceedings* %n order to ma5e it easy for the user< we decided to ha"e two separate forms and tables* Otherwise< we could ha"e pro"ided a switch for the user to choose one but this presents a possibility of an incorrect choice or no choice being made* &he re#uired fields are author names< title of the proceedings< proceedings name< and the date when the proceedings were submitted* &he accepted or published date are also re#uired if the user classifies that the proceedings ha"e been accepted or published* &he other data collected that are not re#uired include paper edition< "olume< issue< pages< status of the paper and classification of the paper* Sample form for refereed proceeding) editRefProceedin's2php ? edit5onRefProceedin's2php =oo;s and >onograps9 =oo; capters9 case studies &hese forms are similar in terms of the data being collected and it is appropriate to put them in the same category* (ll of them ha"e the same re#uired fields such as author of the boo5< title of the boo5< date when the boo5 was submitted< and the publisher* !nless all the re#uired fields are entered< the form will not be submitted* %t will display an error message stating the re#uired field omitted* &he accepted date or published date are also re#uired if the user classifies that the boo5 or case studies ha"e been accepted or published* &he other data collected that are not re#uired include boo5 title< paper edition< "olume< issue< pages< status of the boo5 and classification* Sample form for boo5s monographs) edit?oo<s@ono'raphs2php ? edit?oo<:hapters2php ? edit:aseStudies2php Conference &he conference form allows a faculty to document all conferences either attended or presented* &he re#uired data to be collected are author of the conference< title of the conference< conference location and the date when the conference was attended or presented* &he end date to the conference is the only field on the form that is not re#uired* Sample form for conference presentation8 edit:onfPresentation2php /1 Se/inars &he form allows a faculty to document information related to either seminars presented or attended within the academic calendar* %t has fi"e fields of data collected) spea5ers name< the topic of the seminar< location where the seminar too5 place< date when seminar was held and also a field to pro"ide additional information a faculty may ha"e related to seminar* &he only re#uired field is the spea5ers name* Sample form for seminars) editSeminars2php Students Directed &his form deals with ser"ices a faculty pro"ided to students through ad"isory role* &he form has siD fields of data to be filled in* &he faculty role option pro"ide a faculty an option to select from pro"ided roles that a faculty can play such as director< co@director< committee member and project ad"isor* For the report type< a faculty can select from three choices) Ph** dissertation< Masters project and !ndergraduate project* &he student name< faculty role< report type and title are re#uired fields* &he report date field can be filled in once the report has been appro"ed by the committee* (n additional comment field pro"ides the faculty with an opportunity to enter more information related to project* Sample form for student directed) editStudents9irected2php Add ?rants &his form allows a faculty to record all grants that are either funded or proposals that are submitted* &he re#uired data collected here includes) principal in"estigator< title of the proposed< sponsoring agency< amount awarded or re#uested< duration of the grant< date when the grant proposal was submitted< and an abstract of the grant* (ny of the stated field must be entered before the form can submit to the system* Other data fields collected include) co@in"estigator if they eDist< flag that indicate whether the grant is funded or not and the date when funded grant will eDpire* &he information collected here will be used on the faculty report that the department chair use to e"aluate the faculty* Sample form for add grants form) editArants2php ,esearc interest &he research interest is one field form* &his form gi"es a faculty member an opportunity to record where his or her interests recline in research areas* &he information collected on this form is always displayed on the public web page* Only the latest interests submitted to the database will always be displayed* &he record in the database can always be edited as the faculty wishes* Sample form for research interests) editResearchBnterest2php /; Se/;60es &his section pro"ides a way for the faculty to document any acti"ity or ser"ices as the name suggest to the uni"ersity and the community as a whole* %t has two sub@selections) !>dd Ser4ices toP and !>cademic/Professional!* Add Services !nder this section< it has four more choices a faculty can chose from* &hese are !=ni4ersit*!< !:olle'e P< !9epartment! and !:ommunit*!* 3niversity9 College9 Depart/ent and Co//unity &he data collected under all these four sub@selections is the same< they fall under the same category* =ach of these forms has four data fields that were used to collect data* &he re#uired fields are three) committee on which the faculty ser"ed< the ser"ice offered< and the date when the ser"ices was rendered* &he end date of ser"ice is not re#uired but can be entered if the faculty wishes incase the ser"ice was carried out for specific period of time* &he only form without committee field is !:ommunit*! since this ser"ice is offered outside the school en"ironment* &he one form sample displayed below is enough to represent the rest* Sample form for ser"ice to uni"ersity) editSer4iceTo=ni4ersit*2php Acade/ic2Professional &he data collected here is similar to what is collected in the abo"e ser"ice to uni"ersity section and the rest* &his form was necessary because a faculty may want to document professional ser"ices that do not belong to any of the abo"e categories* &he faculty may ha"e pro"ided a ser"ice on the committee that is outside school and it helps to promote the uni"ersity* Sample form for academic?professional) editProfSer4ices2php Re2o/t &he report section has three selections for a faulty to chose from) !5e3 information sheet!< !=pload information sheet! and !4ie3 information sheet!* &he !5e3 information sheet! will be eDplained in detail later when we co"er the PReport in progress P in the QReport Section* 3pload +nfor/ation seet &his form allows the faculty to select the date when his or her report is due for submission* &his date is used to differentiate between &enure and non@&enure* &he month selection shows only two choices< February for &enure and October for non@tenure* 7y default< February will be selected if the user does not ma5e a selection* &he day is the same for e"eryone so by default 3> will always be there* &he year is set to show only three years using current year as the default* /A &he user will ha"e to browse his or her computer to select the file he or she wants to submit* &he file formats acceptable at the moment are) Microsoft word document< 8ordPerfect and (crobat* (ll the information is re#uired for successful submission of the file* Once the file is submitted< the faculty can go and "iew the file just uploaded to ma5e sure it is the right file he or she wanted to be e"aluated on by the chair* Sample form for upload information sheet) upLoadBnfoSheet2php 1ie! infor/ation seet &his form shows the indi"idual all the reports he or she has e"er submitted to the system* %t lists the file name< due date of the report and the date when the report was submitted* &he reports are listed in the order of due date* 8hen the user clic5s on the lin5 of the file name< the faculty will be prompted to with selection choices) sa"e the file on local dri"e< open the file or cancel the operation* Sample form for "iew report) report>rchi4e2php Lo7o1t -ogout form allows the user to initiated process of signing off the system and cutting the userPs connection to the system* /B $eport Section Re2o/t 6n P/o7/ess &here are two ways through which the report in progress can be accessed* =ither you can access the report from !facult*lo''edin! page by editing a record or select !ne3 information sheet! from report menu choices* 8hen a user selects new information sheet< he or she will be prompted to select due date* &his date is re#uired to run the #uery that will display all the information that the faculty has been collecting into the database system* &he report form will also display fi"e empty teDt boDes and those teDt boDes record will also need the due date before the data can be submitted in the table* 8hen a user selects to edit a record from !facult*lo''edin!< that specified record will already ha"e due date attached which means the form for selecting due date will not show up* &he teDt boDes will show up with the data related to specified record for editing* &he other information such as courses taught< research ' scholarly acti"ities< grants< professional ser"ices etc will also be displayed for the last two to three years from the due date* (ll the information on the report on progress can be changed in any way the faculty wants* &his report in progress page appearance is similar to !facult*lo''edin! page with one eDceptional that the information on report is filtered to ha"e only the information that will be used to e"aluate the faculty by the department chairperson and the dean* &he report editing areas ha"e four different buttons a user can clic5* &he !=pdate Record! button when clic5ed will update all the information in the teDt boDes into !t"lFBS! table and display the same form again after updating the record* !:reate ne3 record! button will chec5 the database to ma5e sure that the record the user wants to insert into !t"lFBS! table does not eDist by chec5ing due date* %f table has record with the same due date for that faculty< the record will not be created* On the other had< if it does not eDit< the record will be inserted as a new record into !t"lFBS! table with the data listed in the teDt boDes* &he page will display the form again with the same data inserted in the record in the database* !?ac< to main pa'e! button will ta5e the user to the main pri"ate page !facult*Lo''edin! page* !final report! button will ta5e the user to finished report that can not be edited* &his report can be sa"ed into PF format and latter can be submitted by uploading the report for e"aluation* Sample of report in progress) editFBSBnformation2php Re2o/t F6nal6@e9 &his is the finished product of the report that is ready to be sa"ed and submitted* &he report in 4&M- is formatted using a !fle(i1report! php class* &he report at this stage can not be edited* ( user ha"ing PF con"ert capability can create?sa"e a PF copy on his or her computer* 60 &he user will be able to sa"e the file at that time which will later be submitted for e"aluation* &he report indicates when it was generated< the due date< faculty images and much more* Sample form for finished report) facult*BnfoSheet2php 63 P/o4e0t A9=6n6st/ato/ Se0t6on &his section helps the database administrator to administer users* %n order for the administrator to access the pages under this section< he?she has to use a different login account* %f there is a need to ha"e more than one administrator< se"eral administrators can be created since they are maintained in a database in a separate table from site users* &he web pages in this section are grouped into three partsN those pages used to add information< those used to edit eDisting data and those used only to "iew what is a"ailable in system database* Adding %ew #nfor&ation &here are siD pages used to add information to the database* =ach of the file listed below* A99 Deans &he ean for the $ollege of 7usiness and Public (dministration is added using this page* &here can be only one dean but se"eral associate and assistant deans can be added* %f there is a current dean< while adding a new dean< the system is designed to detect it* &he eDisting dean will automatically be con"erted into a pre"ious dean with effecti"e ending date of current date when that action is performed* 7efore any person can be added as dean or associate or assistant< he?she must be a current user in the system* &he re#uired fields are faculty department< starting date of assumed position< the assumed position and faculty identification number* &he faculty identification number is handled being the scenes because the user is re#uired to select the faculty names and the system will pic5up the uni#ue number of the faculty* Once all the re#uired information is pro"ided< the new dean record will be added to t"l9eans table when submitted to the database* &he sample form for this page is shown below) admin>dd9eans2php A99 De2a/t=ent &he department page gi"es an administrator an opportunity to create as many departments as possible* &his page has two fields that are all re#uired* &he first field is the full department name and second field is the abbre"iated "ersion of the department* &his page is used for both adding new department and editing eDisting department* %t has a flag that differentiates between the two modes of adding and editing* %f the re#uired fields are pro"ided< the record will be added or modified to the t"l9epartment table in the database* &he sample form for this page is shown below) admin>dd9ept2php A99 De2a/t=ent C3a6/ Pe/son &he add department chair page allows an administrator to create the department chair for each department* One faculty can be a department chair for more than one department* %f there is a 6/ current department chair< as new department chair is being added< the system is design to detect that automatically* &he eDisting department chair will automatically be con"erted into a pre"ious department chair with effecti"e ending date of current date when that action is performed* 7efore any person can be added as department chair< he or she must be a current user in the system* &he re#uired fields are the department a faculty will be heading< starting date of being department chair< and faculty identification number* &he faculty identification number is handled behind the scenes because the user is re#uired to select the faculty names and the system pic5ups the uni#ue number of the faculty* Once all the re#uired information is pro"ided< the new department chair record will be added to t"l:hairPersons table when submitted to the database* &he sample form for this page is shown below) admin>dd9ept:hairs2php A99 De2a/t=ent Se0/eta/8 &he add department secretary page allows an administrator to create the department secretary for each department* ( secretary can be a department secretary for more than one department* %f there is a current department secretary< as new department chair is being added< the system is design to detect that automatically* &he eDisting department secretary will automatically be turned into pre"iously ser"ed department secretary with effecti"e ending date of current date when that action is performed* 7efore any person can be added as department secretary< he or she must be a current user in the system* &he re#uired fields are the department a secretary will be pro"iding ser"ices to< starting date of being department secretary< and secretary identification number* &he identification number is handled behind the scene because the user is re#uired to select the secretary names and the system pic5ups the uni#ue number of the specified user* Once all the re#uired information is pro"ided< the new department secretary record will be added to t"lSecretar* table when submitted to the database* &he sample form for this page is shown below) admin>dd9eptSecretar*2php A99 "o1/nals &he form page is used to add the most popular journals around the world* &he journals entered on this page ha"e ran5s* %f the faculty publishes an article under the journal listed in this page< then the journal is regarded to be of high ran5* &he journal page has the following fields) the journal name< the publisher< journal ran5< and the department associated with the journal* Out of the four fields< the re#uired fields only two) publisher and the journal name* 8hen these two re#uired field are pro"ided< the added information will be submitted to the t"lCournals table when submitted database*
&he sample form for this page is shown below) admin>ddCournals2php 66 A99 se/s &his page handles user information* &he form has so many fields but the re#uired fields are) the faculty identification number< user identification< user password< prefiD< first name< last name< year hired< and faculty ran5* &he optional field includes are) year the faculty was gi"en the ran5ed< email< phone number< middle initial< office location< office hours< department the user belongs to< and suffiD* &he information entered here is stored into three tables) t"lLo'in table where the user id< faculty identification number and password are stored< the ran5 information and year hired are store in t"lRan<s table and the other table t"lFacult* is where the rest of the information is stored in the database* 7efore the information for t"lRan<s table is added< the information for t"lFacult* table must be inserted and committed because the identification number that lin5s between these two table must be obtained from the latter table* &he sample form for this page is shown below) admin>dd=sers2php 'diting '(isting #nfor&ation &his section handles the modification of data sitting in the database* %ndependent forms to handle editing are used due to the compleDity in"ol"ed in using the adding forms for editing too* E96t Deans &his page allows the administrator to modify the deans information* &he fields that can be modified include) user department< faculty identification number< position< prefiD< first name< middle initial< last name< suffiD< office location< phone number< start date< and end date* Out of all these fields< the re#uired fields are faculty identification number< position< prefiD< first name< last name< location< department< phone number and start date* 8hen all the field re#uirements are met< the data will be submitted to two different tables< t"l9eans and t"lFacult* table* &he information submitted to the former table is) position< start date< end date if applicable< and faculty identification number* &he rest of the information is sent to the latter table* Otherwise< if there are some re#uired fields that are not filled< error messages will be shown in the browser stating why the data was not sa"ed* &he sample form for this page is shown below) admin.dit9eans2php E96t De2a/t=ent C3a6/ 2e/son &his page allows the administrator to modify the department chair information* &he fields that can be modified include) changing department a faculty is heading< faculty identification number< prefiD< first name< middle initial< last name< suffiD< office location< phone number< state date< and end date* Out of these fields< the re#uired fields are faculty identification number< department< prefiD< first name< last name< location< phone number and start date* 8hen the field re#uirements are met< the data will be submitted to two different tables< t"l:hairPersons and t"lFacult* table* &he information submitted to the former table is) department< start date< end date if applicable< and faculty identification number* &he rest of the information is sent 69 to the latter table* Otherwise< if there are some re#uired fields that are not filled< error messages will be shown in the browser stating why the data was not sa"ed* &he sample form for this page is shown below) admin.dit9ept:hairs2php E96t De2a/t=ent Se0/eta/8 &his page allows the administrator to modify the department secretary information* &he fields that can be modified are) department a secretary is in"ol"ed in< faculty identification number< prefiD< first name< middle initial< last name< suffiD< office location< phone number< start date< and end date* Of all these fields< the re#uired fields are) faculty identification number< department< prefiD< first name< last name< location< phone number< a flag for indicating if he or she is already ser"ing as a secretary< and the start date* 8hen all the field re#uirements are met< the data will be submitted to two tables< t"lSecretar* and t"lFacult* tables* &he information submitted to the former table is) department< acti"ating?deacti"ating secretary flag< start date< end date if applicable< and faculty identification number* &he rest of the information is sent to the latter table* Otherwise< if there are some re#uired fields that are not filled< error messages will indicate in the browser stating why the data was not sa"ed* &he sample form for this page is shown below) admin.dit9eptSecretar*2php )iewing '(isting #nfor&ation &his section only deals with #uerying database for specified table and list or display all the information a"ailable to the browser* (lmost all the pages in this section utiliCe the pages under the section of editing eDisting pages with eDceptional of "iew users and "iew journals* *6e: Deans &o "iew dean information< the data has to be #ueried from two different places) t"lFacult* and t"l9eans tables* &he information is displayed in two 4&M- tables* &he first table is for the current dean< associates and assistants information* &he information displayed includes) position< prefiD< first name< last name< suffiD< office address< the phone number and lin5 that enables that specific record to be edited* &he information displayed in the second table is for the pre"ious faculty that ser"ed as deans< assistant dean and associate dean* (dditional information is the start date and the end date of that faculty* &he sample form for this page is shown below) admin/ie39eans2php 6> *6e: De2a/t=ents &o "iew department information< the data is obtained from one table t"l9epartment table* %t has only one section where the information is displayed all on top* &his information include department< department abbre"iation and lin5 that enables that specific record to be edited*
&he sample form for this page is shown below) admin/ie39ept2php *6e: De2a/t=ent 03a6/ 2e/son &o "iew department information< the data has to be #ueried from two different places) t"lFacult* and t"l:hairPersons tables* &he information displayed in two 4&M- tables* &he first table is for the current department chair persons* &he information displayed is) department he or she is heading< prefiD< first name< last name< office location< the phone number and lin5 that enables that specific record to be edited* &he information displayed in the second table is for pre"ious faculty that ser"ed as department heads* (dditional information is the start date and end date is the position* &he sample form for this page is shown below) admin/ie39ept:hairs2php *6e: De2a/t=ent Se0/eta/8 &o "iew department secretary information< the data ha"e to be obtained from two different places) t"lFacult* and t"lSecretar* tables* &he information is displayed in two 4&M- tables* &he first table is for current department secretary personnel* &he information displayed is) departments he?she is ser"ing< prefiD< first name< last name< office location< the phone number and lin5 that enables that specific record to be edited* &he information displayed in the second table is for the pre"ious secretaries that ser"ed all departments* (dditional information displayed is the start date and end date* &he sample form for this page is shown below) admin/ie39eptSecretar*2php *6e: a;a6lable "o1/nals &his page displays the most common journal a"ailable in the database system* &he information displayed here comes from two different tables t"l9epartment for getting department associated with that journal and t"lCournals table for getting journal name and the publisher* &he information displayed is) department name< journal name< publisher and the journal ran5* &he sample form for this page is shown below) admin/ie3Cournals2php 61 *6e: a;a6lable se/s &he "iewing of users of the system is obtained from two different tables such as t"lFacult* and t"l9epartment tables* &he information is displayed in the alphabetic order by department and then last name* &he users are displayed by department* &he information displayed includes) department a user belongs to< prefiD< first name< last name< user ran5 or position< office location< phone number< email< a chec5 boD that indicator that user is no longer part of the college of business and public administration and lin5 that enables that specific record to be edited* &he information is displayed in the table layout format* &he sample form for this page is shown below) admin/ie3=sers2php 6; FACLT' WEB DES%GN %N P!P &his section details how P4P was used to do common operations* Display pages &his section eDplains how the data is displayed that does not re#uire any modification* &he following files all #uery the database to display information* Files tat @uery te Data"ase to display +nfor/ation admin/ie39eans2php admin/ie39ept2php admin/ie39ept:hairs2php admin/ie39eptSecretar*2php admin/ie3Cournals2php admin/ie3=sers2php do3nloadReport2php do3nloadResume2php facult*Listin'2php facult*Lo''edin2php indi4idualFacult*2php reportsListin'2php facult*BnfoSheet2php P4P code is enclosed in a tag opened by <?php or <? and closed by ?>* &here is no declaration of "ariables* (ll that is needed by P4P is to place a dollar sign ($$ on the "ariable name* &he "ariables ha"e no data type* &he data type of "alues in "ariables is decided on how they are used* &he semicolon (D$ terminates statements* &he include_once() statement includes contents of the specified file during the eDecution of the script* &his beha"ior is similar to the include() statement< with the only difference being that in include_once($< if the code from a file has already been included< it will not be included again* %ncluding once is used in this project because the same file might be LindirectlyM included more than once during a particular eDecution of a script* &he file included in this project mainly contains the header information as below* <?php $formTitle + ,:olle'e of ?usiness E Pu"lic >dministration,D $pa'eTitle + ,Facult* Listin',D include_once(!3ithoutLo'in&eader2inc!$D ?> P4P seamlessly interacts with an Oracle atabase* &he following connects to an oracle database* $i9?:onn + O:BLo'on(9?_=S.RF 9?_P>SSF 9?_5>@.$D $onnections are shared at the page le"el when using OCILogon#%* &his means that commits and rollbac5s apply to all open transactions in the page< e"en if you ha"e created multiple connections* &o #uery the database< write regular S:- statement as oracle would understand it and store it in a "ariable* OCIParse#% parses the query using connection* %t prepares the #uery using connection and returns the statement identifier usable by other functions* %t returns false if it has failed* OCIExecute() eDecutes a pre"iously parsed statement* (n optional parameter allows specifying an eDecution@mode Ldefault is O$%E$OMM%&EONES!$$=SSM* %f there is no need 6A for statements to be committed automatically specify O$%E=F(!-&* &he function OCIError() returns the last error found* %f no error is found< O:B.rror($ returns false* O:B.rror($ returns the error as an associati"e array* &his array at indeD code has an oracle error code and a message ha"ing the corresponding oracle error string* (ll the three statements abo"e must be gi"en the "ariable that contains the S:- statement* &he statement ocifetchinto() fetches the neDt row of a S.L.:T statement into a row array parameter* ocifetchinto($ o"erwrites pre"ious content of the row* 7y default row will contain a Cero@based array of all columns that are not N!--* &he mode parameter allows you to change the default beha"ior* Oou can specify more the one flag by simply adding them up* For instance< "alid "alues are as follows) O$%E(SSO$ U allows returning an associati"e array* O$%EN!M U allows returning a numeric array starting with Cero Ldefault beha"iorM* O$%ER=&!RNEN!--S U allows returning the empty "alues for column< with "alue N!--* O$%ER=&!RNE-O7S U allows returning a -O7 L-ong ObjectM instead of the descriptor* Sa/ple PHP code for Auerying an oracle data"ase and e.tracting data $Guer*9epartment + ,S.L.:T department5um"erF department FRO@ t"l9epartment , H , OR9.R ?I department,D $result9epartment + JO:BParse($i9?:onnF $Guer*9epartment$D JO:B.(ecute($result9epartmentF O:B_9.F>=LT$D // .(ecute the Guer*
$arr9epartment.rror + O:B.rror($result9epartment$D if ($arr9epartment.rror!code!#$ % $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F Guer* could not ! H !run0</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arr9epartment.rror!messa'e!# 2 !</font></p>!D echo $messa'eD include_once(!footer2inc!$D e(it($D ) 3hile (O:BFetchBnto($result9epartmentF E$ro39epartmentF O:B_>SSO:HO:B_R.T=R5_5=LLS$$ % LL 9o 3hat e4er is needed to the data in ro39epartment arra* ) Once the information is obtained from the database< the neDt step is to display that information in any desirable way* For eDample an 4&M- table can be created on fly to display the information* (ny information that needs to be displayed in the browser has to be specified in a P4P output statement such as an echo statement* &he statement should also be enclosed in either single #uotation mar5s (! !$ or double #uotation mar5s (, ,M with an eDception of "ariables* &he period (2$ in P4P is used to concatenate strings and "ariables* &his sample code represents a general picture for all the pages that just display information on the web browser* %n the eDample below< the "ariable $resultFacult*Bnfo is associated with a #uery eDtracting faculty member information* -.tracting data in a Auery an displaying it in an H$>B ta"le 6B $first + trueD // Results displa* 3hile (O:BFetchBnto ($resultFacult*BnfoF E$ro3Facult*BnfoF O:B_5=@HO:B_R.T=R5_5=LLS$$ % if ($first$ % // dra3 a ta"le of results echo !<ta"le 3idth+,MNO, "order+,-,>!D echo ! <tr>!D echo !<th 3idth+,-P-, scope+,col,>5ame</th>!D echo !<th 3idth+,-QO, scope+,col,>Office Location </th>!D echo !<th 3idth+,-R-, scope+,col,>Phone 5um"er </th>!D echo !<th 3idth+,-RN, scope+,col,>.mail</th>!D echo !<th 3idth+,-M-, scope+,col,>Office &ours </th>!D echo ! </tr>!D $first + falseD ) // end if first ro3
echo ! <tr>!D echo !<td><a href+,indi4idualFacult*2php?id+! 2 $ro3Facult*BnfoO# 2 !,>! 2 $ro3Facult*Bnfo-# 2 !</a></td>!D echo !<td>! 2 $ro3Facult*BnfoQ# 2 !</td>!D echo !<td>! 2 $ro3Facult*BnfoN# 2 !</td>!D echo !<td><a href+,mailto8! 2 $ro3Facult*BnfoR# 2 !,>! 2 $ro3Facult*BnfoR# 2 !</a></td>!D echo !<td>! 2 $ro3Facult*BnfoP# 2 !</td>!D echo ! </tr>!D ) // end 3hile loop if (0$first$ % echo !</ta"le>!D ) else % echo !<p>There are no facult* listed in the data"ase2</p>!D ) Adding*'diting data pages &he rest of the project P4P scripts are used for either adding new records or editing eDisting records* 8ith the eDception of few files< most of the scripts handle both editing and adding records* ( flag is used to indicate what tas5 is being performed* One file is used as sample code but it gi"es a clear "iew of all pages since they are handled in the same manner* &he first thing done is to start a session to identify an authenticated user* session_start() creates a session or resumes the current one based on the current session id thatPs being passed "ia a re#uest< such as GE< PO!< or a coo"ie* &his function always returns TR=.* 8hen using coo5ie@based sessions< you must call session_start($ before anything is outputted to the browser* Since adding or editing information re#uires someone to be authenticated first< a customiCed file chec<>uthoriKation2inc chec5s to ma5e sure the user has already logged into the system* !nauthoriCed users cannot be allowed to access all pages in this section* &he P4P statement 90 $oduB9 + $_S.SSBO5!oduB9!#D gets the user logged id to be used later in the subse#uent #ueries and stores it in the "ariable gi"en on the left*
&he neDt statements to wor5 as eDpected< eDpect the page to be acti"ated using an address such as the one below) http8//3332c"pa2odu2edu/Facult*Se"/edit:ourses2php?modif*+editEcourse5um+RT &hen if (isset($_A.T!modif*!#$$ $md + $_A.T!modif*!#D retrie"es a flag to indicate whether the user wants to modify an eDisting record or add a new record* &he if (isset($_A.T!course5um!#$$ $courseSeGB9 + $_A.T!course5um!#D statement gets the record id for the record that a user wants to modify* &he complete sample code is listed below) <?php session_start($D reGuire_once(!chec<>uthoriKation2inc!$D $oduB9 + $_S.SSBO5!oduB9!#D if (isset($_A.T!modif*!#$$ $md + $_A.T!modif*!#D else $md + 5=LLD if (isset($_A.T!course5um!#$$ $courseSeGB9 + $_A.T!course5um!#D else $courseSeGB9 + 5=LLD ?> (n array in P4P is actually an ordered map* ( map is a type that maps "alues to 5eys* &his type is optimiCed in se"eral ways< so you can use it as a real array< or a list L"ectorM* (n array can be created by the arra#() language@construct* %t ta5es a certain number of comma@separated <e* +> 4alue pairs* ( 5ey may be either an integer or a string* Floats in 5ey are truncated to integer* &here are no different indeDed and associati"e array types in P4PN there is only one array type< which can both contain integer and string indices* ( "alue can be of any P4P type* &he arrays created here are used to populate combo boDes or list boDes later* $semesters + arra*(O+>!Fall!F !Sprin'!F !Summer!$D $teachin'@odes + arra* (O+>!Re'ular!F !Teletechnet!F !/irtual!F !Se"!$D $credit&ours + arra*(N+>NF -+>-F Q+>Q$D $*ears + arra*(QOOP+>QOOPF QOOTF QOOMF QOOUF QOOVF QO-O$D %f a flag indicates editing< the neDt code will #uery the database to retrie"e all the information about that record for specified user* &he data can be displayed later in a teDt boD with in a form* @uerying te data"ase for te.t to te displayed as edita"le if ($md ++ !edit!$ % // To displa* fields of the selected course 3hen editin' $Guer*Selected:ourses + ,S.L.:T W FRO@ t"l:ourses S&.R. , 2 , courseSeGuenceB9+!$courseSeGB9! >59 oduB9+!$oduB9!,D $resultSelected:ourses + JO:BParse($i9?:onnF $Guer*Selected:oursesD $arrSelected:ourses.rror + O:B.rror($resultSelected:ourses$D if ($arrSelected:ourses.rror!code!#$ % echo $arrSelected:ourses.rror!messa'e!#D 93 O:BRoll"ac<($i9?:onn$D include_once(!footer2inc!$D e(it($D ) // .(ecute the Guer* JO:B.(ecute($resultSelected:oursesF O:B_9.F>=LT$D // @a<e sure there 3ere no errors 3ith the Guer* $arr:oursesBnsert.rror + O:B.rror($resultSelected:ourses$D if ($arr:oursesBnsert.rror!code!#$% $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F data could not read ! 2 ! from the data"ase0</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arr:oursesBnsert.rror!messa'e!# 2 !</font></p>!D O:BRoll"ac<($i9?:onn$D $success + falseD ) O:BFetchBnto($resultSelected:oursesF E$ro3Selected:oursesF O:B_>SSO:HO:B_R.T=R5_5=LLS$D ) // end if edit &he data in a form is handled in the same manner whether a user is editing or adding new record* %t has one script for handling both displaying data and form submission by use of the if conditional if(isset($_POST!"tnSu"mit!#$$2 %f the submit button "ariable is set< we 5now that the form has been submitted* (s soon as the user clic5s the su"mit "utton< the form chec5s to ma5e sure all the re#uired fields ha"e been entered* Otherwise a message error will be displayed telling the user that a specific field is not entered and it is re#uired before submission can be honored* =ntered data is stored in temporary "ariables that will be used in #uery statements* %f a field is not re#uired and is filled in< it will be obtained in its teDt form and stored in local "ariable but an error message will not be raised* 9/ Handling su"/itted data7 Cec;ing reAuired fields if(isset($_POST!"tnSu"mit!#$$ % // &andle Form //test the posted 4alues for 4alidit*F set an error messa'e if necessar* if(empt*($_POST!course5um!#$$% $cn + 5=LLD $messa'e 2+ !<p><font color+,red, siKe+,H-,>Iou must enter the :ourse ! 2 !5um"er0</font></p>!D ) else%$cn + $_POST!course5um!#D )
if(empt*($_POST!courseTitle!#$$% $ct + 5=LLD $messa'e 2+ !<p><font color+,red, siKe+,H-,>Iou must enter the :ourse ! 2 !Title0</font></p>!D ) else%$ct + $_POST!courseTitle!#D )
if(empt*($_POST!call5um!#$ XX 0is_numeric($_POST!call5um!#$$% $cln + 5=LLD $messa'e 2+ !<p><font color+,red, siKe+,H-,>Iou must enter the :R5 ! 2 !num"er0</font></p>!D ) else% $cln + $_POST!call5um!#D ) 2 2 2 $s + $_POST!semester!#D $* + $_POST!*ear!#D $d + $_POST!department!#D $t + $_POST!teachin'@ode!#D $crh + $_POST!credit&ours!#D %f the flag was for adding a new record to the database< the following code will prepare an S:- statement to B5S.RT data into the database* &his can only be done if all re#uired fields ha"e been obtained< otherwise the error message will be displayed* %f for some reason an error has been encountered when eDecuting a database #uery< an error will be automatically detected and a roll bac5 can be done using the OCI$oll%ac"() function as indicated in the handling of submitted data below* &he data is inserted into the t"l:ourses table* Handling su"/itted data7 3pdating te data"ase "y inserting data if ($cn EE $ct EE $cln $ % // Bnsert data"ase $success + falseD if ($md ++ !add!$ % $success + trueD //>dd ne3 record to data"ase $Guer*Bnsert:ourses + ,B5S.RT B5TO t"l:ourses (courseSeGuenceB9F , 2 , course5um"erF callF courseTitleF credit&oursF , 2 ,semesterF *earF enronllmentF teachin'@odeF class&oursF , 2 , classLocationF last=pdateF oduB9F department5um"er$ , 2 , />L=.S (:ourseSeGuenceB9_SeG2ne(t4alF !$cn!F !$cln!F !$ct!F , 2 ,!$crh!F !$s!F !$*!F !$en!F !$t!F !$ch!F !$cl!F SIS9>T.F !$oduB9!F, 2 ,!$d!$,D $resultBnsert:ourses + JO:BParse($i9?:onnF $Guer*Bnsert:ourses$D $arrBnsert:ourse.rror + O:B.rror($resultBnsert:ourses$D if ($arrBnsert:ourse.rror !code!#$ % 96 echo $arrBnsert:ourse.rror!messa'e!#D O:BRoll"ac<($i9?:onn$D include_once(!footer2inc!$D e(it($D ) // .(ecute the Gueries JO:B.(ecute($resultBnsert:oursesF O:B_9.F>=LT$D // @a<e sure there 3ere no errors 3ith the Guer* $arr:ourseBnsert.rror + O:B.rror($resultBnsert:ourses$D if ($arr:ourseBnsert.rror!code!#$% $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F data could not! 2 ! "e added in the data"ase0</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arr:ourseBnsert.rror!messa'e!# 2 !</font></p>!D O:BRoll"ac<($i9?:onn$D $success + falseD ) )// end of if md+add On the other hand< if the flag was for editing an eDisting record an !P(&= S:- statement is prepared and eDecuted* %n this case table being modified is t"l:ourses* Handling su"/itted data7 3pdating te data"ase "y /odifying data else if($md ++!edit!$ % $success + trueD //update ne3 record to data"ase $Guer*=pdate:ourses + ,=P9>T. t"l:ourses S.T course5um"er + $cnF , 2 ,call + $clnF courseTitle + $ctF credit&ours + $crhF , 2 ,semester + $sF *ear + $*F enronllment + $enF ,teachin'@ode + $tF , 2 ,class&ours + $chF classLocation + $clF department5um"er + $dF , 2 ,last=pdate + SIS9>T. , 2 ,S&.R. oduB9 + $oduB9 >59 courseSeGuenceB9 + $courseSeGB9 , D $result=pdate:ourses + JO:BParse($i9?:onnF $Guer*=pdate:ourses$D $arr=pdate:ourse.rror + O:B.rror($result=pdate:ourses$D if ($arr=pdate:ourse.rror !code!#$ % echo $arr=pdate:ourse.rror!messa'e!#D O:BRoll"ac<($i9?:onn$D include_once(!footer2inc!$D e(it($D ) // .(ecute the Gueries JO:B.(ecute($result=pdate:oursesF O:B_9.F>=LT$D // @a<e sure there 3ere no errors 3ith the Guer* $arr:ourse=pdate.rror + O:B.rror($result=pdate:ourses$D if ($arr:ourse=pdate.rror!code!#$% $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F data could not! 2 ! "e updated into the data"ase0</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arr:ourse=pdate.rror!messa'e!# 2 !</font></p>!D O:BRoll"ac<($i9?:onn$D 99 $success + falseD ) ) //end of if md+edit &he neDt code chec5s to ma5e sure S:- code for either adding a new record or updating an eDisting record was successful in the database* %f so< oracle is authoriCed to commit that record or sa"e that record permanently in the database* &he user will be informed of that success and gi"en an opportunity to go bac5 to the main logged in page* %f the operation was not successful< the user will still be informed and told where the operation failed* if ($success$ % // successful in updatin' O:B:ommit($i9?:onn$D echo ,<p ali'n+L,centerL,><"r><"r>9ata updated2 , 2 ,<a href+L,facult*Lo''edin2phpL,>:lic< here to continue2</a><p>,D include_once(!footer2inc!$D e(it($D ) else % // not successful append to error messa'e $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F this record ! 2 !can not "e updated0</font></p>!D ) echo ,$messa'e,D // displa* error messa'e ) // end main su"mit conditional &he neDt section of code below shows how 4&M- Forms are declared with embedded P4P* %n the form tag< the most important attribute is action< which indicates to which page the form data will be sent* NeDt< the ðod attribute can either be POS& or G=&* POS& is appropriate in storing data< updating data< ordering a product< or sending =@mail* G=& sends Qsmall submitted data to the recei"ing page as a series of name "alue pairs appended to the file* &he action "alue has the statement $_S.R/.R!P&P_S.LF!# that represents the file name containing the P4P script* &his means< the file containing the form will handle the form itself* &he subse#uent parameters after the file name are included after #uestion mar5 (?$* &he !modif*+!2$md parameter contains the flag for either editing or adding new record* &he Ecourse5um+!2 $courseSeGB9 parameter contains the % for the record to be edited* <form name+,form-, method+,post, action+,<?php echo $_S.R/.R!P&P_S.LF!# 2 !? modif*+! 2 $md 2 !Ecourse5um+! 2 $courseSeGB9D?>,> &he neDt code below with in the form tags displays a table* &his is what actually the user see on the browser when clic5 the button to edit or add new record* &he table is created first in 4&M-* &he label for each subse#uent teDt boD or list boD is also in 4&M-* <ta"le 3idth+,TNU, "order+,-, ali'n+,center,> <tr><td><stron'>Iear8 </stron'> <select name+,*ear, id+,*ear,> P4P is embedded into the 4&M- to accomplish se"eral things* On the top of the page< we run the S:- #uery to retrie"e information related to the record a user wants to edit* &he conditional statement if ($md ++ !edit!$ chec5s to see the flag was for editing then it displays that record in the list boD?combo boD by retrie"ing it from the #uery row resulting from the #uery eDecution at the top of the page* 4ere< the database stores to year as part of a record* &he statement) 9> foreach($*ears as $<e* +> $4alue$ is used to access all array elements* &he statement if(isset($_POST!*ear!#$ EE $_POST!*ear!# ++ $4alue$ tests if posted "alue agrees with the current array "alue so that a prior selection is indicated* &his is especially used in case a user did not enter all the re#uired data and a database could not allow that record to be edited* %n such case< a form will display an error and also display all the information that was entered before so that when a user correcting the error does not ha"e to reenter all the information again* $omplete snapshoot of the code is listed below) <?php if ($md ++ !edit!$ % echo ,<option 4alue+L,%$ro3Selected:ourses!I.>R!#)L,,D echo ,>%$ro3Selected:ourses!I.>R!#)</option>,D) foreach ($*ears as $<e* +> $4alue$ % $selected + nullD if (isset($_POST!*ear!#$ EE $_POST!*ear!# ++ $4alue$ $selected + !selected!D echo ,<option 4alue+L,$<e*L, $selected>$4alue</option>,D ) ?> &he way the add flag is handled is not so different from the flag for editing* %n the abo"e code< data was collected from a combo boD but the code below< data is handled from teDt boD* %f the flag is for adding new record and there is data set for that specified teDt boD< that data will be displayed* Other wise the empty teDt boD will be displayed so that a user can enter new information related to that specified field* <td><stron'>:all Y/:R58</stron'> <input name+,call5um, t*pe+,te(t, id+,call5um, siKe+,-O, 4alue+, <?php if ($md ++ !add!$% if(isset($_POST!call5um!#$$ echo $_POST!call5um!#D ) // end of if md+add else if ($md ++ !edit!$% echo $ro3Selected:ourses!:>LL!#D ) ?>,> </td> </tr> (fter all the necessary information is output into the table< it is closed by code below) </ta"le> &he button used to submit or clear the contents of the form are also included on the form but not embedded into P4P script* &he last thing done is to close the form <p ali'n+,center,> <span class+,st*le-,>Please confirm data and select Su"mit</span><"r><"r> <input name+,"tnSu"mit, t*pe+,su"mit, id+,"tnSu"mit, 4alue+,Su"mit,> <input name+,"tn:lear, t*pe+,reset, id+,"tn:lear, 4alue+,:lear,> </p> </form> 91 &he last statement in code is embedded in P4P to include the footer that display on each page* <?php include_once(!footer2inc!$D?> +pload file pages &here are three different files that are in"ol"ed in uploading information* &o upload a final report that department chair uses to e"aluate faculty is done by !upLoadBnfoSheet2php!* &hen PuploadPicture2php! used to upload faculty images that show up in a faculty report< faculty public page and faculty pri"ate logged page* -astly P uploadResume2php! is used to upload a faculty resume* Since such pages upload information< using one file as sample code will suffice* &he information being uploaded needs to ha"e a time stamp* &he code below is used to create and run an S:- statement to generate the current date and time to be attached to the file being uploaded as part of the file name* &he statement to TO_:&>R(SIS9>T.F !****mmhhmi!$ con"erts the current system date SOS(&= into a specified format !****mmhhmi!2 &he first four characters !****! indicate to oracle that the year should ha"e four digits< the two characters PmmP represent month in numeric two digits< PhhP for / digit hours< and PmiP for minutes into standard two digits* &he !(- is a dummy table for oracle that is owned by user SOS and it is a"ailable to all users* %t is useful when one wants to find the outcome of a function and the parameter is not ta5en from any table as in this case* // To 'et current date to use in the file name $Guer*9ate + ,S.L.:T TO_:&>R(SIS9>T.F !****mmhhmi!$ FRO@ 9=>L,D $result9ate + JO:BParse($i9?:onnF $Guer*9ate$D JO:B.(ecute($result9ateF O:B_9.F>=LT$D O:BFetchBnto ($result9ateF E$ro39ateF O:B_5=@HO:B_R.T=R5_5=LLS$D &he neDt S:- statements are used to get the users first and last names from the database* &he users names and the date generated abo"e will be used later as a file name* // To 'et the users names $Guer*Facult*5ames + ,S.L.:T first5ameF last5ame FRO@ t"lFacult* S&.R., 2 , oduB9 + !$oduB9!,D $resultFacult*5ames + JO:BParse($i9?:onnF $Guer*Facult*5ames$D JO:B.(ecute($resultFacult*5amesF O:B_9.F>=LT$D $arrFacult*5ames.rror + O:B.rror($resultFacult*5ames$D if ($arrFacult*5ames.rror!code!#$ % $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F Facult* name Guer* ! 2 ! could not run0</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arrFacult*5ames.rror!messa'e!# 2 !</font></p>!D $success + falseD ) // end if sGl error code O:BFetchBnto ($resultFacult*5amesF E$ro3Facult*5amesF O:B_5=@HO:B_R.T=R5_5=LLS$D &he neDt code is for preparation of the file name that will be stored in the database to uni#uely identify the user and date created* &he explode() function blows a string into little bits into an array* &he statement e(plode (!2!F $_FBL.S!fis=pload!#!name!#$ returns an array of 9; strings< each of which is a substring of string formed by splitting it on boundaries formed by the string separator here the period '('* &he general format is e(plode ( strin' separatorF strin' strin' F int limit# $ %f limit is set< the returned array will contain a maDimum of limit elements with the last element containing the rest of string* %f separator is an empty string (,,$< e(plode($ will return F(-S=* %f separator contains a "alue that is not contained in the string< then e(plode($ will return an array containing the whole string* %f the li&it parameter is negati"e< all components eDcept the last ) li&it are returned* &his feature was added in P4P >*3*0* %n building the file name< the first part added by $file5ame + $ro39ateO# is the current date that was obtained in the abo"e S:- #uery of SOS(&=* &he si*eof operator is used return the array siCe of e(tension and is used to get the file eDtension indeD in the array e(tension* %n addition to the current date< the file name is appended the first three characters of the first name and last name< and lastly the file eDtension* &he complete code is shown below* // :reate a file name $e(tension + e(plode (!2!F $_FBL.S!fis=pload!#!name!#$D $file5ame + $ro39ateO#D $i + siKeof($e(tension$ 1 -D $file5ame 2+ su"str(strtolo3er($ro3Facult*5amesO#$F OF N$D $file5ame 2+ su"str(strtolo3er($ro3Facult*5ames-#$F OF N$D $file5ame 2+ !2! 2 $e(tension$i#D $ori'F5ame + $_FBL.S!fis=pload!#!name!#D Once the file name is obtained< the neDt step is store the file information in the database using the S:- code below* %n this case the row of data is added to the t"lReport>rchi4e table* // add record to the data"ase $Guer*BnsertRpt>rchi4e + ,B5S.RT B5TO t"lReport>rchi4e (report>rchi4eB9F , 2 ,file5ameF ori'File5ameF due9ateF upload9ateF oduB9$ , 2 , />L=.S (report>rchi4eB9_SeG2ne(t4alF !$file5ame!F !$ori'F5ame!F , 2 ,!$due9ate!F SIS9>T.F !$oduB9!$,D $resultBnsertRpt>rchi4e + JO:BParse($i9?:onnF $Guer*BnsertRpt>rchi4e$D // .(ecute the Guer* JO:B.(ecute($resultBnsertRpt>rchi4eF O:B_9.F>=LT$D // @a<e sure there 3ere no errors 3ith the Guer* $arrBnsertRpt>rchi4e.rror + O:B.rror($resultBnsertRpt>rchi4e$D if ($arrBnsertRpt>rchi4e.rror!code!#$% $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F facult* information ! 2 ! report could not "e added to the archi4e0 ! 2 ! :hoose a file to upload</font></p>!D $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 $arrBnsertRpt>rchi4e.rror!messa'e!# 2 !</font></p>!D O:BRoll"ac<($i9?:onn$D $success + falseD ) (fter a record has been added to a table< the file needs to be physically uploaded* First< chec5 the file for the proper eDtension* &he allowable eDtensions are only PO$P and PPFP* %f the eDtension is not one of the permitted< the file will not be allowed to be uploaded* ="en the record that was created in the database will be canceled and the user will be gi"en error message in the browser 9A with the reason for not permitting such file* Otherwise the file will be uploaded and a record sa"ed in the database* if ($success EE ($e(tension$i# ++ !doc!$ XX ($e(tension$i# ++ !3pd!$ XX ($e(tension$i# ++ !pdf!$$ % // @o4e file o4er to the ser4er if (mo4e_uploaded_file($_FBL.S!fis=pload!#!tmp_name!#F ,>rchi4eReport=ploads/$file5ame,$$ % $messa'e 2+ !<p><"r>Iour facult* information report has "een ! 2 !Successfull* uploaded2</p>!D O:B:ommit($i9?:onn$D // successful in updatin' ) else % $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F report could not ! 2 !"e uploaded2 :hec< the file siKe0</font></p>!D $success + falseD ) ) else % // else of if file for proper e(tension $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F report not in P9F ! 2 !format0</font></p>!D $success + falseD ) // end of else if file for proper e(tension &he code presented so far in this section is eDecuted within submit conditional clause and is eDecuted if the page form is submitted* &he code below shows a form to be used to select a file and submit it from within a browser* &he enct#pe() function encrypts a string and add a salt parameter to help randomiCed the encryption process* &he encrypted string created here can not be decrypted* <form action+,<?php echo $_S.R/.R!P&P_S.LF!#D?>, method+,post, enct*pe+,multipart/form1data, name+,form-,> <0input t*pe+,hidden, name+,@>Z_FBL._SB[., 4alue+,QOVM-PQ,> <"r><hQ> Select due date for the report</hQ> 5on1tenure facult* due month is Octo"er and Tenured facult* due month is Fe"ruar*2<"r> <select name+,month, id+,month,> <?php foreach ($months as $<e* +> $4alue$ echo ,<option 4alue +L,$<e*L,>$4alue</option>Ln,D ?> </select> <select name+,da*, id+,da*,> <option 4alue+,-P, selected>-P</option> </select> <select name+,*ear, id+,*ear,> <?php foreach ($*ears as $<e* +> $4alue$ echo ,<option 4alue +L,$4alueL,>$4alue</option>Ln,D ?> </select> </p> <hQ>?ro3se for the Facult* Bnformation Sheet </hQ> <p>Facult* Bnformation Sheet upload must "e in <stron'> P9F format onl*</stron'>2</p> <p> <input t*pe+,file, name+,fis=pload,> </p> 9B <p> <input name+,"tnSu"mit, t*pe+,su"mit, id+,"tnSu"mit, 4alue+,Su"mit,> <input name+,"tn:lear, t*pe+,reset, id+,"tn:lear, 4alue+,:lear,> </p> </form> >0 Designing report pages with Fle(ireport Fle56ARe2o/t Classes &hese classes are used to format and create the finaliCed report* %t utiliCes $ascading Style Sheets L$SSM for formatting the report* &hese classes were created by r* Grant Paton@Simpson the irector of Paton@Simpson ' (ssociates -td based in (uc5land< New Vealand* &hese libraries were de"eloped to wor5 with a MyS:- database but ha"e here been modified only the necessary files to wor5 with an oracle database* So it is possible to see some codes that are related to MyS:- and that are ne"er used here* &he classes are capable of doing more neat stuff than had been used* &he classes support nested report le"els< sub@reports< and totals* &he report is configurable to allow formatting of indi"idual fields) uppercase< percent< currency< decimal< date* Other optional features include hyperlin5s inside cells< non@display of duplicate "alues< conditional formatting< and shared column titles* &here are se"eral library files and one $SS file that are used* &he re#uired classes are +lexireport_$eport, +lexireport_Le-el, +lexireport_+ield, +lexireport_.alue Lnot directly used but holds the code for formatting both Field and &otal classesM< +lexireport_otal Loptional U re#uired if adding totalsM and /%utilit#_/%* &he detail of each class will be eDamined latter but first let us eDplore the concepts behind the classes* 6ey concepts &he 5ey concepts are the Report< -e"el< Field< Suble"el< and Subreport* &hey hang together as follows) ( $eport has -e"els and optionally Su"reports* ( Report may also ha"e a 4eader< which may contain an image such as a $ollege of 7usiness ' Public (dministration logo* ( Le-el is a set of rows of data for instance for faculty members in a epartment* ( -e"el has +ields li5e faculty name, phone number etc< and optionally !u%reports and !u%le-els* So< for each department< there could be a subreport summariCing the department members grants in an academic year* (t the faculty le"el< there can be a suble"el displaying grants conducted indi"idually by faculty members in the department* &here can be multiple Subreports and Suble"els* For each faculty member there could be a Suble"el displaying their grants< followed by another Suble"el detailing their publications* Fields are added to -e"els using the add+ield() method and its argument is an instance of a field e*g* $le4_courses1>addField(ne3 Fle(ireport_Field(!Term!F !semester!F UO$$D 8hen a -e"el has a Suble"el< the -e"el functions li5e a grouping "ariable for the Suble"el* =ach row in the -e"el is followed by the rows in the Suble"el which belongs to it* So if the -e"el was department and the Suble"el was faculty< we would ha"e one row from department Le*g* %nformation &echnologyM followed by all the faculty members that belong to that department< another row from department Le*g* (ccountingM followed by all the faculty members that belongs to that department< and so forth* >3 &here are no arbitrary limits to nesting e*g* ( Report could ha"e 30 le"els of nesting* ( simple Report would ha"e a 4eader and one -e"el e*g* Staff Report 7ob Smith L-e"el row 3M Sue $lar5 L-e"el row /M etc For each row in a -e"el there may be a Suble"el e*g* in the following the le"el is department< and the Suble"el is faculty) Staff by epartment Report %nformation &echnology L-e"el row 3M 7ob Smith LSuble"el row 3M Sue $lar5 LSuble"el row /M (ccounting L-e"el row /M Mat 7rown LSuble"el row 3M Sharon $hang LSuble"el row /M etc 7asically< Suble"els are filtered by the "alue of the -e"elLsM they are under U in this case the faculty members displayed in each Suble"el are filtered by the department they are under* For the relationship between a -e"el and a Suble"el to wor5 properly< both -e"el objects must contain the lin5 fields in their source S:- and the parent -e"el must ha"e the lin5 fields added "ia its addFieldForAroupin'Su"le4els($ method* >/ ?eneraliCed overvie! of te report FleDireport uses the classes below to create reports< sub reports< fields< and Microsoft (ccess database connections* &he table below summariCes the classes* Fle.ireport classes Class Purpose 9"utilit*_9" &o establish database connection 9"settin's $ontains real connection strings that the abo"e class uses to connect to database Fle(ireport_Report !sed to create the main report and optional Subreports Fle(ireport_Le4el !sed to display set of row data on the report< these are -e"els added to report abo"e Fle(ireport_Field e(tends Fle(ireport_/alue !sed to display column of data on the report* ( le"el abo"e has Fields< so fields are added to -e"el Fle(ireport_/alue2php !sed indirectly to format both Field and &otal classes Fle(ireport_Total e(tends Fle(ireport_/alue !sed to create accumulati"e?Grand totals if necessary Fle(ireport_TotalLa"el2php !sed to show label along side the grand total created abo"e Fle(ireport_@isc2php 4old constants* ( report with no Subreport such as Faculty information sheet can be created by P4P as follows) ,eport detailing faculty infor/ation !it no su"report // :reate a Guer* for facult* information $Guer*Facult*Bnfo + ,S.L.:T F2prefi(F F2first5ameF F2last5ameF , 2 ,F2facult*B9F R2ran<F 92departmentF F2picFile5ameF F2office>ddressF , 2 ,F2phone5um"erF F2email FRO@ t"lFacult* FF t"l9epartment 9F t"lRan<s R ,2 ,S&.R. F2oduB9 + !$oduB9! >59 F2department5um"er + 92department5um"er , 2 ,>59 F2oduB9 + R2oduB9 >59 ro3num + - OR9.R ?I R2start9ate 9.S:,D $resultFacult*Bnfo + JO:BParse($i9?:onnF $Guer*Facult*Bnfo$D JO:B.(ecute($resultFacult*BnfoF O:B_9.F>=LT$D // .(ecute the Guer* $arrFacult*.rror + O:B.rror($resultFacult*Bnfo$D if ($arrFacult*.rror!code!#$ % $messa'e 2+ !<p><font color+,red, siKe+,H-,>Sorr*F facult* Guer* could ! 2 !not run0</font></p>!D >6 $messa'e 2+ !<p><font color+,red, siKe+,H-,>! 2 arrFacult*.rror!messa'e!# 2 !</font></p>!D echo $messa'eD e(it($D ) O:BFetchBnto ($resultFacult*BnfoF E$ro3Facult*BnfoF O:B_>SSO:HO:B_R.T=R5_5=LLS$D $name + $ro3Facult*Bnfo!PR.FBZ!# 2 ! ! 2 $ro3Facult*Bnfo!FBRST5>@.!# 2 ! !2 $ro3Facult*Bnfo!L>ST5>@.!#D $dept + $ro3Facult*Bnfo!9.P>[email protected]!#D $ran< + $ro3Facult*Bnfo!R>5\!#D $facult*B9 + $ro3Facult*Bnfo!F>:=LTIB9!#D $picFile5ame + $ro3Facult*Bnfo!PB:FBL.5>@.!#D $location + $ro3Facult*Bnfo!OFFB:.>99R.SS!#D $phone + $ro3Facult*Bnfo!P&O5.5=@?.R!#D $email + $ro3Facult*Bnfo!.@>BL!#D //Set up Report header for main report $comments + ,Bn order that each facult* mem"er ma* recei4e full credit , 2 ,and re3ard for his or her contri"utions to the =ni4ersit*F this , 2 ,Facult* Bnformation Sheet is to "e completed "* the facult* mem"er , 2 ,and su"mitted to his or her 9epartment :hair person2,D //Set up Report header for main report $main_rep + ne3 Fle(ireport_Report(trueF !Facult* Bnformation Sheet!F $nameF $deptF !!F !!F $comments$D >9 ( report with a Subreport e*g* courses taught within the past two years can be created in P4P as follows* ,eport detailing faculty infor/ation !it a taugt courses su"report -2 $res_teachin'_su"rep + ne3 Fle(ireport_Report(trueF !<"r>!F!B2 T.>:&B5A!$D Q2 $res_teachin'_su"rep1>sho3Aeneration9ate(false$D // :reate the Guer* N2 $S]L_select_courses + ,S.L.:T TO_:&>R (last=pdateF !@onth 99 IIII!$ >S , 2 ,last=pdateF course5um"erF courseTitleF enronllmentF , 2 ,9.:O9.(teachin'@odeFOF!Re'ular!F-F!Teletechnet!FQF!/irtual!FNF!Se"!$ , 2 ,teachin'@odeF 9.:O9.(semesterFOF!Fall!F-F!Sprin'!FQF!Summer!$ , 2 ,XX! ! XX *ear >S semester FRO@ t"l:ourses , 2 ,S&.R. t"l:ourses2oduB9 + !$oduB9! >59 last=pdate ?.TS..5 , 2 ,>99_@O5T&S(!$due9ate!F 1QR$ >59 !$due9ate! ,D // Set up :ourses Le4el R2 $le4_courses + ne3 Fle(ireport_Le4el(!:ourses Tau'ht last four completed!2 !semesters plus summers!F $S]L_select_coursesF !!F !OR9.R ?I department5um"er!F P$D P2 $le4_courses1>addField(ne3 Fle(ireport_Field(!Term!F !semester!F UO$$D T2 $le4_courses1>addField(ne3 Fle(ireport_Field(!:ourse Prefi(!F !course5um"er!$$D M2 $le4_courses1>addField(ne3 Fle(ireport_Field(!:ourse Title!F !courseTitle!$$D U2 $le4_courses1>addField(ne3 Fle(ireport_Field(!Araded .nrollment!F !enronllment!F -RO$$D V2 $le4_courses1>addField(ne3 Fle(ireport_Field(!9eli4er* @ode!F !teachin'@ode!$$D -O2 $le4_courses1>chan'e:SS(!!F !!F !ta"lehead!$D --2 $res_teachin'_su"rep1>addLe4el($le4_courses$D &he numbers on each line code are for illustration puposes* Bine 17 create the report to be used as a Subreport* &he first parameter is optional flag indicating if the report has header* &he second parameter is also optional that show the reports title that you want to display* 7asically the report has eight parameters and all are optional* Bine *7 isables the date when report was created not to show up on this Subreport* Bine &7 creates a #uery that will be used in the -e"el class* Bine 07 creates a -e"el that uses a #uery created in line 6* &he first parameter is optional represent the titleN second parameter is re#uired which is the #uery generated in line 6N third >> parameter is option which is 84=R= clause that goes with #ueryN fourth parameter is option which is OR=R 7O clause of the #ueryN fifth parameter is also optional and represents the indention of fields< siD parameter is also optional and represents the width of each field and last parameter is also option that was ne"er used on this report but represent database region if you are using more than one database* Bine ( to 97 $reates fields and adds them to the course le"el* &he first parameter in the fiend constructor is a field labelN the second parameter is the field name as it eDists in the databaseN third parameter is optional and represents the length of field or siCe this field is to occupy* Bine 107 (pply $ascading Style Sheet to the le"el created but all its parameters are optional* &he first parameter is a title $SS class< the second parameter a le"el field class and third label class* Bine 117 is for adding the le"el object to the report or subreport created on line 3* 7elow are the detail eDplanations for each class* d"settings.pp &his is the simplest file that contains only the connection strings to the database* %t has the user name< password and host machine* &his file is used by 9"utilit*_9"2php* D"utilityDD".pp &his contains the 9"utilit*_9" class is needed to create database connection* &he 9"utilit*_9" class has been modified to support an oracle database* %t is used by the +lexireport_Le-el class* %f MyS:- database is e"er used< the "ersion must be abo"e 9*3 in order to allow sub@#ueries to run* Sub@#ueries are used to allow lower le"els to ha"e filters such as 84=R= clauses added to them from the le"elLsM abo"e* &he class contains a constructor to create a database connection and methods to access an eDisting connection< return database results< count number of fields< run a #uery< etc as indicated in the table below* D"utilityDD" class Constructor2>etod -.planation Pu"lic function __construct ($d"settin's+!!F $host + !!F $user + !!F $pass3ord + !!F $data"ase + !!$ $reate database connection with an Oracle or MyS:- database* %f instantiate without arguments< it rely instead on file Fd"settin's Static pu"lic function 'et9"($ (ccess eDisting connection or create one if it does not eDist Pu"lic function 'etResult($S]L$ Prepares and returns the #uery that is eDecuted* (ny syntaD errors are detected here Pu"lic function 'otRo3s($S]L$ $hec5 to see if #uery returns any rows of data Pu"lic function countResult ($result$ Returns the number of rows* $hec5 to ma5e sure >1 the #uery results are error free Pu"lic function 'et/alue ($S]LF $field_name$ Returns "alue in named field in the #uery after con"erting the field name in uppercase as understood by oracle Pu"lic function 'etRo3 ($S]L$ Returns row after stripping slashes in the data Pu"lic function 'etField:ount($result$ Returns current field in the #uery result Pu"lic function run]uer* ($S]L$ Runs the #uery and chec5 problems* Fle.ireportD,eport.pp FleDible P4P reporting class with nested le"els< subreports< totals< $SS@formatting and much more* 8hat is re#uired is to instantiate the Report object< add the fields one by one to each -e"el object Loften only re#uiring the label and field name of eachM< add the -e"el to the Report< and display the Report* Fle(ireport_report is the glue for the entire report* &he class contains a constructor to setup report information such as header and methods to setup personal information< set personal photos< sets due dates< add le"el< add subreport< set report generation date< display the report etc as indicated in the table below* Fle.ireportD,eport class Constructor2/etods -.planation pu"lic function __construct( $has_header + falseF$header_title+!!F $header_su"title_- +!!F $header_su"title_Q + !!F $header_date_start + !!F $header_date_end + !!F $header_desc + !!F$pa'e_"rea<_"efore+falseF $indi4_rep_d"+null$ Mainly to set up the teDt elements of the report header pu"lic function setPersonalBnfo($personal + falseF $off + !!F $ph + !!F $r< + !!F $e + !!$ Sets personal information to be displayed at the top of the report but below the header pu"lic function setPersonalPictureBnfo($hasPic + falseF $fn + !!F $fl + !!$ Sets personal picture information for a photo in the report pu"lic function set9ue9ate($has9ue9ate + falseF $due9ate$ Sets due date information to be displayed at the top of the report pu"lic function addLe4el(fle(ireport_Le4el $le4el$ (dd le"el to report pu"lic function addSu"report(fle(ireport_Report $report$ (dd subreport to report pu"lic function sho3Aeneration9ate($set_has_date$ Set permission to display the report generation date pu"lic function displa* (d"utilit*_9" $d"F $la*er+-$ Generates and displays P4P finished for report pu"lic function chan'e:SS($header_ta"le_css+!!F O"erride default $SS for report >; $header_ima'e_cell_css+!!F $header_ima'e_css+!!F $header_te(t_cell_css+!!F $header_title_css+!!F $header_su"title-_css+!!F $header_su"titleQ_css+!!F $header_date_ran'e_css+!!F $header_datestamp_css+!!F$header_desc_css+!!$ pri4ate function displa*&eader($ isplay header for report Fle.ireportDBevel.pp &his is the most used class of all classes* -e"els are responsible for setting up layout of data rows on the report* &he constructor can ta5e a #uery as parameter< S&.R. clause as another separate argument and OR9.R ?I as also separate argument* &his is good idea if you ha"e nested compleD #ueries that can be used in more than one report le"el that has sub@reports* &his is used a lot in the report when writing publications since we had to separate them by !pu"lished date!< !accepted dateP and !su"mitted date!* On the other hand< it is possible to write a #uery with all necessary information and pass it as one argument as did with teaching courses in the report* &here should be a lin5 of one or more fields between a le"el and its suble"el* For eDample< considering staff per department< there will probably be a field in common such as department %* &o filter the inner< or child le"el< by the outer< or parent le"el< the same field needs to be supplied by the S:- for both le"els* &he underlying code creates S&.R. clauses in which a child has both its own criteria and any inherited from its parent* &hese ta5e the form of Wfield_name^ + !4alue! filters* &hese wor5 in MyS:- with numbers as well< in spite of the single #uotes* %f it is desired that the single #uote mar5s are left off Le*g* ^field_name + 4alueM the lin5 field must ha"e $numeric+true when adding it "ia the addFieldForAroupin'Su"le4els($ method* &he class contains a constructor to setup basic report le"el with some default parameters and methods to add grouping le"el < access or change $SS< add fields to the le"el< add suble"el to le"el< add subreport to le"el etc as indicated in the table below* Fle.ireportDBevel class Constructor2>etods -.planation pu"lic function __construct ($titleF $S]L_selectF$S]L_3here+!!F$S]L_order+!!F $indent+OF $pa'e_"rea<_"efore+falseF $le4_field_3idth+!!F $indi4_le4_d"+null$ 7asic setup for report le"el and the #uery that will be used on the report Pu"lic function addFieldForAroupin'Su"le4els($field_nameF $numeric+false$ (dd field for grouping suble"els* $an add more than one field Pu"lic function chan'e:SS($title_class + !!F $le4_field_class + !!F$le4_la"el_class + !!F $le4_tot_class+!!F$le4_upper_la"el_class + !!F$title_ta"le_class+!!F$le4_ta"le_class + !!$ O"erride default $SS for le"el pu"lic function addField (Fle(ireport_Field $field$ (dd field to le"el and must be an object of class FleDireportE-e"el >A pu"lic function addSu"le4el( Fle(ireport_Le4el $su"le4el$ (dd suble"el to le"el and must be an object of class FleDireportE-e"el pu"lic function addSu"report (Fle(ireport_Report $report$ (dd subreport to le"el and must be an object of class FleDireportEReport pu"lic function set_multiple_cols($mult_cols + true$ add multiple columns on single line pu"lic function set_edita"e_3riteup($set_is_edita"le_3riteup_ le4el + false$ &o allow teDt area to be displayed in report pu"lic function set_edita"le_3riteup_instructions($instructio ns$ Set up instruction that are listed in the report le"el especially abo"e teDt area pu"lic function displa* (9"utilit*_9" $d"F $la*erF $'roupin'_criteria + arra*($$ isplay le"el row of data formatted here* &here are many methods called from this function* isplay data in columns with heading column names pu"lic function displa*BnOne:olRo3s (9"utilit*_9" $d"F $la*erF $'roupin'_criteria + arra*($$ isplay le"el in One column rows of data without column headings pri4ate function fieldBnBndi4S]L9ata(9"utilit*_9" $d"F $field_S]L_filteredF Fle(ireport_Field $field$ $hec5 field is in the data produced by the indi"idual S:- for that field pri4ate function allFieldsBnLe4el9ata($result$ $hec5 all fields added using addField($ in the main source data pri4ate function su"le4elAroupin'FieldsBnLe4el9ata($result$ $hec5 that all fields set to group suble"els are present in the data for this -e"el pri4ate function inheritedAroupin'FieldsBnLe4el9ata($result$ $hec5 that all grouping fields inherited from parents pri4ate function appl*9efault:SS($la*erF $'roup_le4el$ (pply default $SS for any le"el $SS settings not set pri4ate function intersperse (9"utilit*_9" $d"F $la*erF $'roupin'_criteria$ isplay each item data field pri4ate function prepareFilterForSu"le4els(9"utilit*_9" $d"F $ro3F $result$ (dd "alues for any fields grouping suble"els into filter ready to pass on to suble"els and $hec5s that the fields being used to group suble"els are present in the row pri4ate function ma<eFieldS]L(Fle(ireport_Field $field$ %f there is field@le"el S:-< use this in combination with any inherited criteria* but doesnPt use le"el S:- as field@le"el to o"errides this pri4ate function process:onditional($ro3F Fle(ireport_Field $field$ ( conditional class is used if a condition is met* %f it is< use fieldEconditional class instead of standard field class pri4ate function insertLe4Title($ %nsert le"el title if needed pri4ate function ma<eLe4S]L($ Set up 84=R= clause using both parent@ deri"ed criteria and le"el@specific criteria pri4ate function add&eaderLa"els ($ Produces a header style label for a final le"el pri4ate function addTotal(9"utilit*_9" $d"$ Generate 4&M- for total if re#uired and >B indicate whether there was a total row or not pri4ate function addToFilter ($full_criteriaF $ne3_criteria$ (dd new filter criteria to any eDisting criteria and Strips 84=R= off front pri4ate function ma<e:ondition ($conditionF $ro3F $fields$ Replace brac5eted teDt with data from field in row with the same name Numeric data does not need to be un#uoted as long as double e#ualLXXM is used instead of triple e#ual LXXXM pri4ate function class&tml ($field_classF $le4_classF $"oth + false$ =ither uses le"el class only< both le"el and field classes combined< or field class only depending on inputs pri4ate function setSidth ($field_3idthF $le4el_field_3idth$ Sets width of field or attributes 10 Fle.ireportDField.pp (s the name suggests< it adds indi"idual attributes to the le"el report* Some of its major methods are displayed in table below) Fle.ireportEField class Constructor2/etods -.planation pu"lic function __construct($la"elF $nameF $3idth+!!F $hide_dups+falseF $field_class+!!$ Pro"ide most basic field configuration and basic set up of field that are often all needed pu"lic function __'et($propert*_name$ &o access a property< it is pre@append with underscore LPEPM to it since there is no such property< this triggers __'et which strips the E off and returns the property pu"lic function addTotal(Fle(ireport_Total $total$ $onfigure total field to appear beneath "alue field* Re#uires FleDireportE&otal object pu"lic function addTotalLa"el(Fle(ireport_TotalLa"el $total_la"el$ $onfigure total label to appear beneath "alue field* %f a total field is also configured the field will ta5e precedence pu"lic function chan'e:SS($field_class+!!F $la"el_class+!!F $inherit_le4_field_class+trueF $inherit_le4_la"el_class+true$ O"erride or eDtend le"el $SS settings by defining formatting for field< label< and total and whether le"el $SS classes are applied as well pu"lic function add:onditional:SS($condition + !!F $cond_class + !!$ efine $SS to apply if condition met O"errides field $SS class @ whether or not le"el $SS class applies also depends on settings in change$SSLM pu"lic function add=pperLa"el($upper_la"el + !!F $colspan + OF $upper_la"el_class + !!F $inherit_le4_la"el_class+false$ Set up upper label often spanning multiple columns pu"lic function addBndi4S]L($S]L_select + !!F $S]L_3here + !!$ Set up separate source for this field that is rarely needed and used pu"lic function addLin<($te(t_start + !!F $te(t_end + !!F $title_start + !!F $title_end + !!F $href_start + !!F $href_end + !!F $e(ternal+trueF $suppress_field_content + false$ Set up field as lin5 and can supply lin5 4&M- "ia S:- if more fleDibility re#uired pu"lic function add@ar<er($ta'_namespace+!!$ (dd mar5er tag to start of label so it can be jumped to when needed and must be uni#ue per page but not always appropriate to use Fle.ireportD1alue.pp &his class is not directly used but holds the code for formatting both the Field class and the &otal class* &hese two classes do inherent from the "alue class* (ll this class does is to format data the way you want it appear on the report as you will see below) Fle.ireportD1alue class 13 >etod Purpose pu"lic function format=ppercase Format "alue field or total as uppercase pu"lic function format5umeric($decimal_pts$ Format "alue field or total as numeric pu"lic function formatPerc($decimal_pts Format "alue field or total as percentage pu"lic function format:urrenc*($s*m"ol+!$!F $decimal_pts+O$ Format "alue field or total as currency pu"lic function format9ate($php_date_format$ Format "alue field as date but must be customiCed to meet !S date format pu"lic function appl*Format ($4alue$ (pply format to field contents and return formatted "alue Fle.ireportD$otal.pp &his class sets up total field that sits below the "alue field for which it is totaling* &he class has one constructor* %t has one function _Aet($ that left trim the underscore LEM on the gi"en property which it returns* Fle.ireportD$otalBa"el.pp &his class is used to set the label that can appear either below or on the side of the total "alue* &he class has one constructor with three parameters such as a string for label< a class which is Fle(ireport_@isc< and 7oolean field* %t has one function _Aet($ that left trim the underscore LEM on the gi"en property which it returns* Fle.ireportD>isc.pp &his classs purpose is to define all the constants used* %t defines constants such the teDt to be formatted to appear right< whether to appear in red color etc* %t does not contain any method or e"en constructor* Fle.ireport.css &his file contains all the $ascading Style Sheet used to format the finaliCed report* &he styles that are not used are commented out with the pound sign LYM* =ach used style start with period L*M (ll the styles are self eDplanatory* 1/ Con0l1s6ons ( P4P< Oracle and 8eb based Faculty Management System was designed and built for the $ollege of 7usiness and Public (dministration* &his system manages teaching< research< and Ser"ice components of all faculty in this college* Further< this system can create and upload the faculty information sheet used for their annual e"aluation by the chairs and dean* &his Faculty Management System is currently in production* 16 Refe/en0es GPMJ -arry !llman< P4P and MyS#- for ynamic 8eb Sites< Published by +isual :uic5Pro Guide< /006* G7SOJ Shah< Nileshi< atabase System using Oracle) ( Simplified Guide to S:- ' P-?S:-< Published by Prentice 4all< /00/* GP4P8=7J P4P) 4yperteDt Preprocessor< http)??www*php*net? GP4P$-SJ P4P $lasses< http)??www*phpclasses*org? G(pacheJ (pache Software Foundation< http)??www*apache*org GMJ igital Measures http)??www*digitalmeasures*com GSSJ Sedona systems www*sedona*bC 19 *6ta >!a/ini 5aggayi 3+57 00>01>AA -/ail7 mnaggayiZcs*odu*edu or mnagg003Zodu*edu '"8ective7 &o obtain a challenging< growth@oriented Analyst2Progra//er position< particularly in the areas of data mining< database 8eb and 2(+( de"elopment< within a progressi"e organiCation -ducation >.S.9 $omputer %nformation System< 2anuary /009 @ $urrent GP( 6*99?9*0 Old ominion !ni"ersity< Norfol5< +( =.S.9 $omputer %nformation Systems< October /000 @ GP( 6*;1?9*0 e+ry !ni"ersity< ecatur< G( Associate Degree< (ccounting< 2une 3BB1 @ (ward $ertificate of Outstanding Performance %*8*(5erlay campus< artmouth< NS< $anada $ecnical S;ills Data"ase Design Progra//ing Banguages )e" Develop/ent -nviron/ent P-?S:-< R7MS Se#uel ser"er?$lear $ase $rystal Reports (ccess B;?00?.P Oracle Ai?Bi?30g MOS:- O7$?27$ S(S for ata mining ? (nalysis $? $HH $O7O- +isual 7asic >*0?1*0 2a"a< Ser"let< 2a"a 7eans< .M- +isual Studio*N=& +isual Studio MS Source Safe< P+$S *N=& Front page 4&M-< $SS< .4&M- (SP< $G%< P=R- 2a"aScript< +7 Script (SP< (SP*N=& ream wea"er P4P !niD 8indow B*D 00< N& %%S Linstall?configM (pache Linstall?configM -EP-,+-5C- -liCa"et City State 3niversity @ Labo/ato/8 Te03n606an 0B?0/ U Present ? =liCabeth $ity< N$ &each %ntroduction to $omputing course using Microsoft Office suite /006< which includes 8ord< =Dcel< (ccess and PowerPoint Maintain computer science labs to ma5e sure each computer is wor5ing properly &utoring students in 2a"a< $HH and database Setup eDam to test student proficiency in Microsoft Office /006 pac5age 4elps students with any problem arising from using computers >itsu"isi )ireless Co//unication +nc. < Soft!are -ngineer 0;?00 @ 0;?0/ ? uluth< G( Redesigned and Maintained Problem &rac5ing (pplication* &his was the major atabase (pplication that stores all other applications and widely used in the !S(< 2apan and France* $ustomersP worldwide may submit cellular phone related problem direct into the application* Problem submitted automatically emailed to appropriate personnel 8or5ed as a part of a team to concei"e< design and automate Mitsubishis $ellular Phone &rac5ing (pplication in (ccessB;< which was used primarily to store cellular phone information L"endor< model< re"ision history< 1> author< locationM* (nalyCed data and de"eloped prototype $reated !ser %nterfaces using 1isual "asic 1*00 or =orland (.00 CFF (nalyCed visual CFF docu/entation and de"eloped different 5inds of PC $ools si/ulators for cellular phones 8or5ed as part of team to design and de"elop Re"ision 4istory &rac5ing (pplication in (ccess B;* e"eloped user friendly access reports that can be used to trac5 different stages of Problem &rac5ing (pplication e"eloped detailed documentation for all the applications e"eloped user<friendly /anual including Graphics showing each screen user will see when using application* e"eloped &able relationships< enforced referential integrity and secure database in multi user en"ironment 4ad eDtensi"e use of DBB9 B+= and =it !ise manipulation Focused on o"erall de"elopment lifecycle< and had to use of P1CS< >S 1isual Source Safe for bac5 up applications 4a"e been eDposed to Clear Case? ,ational Clear@uest =Dtensi"e use of graphics creation using Poto sop pro and paint shop Additional S;ills =Dcellent &echnical writing s5ills in application documentation $an communicate effecti"ely with both technical and non technical user Strong eDposure data warehousing and mining s5ills $an wor5 effecti"ely in teams $an also wor5 alone under minimal super"ision Moderate eDposure to S(S (nalysis Self moti"ated< hard wor5ing and can go eDtra mile to get job done 8or5ing 5nowledge of Clear Case and ,ational Clear @uest esigned small company payroll syste/ using C'='B e"eloped different 5inds of reports on the internship using Crystal report !riter< (ccess and +isual 7asic 11