web-based database support system for international student tutor

59
WEB-BASED DATABASE SUPPORT SYSTEM FOR INTERNATIONAL STUDENT TUTOR-MENTOR PROGRAM _______________ A Thesis Presented to the Faculty of San Diego State University _______________ In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science _______________ by Vamsi Priya Damalcheruvu Summer 2010

Upload: others

Post on 03-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

WEB-BASED DATABASE SUPPORT SYSTEM FOR INTERNATIONAL

STUDENT TUTOR-MENTOR PROGRAM

_______________

A Thesis

Presented to the

Faculty of

San Diego State University

_______________

In Partial Fulfillment

of the Requirements for the Degree

Master of Science

in

Computer Science

_______________

by

Vamsi Priya Damalcheruvu

Summer 2010

iii

Copyright © 2010

by

Vamsi Priya Damalcheruvu

All Rights Reserved

iv

DEDICATION

To my mother for her unconditional love and support. Everything I am I owe to my

mother.

v

ABSTRACT OF THE THESIS

Web-based Database Support System for International Student Tutor-Mentor Program

by Vamsi Priya Damalcheruvu

Master of Science in Computer Science San Diego State University, 2010

This project deals with development of a web based database application for the International Student Tutor-Mentor Program at San Diego State University to aid them in better managing student and tutor/mentor information. This application will help serve the directors of International Student Tutor-Mentor Program by providing them ease of access and better control of program participants’ information specific to their program. The main motive behind going for a web based application was to develop a system that matches students with tutors and mentors at the touch of a button and allows data access from any place.

vi

TABLE OF CONTENTS

PAGE

ABSTRACT ...............................................................................................................................v

LIST OF TABLES ................................................................................................................. viii

LIST OF FIGURES ................................................................................................................. ix

ACKNOWLEDGEMENTS ..................................................................................................... xi

CHAPTER

1 INTRODUCTION .........................................................................................................1

1.1 Background ........................................................................................................1

1.2 Limitations of Current Practice ..........................................................................3

1.3 Web-based Database Support System ...............................................................4

2 TECHNOLOGIES USED ..............................................................................................5

2.1 PHP: Hypertext Preprocessor ............................................................................5

2.2 MySQL ..............................................................................................................6

2.3 JavaScript ...........................................................................................................7

2.4 Why PHP with MySQL? ...................................................................................7

2.5 Web Server.........................................................................................................8

3 INTERNATIONAL STUDENT TUTOR-MENTOR PROGRAM ..............................9

3.1 Learning About the Program ...........................................................................10

3.2 Key Operations ................................................................................................10

3.2.1 Matching Students with Tutors or Mentors ............................................10

3.2.2 Keeping Track of Program Events and Activities ..................................11

3.2.3 Keeping Track of Continuing Students...................................................11

3.2.4 Keeping Track of Returning Students and Tutors/Mentors ....................12

4 SYSTEM DESIGN AND IMPLEMENTATION ........................................................13

4.1 System Overview .............................................................................................13

4.2 Table Design ....................................................................................................13

4.3 Implementation Details ....................................................................................15

4.3.1 User Access Levels .................................................................................16

vii

4.3.2 Operations Supported..............................................................................17

4.3.3 GUI .........................................................................................................19

5 FUTURE ENHANCEMENTS ....................................................................................40

5.1 Other Technologies ..........................................................................................40

5.1.1 Database ..................................................................................................40

5.1.2 Programming Language ..........................................................................40

5.2 New Operations ...............................................................................................41

5.2.1 Mapping Students and Tutors/Mentors ...................................................41

5.2.2 Mobile Application Development...........................................................41

5.2.3 Other Operations .....................................................................................41

6 CONCLUSION ............................................................................................................42

REFERENCES ........................................................................................................................43

Works Cited .................................................................................................................43

Works Consulted ..........................................................................................................43

APPENDIX

A PHP MYSQL FUNCTIONS ........................................................................................44

B PHP SESSION HANDLING FUNCTIONS ...............................................................47

viii

LIST OF TABLES

PAGE

Table 4.1. ISTMP Student Table Description ..........................................................................14

Table 4.2. ISTMP Tutor/Mentor Table Description ................................................................15

Table A.1. mysqu_close ...........................................................................................................45

Table A.2. mysql_select_db .....................................................................................................45

Table A.3. mysql_query ...........................................................................................................45

Table A.4. mysql_error ............................................................................................................45

Table A.5. mysql_fetch_row....................................................................................................46

Table A.6. mysql_fetch_assoc .................................................................................................46

Table A.7. mysql_num_rows ...................................................................................................46

Table B.1. session_start() .........................................................................................................48

Table B.2. session_destroy() ....................................................................................................48

Table B.3. session_unset() .......................................................................................................48

ix

LIST OF FIGURES

PAGE

Figure 4.1. An entity that violates fourth normal form. ...........................................................15

Figure 4.2. Entities that are in fourth normal form. .................................................................15

Figure 4.3. ISTMP user hierarchy............................................................................................16

Figure 4.4. ISTMP Tutor-Mentor Profile Form highlighting personal information. ...............19

Figure 4.5. ISTMP Tutor-Mentor Profile Form highlighting contact information. .................20

Figure 4.6. ISTMP Tutor-Mentor Profile Form highlighting background information. .........21

Figure 4.7. ISTMP Tutor-Mentor Profile Form highlighting background information (continued). ..................................................................................................................22

Figure 4.8. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information. ..................................................................................................................23

Figure 4.9. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information (continued). ..............................................................................................24

Figure 4.10. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information (continued). ..............................................................................................25

Figure 4.11. ISTMP Tutor-Mentor Profile Form highlighting schedule availability. .............26

Figure 4.12. ISTMP Tutor-Mentor Profile Form highlighting prospective Tutor-Mentor information, brief orientation meeting, and comments. ..................................27

Figure 4.13. ISTMP Tutor-Mentor Profile Form highlighting privacy. ..................................28

Figure 4.14. ISTMP Student’s Tutor-Mentor Request Form. ..................................................28

Figure 4.15. ISTMP Student’s Tutor-Mentor Request Form highlighting personal and contact information. .....................................................................................................29

Figure 4.16. ISTMP Student’s Tutor-Mentor Request Form highlighting background information. ..................................................................................................................30

Figure 4.17. ISTMP Student’s Tutor-Mentor Request Form highlighting background information (continued). ..............................................................................................31

Figure 4.18. ISTMP Student’s Tutor-Mentor Request Form highlighting Tutor-Mentor information. .....................................................................................................32

Figure 4.19. ISTMP Student’s Tutor-Mentor Request Form highlighting Tutor-Mentor information (continued). .................................................................................33

Figure 4.20. ISTMP Student’s Tutor-Mentor Request Form highlighting schedule availability....................................................................................................................34

x

Figure 4.21. ISTMP Student’s Tutor-Mentor Request Form highlighting special request and privacy. .....................................................................................................35

Figure 4.22. ISTMP Director Login Page. ...............................................................................36

Figure 4.23. ISTMP Director Page. .........................................................................................37

Figure 4.24. ISTMP Director Page highlighting active students, active scholars, and active Tutor-Mentors. ..................................................................................................38

Figure 4.25. ISTMP Director Page highlighting links to stats and update. .............................39

xi

ACKNOWLEDGEMENTS

I would like to express my sincere appreciation to Dr. Eckberg and Mrs. Gigie Price

for giving me the opportunity to work with their project and for providing me with constant

support and motivation. I would also like to thank Professor William Root and Professor

J. Carmelo Interlando for serving on my thesis committee.

1

CHAPTER 1

INTRODUCTION

The International Student Center (ISC) offers a full range of programs and services at

San Diego State University to help international students. The International Student Tutor-

Mentor program (ISTMP) is one such program which helps students to gain greater

competence in the English language and to promote better understanding of American culture

and cross-cultural differences.

1.1 BACKGROUND The tutor-mentor program for international students was founded in 1986. At that

time, the program was strictly a tutoring program. The only records kept consisted of student

applications and a single spreadsheet that listed tutors with addresses and contact numbers.

There was no other available data regarding the students except for what was indicated in

their applications, which contained very limited information. Tutors were not required to fill

out an application form.

In 2003, shortly after the passing of the founding director, new directors were put in

place. The directors incorporated mentoring into the tutoring program hence the name

ISTMP (International Student Tutor-Mentor Program). The directors created a new

application form for students called the Tutor-Mentor Request Form. This form was much

more detailed in order to assess the specific needs of a student. Another application form

called Tutor Mentor Profile was also created for tutors and mentors to fill out. The form

contained data necessary to determine a tutor/mentor’s ability to meet students’ needs. Both

forms contained confidential personal information as well as information required for

matching students with tutors/mentors prior to assignment.

In the subsequent semesters, the students’ applications consistently increased in

numbers. Although the tutor-mentor application did not increase at the same rate, it

nevertheless increased in a consistent basis to where the number is at the present time.

Currently, there are approximately 260 student participants in the program and approximately

2

a 100 out of 180 tutors and mentors actively participating at any given semester. This

presents a problem in matching students with tutors/mentors without creating a manual

recordkeeping system.

A manual tracking system utilizing excel spreadsheets was created to keep track of

the students and tutor-mentors. All data provided by both were compiled and categorized,

placed into Excel sheets for various reports such as the number of students from a certain

specific country, the number of undergraduates, the number of students needing tutors only,

or mentors only, or both, in what areas the students needed help the most and other data that

contributes to readily matching students with tutors or mentors.

In addition, manual spreadsheets provide the directors the ability to have information

used to assess the students’ needs and requests as well as determine the various types of

academic, social and cultural help the tutors/mentors are able to provide. This is by far the

most difficult task to perform - matching of students with tutors and/or mentors and vice

versa to fit respective needs and requests. The data also provide various points that need to

be considered such as personality, vicinity of both so that public transportation may not be

needed, specific requests of each, matching schedules and last but not least, specific age

compatibility. This report, of course, took a lot of time - time that could have been spent to

better develop the program. The following were the requirements of this program at a

glance:

• Matching students with tutors or mentors.

• Anytime anywhere access to data.

• Consolidation of data scattered in various manual records.

• User friendly interface for querying the system.

• Keeping track of continuing students.

• Keeping track of returning students and tutors/mentors.

• Supporting different access privileges.

• Generating various reports for specific inquiries.

The best way to achieve all of their requirements was to develop a web based

database solution. This application is hosted on a web server and can be accessed with the

domain name http://www.tutor-mentor.com.

3

1.2 LIMITATIONS OF CURRENT PRACTICE The problem with record keeping and data maintenance done manually is that it is not

only time consuming but quite cumbersome. Assigning students to tutors and/or mentors

takes a few days done manually, rather than a few minutes when a computerized system

exists. Having immediate access to the students, tutors and mentors information history and

reports, allows the directors to devote more time to improve the effectiveness of the program.

Maintaining data from one semester to the next is an inefficient and time-consuming

endeavor that is not necessary. Furthermore, keeping and maintaining records manually

generates more paper and is ultimately not environmentally friendly.

Spending time to generate various manual reports is not cost effective for the

program, office volunteers and program directors. The manual records created each semester

can be voluminous with minimal use. The continuing students’ record, for example, can take

a few days to compile before it’s ready for next semester. However, these students will have

new addresses and changes of personal information when they return so updating their

personal data manually also takes time. Backup is another problem.

Because the program is strictly voluntary, creating the various spreadsheets to

compile data mainly falls on the directors, and their ability to develop these reports as fast as

possible. The first 4 weeks of the program are mainly dedicated to generate the reports while

concurrently assigning students to tutors/mentors. To assign these tasks to volunteers would

require more time spent for training. Even then, because the program has several activities

during the semester, much paperwork is generated for tracking purposes, almost all at the

same time. Without the reports, however, the program would not only be chaotic but would

be nearly impossible to manage.

To define the problem in simple terms, the ISTMP wanted a system to store and

maintain the data needed to match students with tutors and mentors instantly. The system

they want must also give them a friendly interface for querying the system and generating

useful information to help assess the needs and/or success of the program. Furthermore,

maintaining program participants data is vital and at the heart of program success.

4

1.3 WEB-BASED DATABASE SUPPORT SYSTEM A web-based database application runs entirely within the browser, such as Microsoft

Internet Explorer, or Mozilla Firefox and can be accessed via the web over a network such as

internet or intranet. Web-based applications have several advantages over the traditional

desktop applications which makes them more popular and useful. Web applications do not

have to be installed or upgraded by the user of the application and no special configuration

has to be done to the user’s PC. Any change made to the application or new functionality

added to the application takes place in the code residing on the server. The changes get

reflected to the user without any action from his or her side. When using a web based

application the user is no longer bound to certain geographic locations, and the user can

access the application from any place where s/he can access the internet. The user is also not

bound to any particular software as all the technical details are handled at the server side.

The most important feature of web based application is that the user need not depend on data

residing on his or someone else’s local computer. All the data needed is maintained at the

server and the user can access it anytime. This feature of a web-based database system

resolves most of the issues the ISTMP is trying to resolve. Web-based applications also

ensure that every user of the system is seeing the same data because every user is viewing the

data from a centralized repository. Whenever there is any update of data all the users of the

system can see that. Web applications also have certain security risks associated with them.

Proper care should be taken to address these issues when developing a web solution. Many

of the applications that we use in our day to day life are web based applications. A web-

based application addresses all the limitations that ISTMP was facing in maintaining student

and tutor/mentor information.

5

CHAPTER 2

TECHNOLOGIES USED

The components required for any web based database application are a web server, a

server side programming language and a database server or database management system.

For ISTMP application, we are making use of a web server provided by a commercial web-

hosting company Avahost.net for hosting our application, PHP for server side programming

and MySQL for the database management system. A short description of these can be found

in this section.

2.1 PHP: HYPERTEXT PREPROCESSOR The scripting language used in this application for creating dynamic web pages is

PHP. PHP which stands for “PHP: Hypertext Preprocessor” is a widely used Open Source

general purpose scripting language that is especially suited for web development and can be

embedded in HTML [1]. The main goal of this language is to allow web developers to write

dynamically generated web pages quickly [1]. PHP is a server side scripting language. The

PHP code embedded inside HTML is executed on the server and the resulting page is sent to

the browser for viewing. PHP is capable of doing all CGI operations such as collecting form

data, generating dynamic web content, retrieving data from a database, or cookie

manipulation. Other than server side scripting PHP can also be used for command line

scripting and writing GUI applications.

In the ISTMP application we use PHP for server side scripting which is also

considered as the principle focus of PHP. The PHP version currently installed on

Avahost.net server is PHP 5.2.8. This version has all the features needed by the ISTMP

application. PHP’s form handling features are used the most in this application. The major

features of PHP are:

• PHP is Open Source. It is considered free software by the Free Software Foundation.

• PHP can be based on all major operating systems such as Linux, UNIX, Microsoft Windows, Mac OS X and many others.

6

• PHP also has support for most web servers such as Apache, Microsoft Internet Information Server, Netscape and many others, thereby giving us the freedom of choosing any combination of operating system and web server.

• PHP also gives the choice of using procedural programming or object-oriented programming. PHP 5 introduced a complete Object Oriented Model.

• PHP is flexible for integration with HTML. It is easy to embed one or more PHP scripts into a static HTML file.

• PHP not only allows you to output HTML files it also can output images, PDF files and Flash movies.

• The most important feature of PHP is the support for a wide range of databases including ORACLE, Sybase, and MySQL.

• PHP also has an extremely useful text processing feature which includes regular expressions and the ability to parse XML documents.

• PHP was built for the web. Many tasks like accessing forms, talking to a database, etc. are easier in PHP, thus making it easier to use.

2.2 MYSQL A database server or Data Base Management System (DBMS) is a software

application that searches and manages data that is stored in databases. The database server

application interface is accessed using SQL. The database server used in the ISTMP

application is MySQL. MySQL is one of the most popular Open Source relational database

management systems and is developed by MySQL AB. MySQL has most of the features of

high-end commercial database servers, including the ability to manage very large quantities

of data. Libraries for accessing MySQL databases are available in all major scripting

languages with language specific APIs. Some languages would additionally require a driver

for communicating with a MySQL server. MySQL is popular for developing web

applications and acts as one of the important components of the LAMP platform. A

combination of PHP and MySQL forms the essential component of many web services which

we use in our daily lives. Since this web service is hosted on Avahost.net web server we

make use of version MySQL 4.1.22-standard which is currently installed there. MySQL

4.1.22 has all the features that are needed for this application. Following are the reasons that

make MySQL a good choice [2]:

7

• MySQL is Open source which means we can use it free of charge. It is distributed under GNU General Public License.

• MySQL is a relational data base management system. A relational data base management system stores data in relational tables instead of storing them all in one flat file. This makes the system more flexible and faster.

• MySQL is very fast, reliable and easy to use. MySQL server was designed to handle large databases much faster and has a rich and useful set of functions.

• MySQL is suitable for accessing databases on the Internet. It is easy to build web applications with MySQL and scripting languages like PHP.

• MySQL supports various platforms which gives us the choice of choosing between more than twenty platforms.

2.3 JAVASCRIPT JavaScript is a popular client side scripting language widely supported in most web

browsers. The primary use of JavaScript is to write functions that are embedded in or

included from HTML pages and interact with the Document Object Module of the page [3].

JavaScript is used in this application for performing client side validation of the forms. Since

these validations are done on the client side it can respond quickly, thus making the

application look more responsive and dynamic. This also helps in making sure that the data

will be accepted before the form is submitted to the server thereby reducing the number of

unwanted page requests between the web browser and the server. HTML by itself does not

have any functionality and is used only for display purposes. JavaScript is embedded in

HTML pages for adding functionalities like input form validation.

2.4 WHY PHP WITH MYSQL? There are several reasons why the combination of PHP and MySQL was chosen. This

section summarizes the description given in the reference [4]. PHP and MySQL have been

developed while keeping each other in mind and hence the programming interfaces between

them are logically paired up and easy to use. Both PHP and MySQL have the Open Source

power which means we can use the combination for free and there is lot of community

support. PHP and MySQL have simple and efficient designs which enable faster processing.

A huge percentage of the world’s HTTP servers run on one of these two.

8

2.5 WEB SERVER The web server used in this application is administered by Avahost.net, a commercial

web-hosting company. The operating system on this server is Linux with Kernel version

2.6.18-194.el5. It is powered by Apache (2.0.63) web software.

9

CHAPTER 3

INTERNATIONAL STUDENT TUTOR-MENTOR

PROGRAM

The SDSU International Student Tutor/Mentor Program (ISTMP) was founded in

1986 to help students at the International Student Center (ISC). This program is strictly

voluntary and engages the services of generous local San Diegans who are active in the

community. The mission of this program is to help students gain greater competence in the

English language and to promote better understanding of American culture and cross-cultural

differences. The ultimate goal is the cultivation of long lasting friendships between people

from all over the globe. Approximately 90-120 tutors/mentors participate each semester in

this program serving about 260 students a year. Tutors/mentors are community volunteers

ranging from retired professionals, business owners to home makers. Other volunteers are

active SDSU students who are willing to share their experiences and culture with their

international peers.

Tutors provide academic assistance with English vocabulary, reading, writing, and

comprehension skills. They also help students understand American idioms and slang while

supplying editing services for term papers and reports. Mentors assist students with their

social and cultural adaptation to America by encouraging them to participate in discussions

of current events and other social issues. Tutors/Mentors are screened, selected and trained.

A program orientation is provided to all incoming tutors/mentors. They are given a short

briefing and are supplied with a Tutor/Mentor Handbook. Sessions are a minimum of two

hours a week at any mutually agreeable location, on- and off-campus.

The program serves students between the ages of 20 to 45 with academic majors

ranging from Engineering, Educational Technology, Arts and Sciences to Business

Administration and Finance. Students are here for a minimum of one semester and may stay

for as long as five to six years to obtain their undergrad, graduate and post graduate degrees.

The program also serves scholars and/or career professionals who are here for further

enhancement of their academic and professional skills.

10

SDSU ISTMP student members come from various parts of the world such as:

• Africa (Ghana, Mauritius, Morocco, etc.);

• Asia (Cambodia, China, India, Indonesia, Israel, Japan, Kazakhstan, Laos, Malaysia, Nepal, Saudi Arabia, Singapore, South Korea, Tajikistan, Thailand, Turkmenistan, Vietnam, etc.);

• Caribbean (Cuba and Dominican Republic, etc.);

• South and Central America (Argentina, Bolivia, Brazil, Chile, Colombia, Ecuador, Peru, Venezuela, etc.);

• Europe (Czech Republic, Denmark, France, Germany, Hungary, Italy, Moldova, Norway, Russia, Spain, Sweden, Switzerland, etc.).

• North America (Mexico, etc.);

• Oceania (Australia, Tonga, etc.).

3.1 LEARNING ABOUT THE PROGRAM Each year or semester many incoming students attend an orientation meeting at ISC

where they are told about this Tutor-Mentor program. The ISC website also has a link to the

program, and the third method is word of mouth.

3.2 KEY OPERATIONS The main functionality of the program was discussed in Section 1.1. The detailed

explanation of other key operations of the program is described in the following sections.

3.2.1 Matching Students with Tutors or Mentors After an application is received from a student, a spreadsheet is generated to compile

a list with personal information as well as indication as to what areas they believe they need

help with. This is then compared to the list of tutors/mentors and the areas that they are

willing to provide to help the students. Both these lists are particularly difficult to maintain

due to the large amount of information required and changes that consistently occur with

tutors mentors during and after each semester. Examples of changes are: a student assigned

to a tutor-mentor prior to the current semester may choose to or not to continue with them,

changes in their status and/or personal information, they may decide they no longer want to

tutor or mentor the previous student assigned to them, their time availability or schedule may

have changed, the country of preferences may have changed and so on.

11

Current semester student applicants may also have specific requirements such as tutor

and/or mentor’s gender, age or native language. Personality, compatibility and preference

play significant roles in matching students to tutors or mentors.

3.2.2 Keeping Track of Program Events and Activities For every event and/or activity, a manual spreadsheet is regularly generated.

Spreadsheets may contain activities that include a list of participants for the traditional end-

of-semester potluck which is generally attended by approximately 120 to 260 students and

tutors/mentors, a list of participants for activities such as local and Los Angeles museum

tours, symphony, San Diego Zoo, Wild Animal Park, and other field trips in and around

and/or outside San Diego. This list will usually contain information such as name, telephone

number, payment date, amount paid, driver and passenger assignments, etc.

3.2.3 Keeping Track of Continuing Students Students who are in the program may stay in the program for 1 semester, 1 or 2 years

or up to 4-6 years. After a semester in the program, a student may continue with the same

tutor mentor for a short or long period of time. After a semester in the program, a student is

then categorized as a continuing student. A continuing student report and a binder are then

created and the data updated for the following semester. The academic status of students in

particular and the number of semesters a student is at SDSU are both important factors in

keeping records. For example, a student who is here for a semester may only have one tutor,

however, a student who is here for more than a semester up to 4 years may have from one up

to 8 to 10 tutors/mentors while in the program. All the spreadsheets generated in each

semester are filed in a binder along with the applications and other pertinent records for that

semester. So if the student has been in the program for 4 years and is now graduating,

tracking down the student’s program activities, data and other information is extremely time

consuming due to the amount of binders and so on for compiling his/her history. The same

process is done for the tutors/mentors. Some of the tutors/mentors in the program have been

tutoring mentoring since the very start of the program in 1986. Tracking down their

activities with their assigned students can also be extremely time-consuming.

12

3.2.4 Keeping Track of Returning Students and Tutors/Mentors

Some of the tutors/mentors in the program will take a leave of absence for one reason

or another. The reasons can range from injury, vacation, moving out of town and moving

back into town, from being out of country for long term vacation and then back into town and

other myriad of different situations. It is not uncommon that the program will have several

returning tutors mentors in a given year. Having the ability to keep their history in a database

will be an enormous help to the program.

Returning students are especially not uncommon in the program. When a student

receives his/her bachelor’s degree from SDSU and returns to the home country, a couple of

years later, s/he may return to SDSU for his/her masters program. Students may also be

returning after spending a semester or so in another school or in another state. Or, a student

maybe doing a joint program with UC Davis, UCSD and others and may spend time outside

SDSU. A student may also leave the country for a semester or so doing research or joint

program in Mexico or Venezuela. His/her file will remain active. Oftentimes, the student

will return to SDSU and continue with the assigned tutor/mentor as if the student never left

or s/he may desire a new tutor mentor. All this information must be recorded to accurately

reflect the student’s experience with the program.

13

CHAPTER 4

SYSTEM DESIGN AND IMPLEMENTATION

This Chapter provides details on the overall system design, tables created, and

implementation procedures.

4.1 SYSTEM OVERVIEW This section describes the high level system overview of how a web based system

works. The Avahost.net web server hosts and handles the request for this application. The

users can access this application through their computer at work or at home, which is

connected to the internet. The request for the information is sent to the server via the internet

and the response from the server is also received through the internet. The only software that

needs to be installed on the client's PC is a web browser. This application was tested on two

browsers, Microsoft Internet Explorer and Mozilla Firefox.

4.2 TABLE DESIGN The following section discusses in detail the table design for the ISTMP application.

In this database design there are mainly two sets of tables. One set stores all the necessary

information related to the students and the other stores the tutors/mentors information. In the

students’ set, everything revolves around the student's Red ID which is a unique series of

numbers given to every student enrolled at San Diego State University. The student's

personal information and the information required for the Tutor-Mentor program is logically

classified in to the student's profile, student status, country, academic interests, social-cultural

interests, other languages and schedule. Profile information, as the name implies, deals with

student's personal information like age, address, and all other individual information. Student

status stores student’s current status at San Diego State University which is required to match

them with the tutor/mentor. Country stores the home country of the student. Academic,

Social Cultural deals with the student’s academic and socio-cultural interests respectively.

Schedule deals with the availability of the student in order to schedule him/her with the

14

tutor/mentor. Other languages, and tutor age preference, are two more tables to store their

respective information. Table 4.1 shows the list of student tables and their short description.

Table 4.1. ISTMP Student Table Description Table Name Table Description Primary Key student_profile Maintains students’ personal information. Red ID student_status Maintains students’ current status at SDSU. student_home_country Maintains students’ home country. student_other_languages Maintains students’ other fluent languages. student_tutor_age_preference Maintains students’ tutor age preference. student_academic_interests Maintains students’ academic interests. student_social_cultural_interests Maintains students’ social cultural interests. student_schedule Maintains students’ schedule availability.

For the Tutor-Mentor set, a unique ID is created by the combination of the year and

the month along with assigned individual numbers by the directors. This is required to

maintain the accuracy of the data. The information of the tutors/mentors is logically

separated and stored in the database the same as the students. They almost carry the same

table names since both the student and tutor/mentor information has to be compared to

provide a best match from the given categories. The set of tables which store the

tutor/mentor information are: profile, student status preference, country preference,

academic, social cultural, schedule and other languages. Profile deals with the personal

information of the tutor/mentor. Student status preference and the country preference stores

the preferences of the tutor/mentor related to student’s status and home country respectively.

Academic table deals with the tutors’ area of interests to help students, for example reading,

writing etc., and Social cultural deals with the mentors’ interests to assist the students in

adapting to American culture. Schedule stores the schedule availability of the tutor/mentor to

dedicate time with the student. Table 4.2 shows the list of tutor tables and their short

description. Finally, Tutor Mentor Student table stores the tutor/mentor’s ID along with their

assigned student’s ID.

The tables in the database grew in number because they were normalized in the

Fourth normal form (4NF). It is used to avoid redundancy in relational database design. An

entity is in fourth normal form if no instance contains two or more independent, multi-valued

facts about an entity [5].

15

Table 4.2. ISTMP Tutor/Mentor Table Description Table Name Table Description Primary Key tutor_mentor_profile Maintains tutor/mentors’ personal

information. TID

tutor_mentor_student_status_preference Maintains tutor/mentors’ student status preference.

tutor_mentor _country_preference Maintains tutor/mentors’ country preference.

tutor_mentor _other_languages Maintains tutor/mentors’ other fluent languages.

tutor_mentor _academic_interests Maintains tutor/mentors’ academic interests.

tutor_mentor _social_cultural_interests Maintains tutor/mentors’ social cultural interests.

tutor_mentor _schedule Maintains tutor/mentors’ schedule availability.

For example, consider the EMPLOYEE entity. Each instance of EMPLOYEE could

have both SKILL_CODE and LANGUAGE_CODE. An employee can have several skills

and know several languages. Two relationships exist, one between employees and skills, and

one between employees and languages. An entity is not in fourth normal form if it represents

both relationships, as Figure 4.1 shows. Instead, this violation can be avoided by creating two

entities that represent both relationships, as shown in Figure 4.2. If, however, the facts are

interdependent (that is, the employee applies certain languages only to certain skills) the

entity should not be split.

Figure 4.1. An entity that violates fourth normal form.

Figure 4.2. Entities that are in fourth normal form.

4.3 IMPLEMENTATION DETAILS This section describes some of the important implementation details of the ISTMP

application. As mentioned previously this application was implemented in PHP with database

16

support from MySQL. This application supports multiple user access levels. Each user level

has a set of supported operations. An example of this is not allowing the student to view

other student’s information. Detailed information on user access levels can be found in

Section 4.3.1. This application provides online application forms for both students and

tutors/mentors to submit their information in order to get into the program. They will

eventually be allowed to edit their information to maintain an up to date system. The

application also provides web interfaces for allowing the directors of this system to view and

edit all the participants’ information, query the system and generate reports. Detailed

information on supported operations can be found in Section 4.3.2.

4.3.1 User Access Levels The ISTMP application supports four different types of users. Each user type has

certain restrictions and privileges based on operations permitted to them. The four access

roles of the ISTMP system are Director, Administrative Assistant, Tutor/Mentor and Student.

Director is the topmost user level followed by Administrative Assistant. Tutor/Mentor and

Student come next and they are at a similar level (see Figure 4.3).

Figure 4.3. ISTMP user hierarchy.

Director is the highest privileged user of the system. This user can do all the possible

operations supported by this system. Following are the operations that a Director can do:

• Adding a new student and/or tutor/mentor record by accepting their application.

• View all existing student and tutor/mentor records.

17

• Edit or delete student and tutors/mentor records.

• Allow temporary access to specific individuals as necessary.

• Perform all query operations.

• Change his/her login password.

The next user level after Director is Administrative Assistant. Administrative

Assistant can do most of the operations but there are some restrictions. Following are the

operations that an Administrative Assistant can perform:

• View all existing student and tutor/mentor records.

• Edit specific student and tutors/mentor records.

• Perform all query operations.

• Change his/her login password.

The next user level is Tutor/Mentor. Tutor/Mentor can do some basic operations and

they are limited. Following are the operations that a Tutor/Mentor can perform:

• Edit specific personal information.

• View assigned students’ specific records.

• Change his/her login password.

The Student comes next and has almost the same privileges as the Tutor/mentor.

Following are the operations that a student can perform:

• Edit specific personal information.

• View all assigned tutor/mentor records.

• Change their login password.

These restrictions and privileges are implemented by using session operations

supported by PHP. These session variables are created when the user logs in and destroyed

when the user logs out or closes the application. When a user logs in to ISTMP website the

access level of the user is retrieved from the database and the role is captured in a session

variable. This session variable helps in implementing the restrictions.

4.3.2 Operations Supported This section explains in detail all the operations supported by ISTMP DSS. The

previous section gives a list of operations each level of user can do, which summarizes the

available operations. You can broadly classify all the operations into Participant operations,

Query operations and User operations.

18

Participant operations refer to all the operations that involve manipulation or deletion

of program participant’s (i.e. student and tutor/mentor’s) information. The operations that are

covered in this category are:

• Adding new student or tutor/mentor record in the system by accepting their application.

• Displaying a student record.

• Displaying a tutor/mentor record.

• Editing student and tutor/mentor information that is already in the system.

• Adding details to existing student records.

• Adding details to existing tutor/mentor records.

• Deleting a student record from the system.

• Deleting a tutor/mentor record from the system.

Query operation refers to all the operations that deal with querying the system and

generating/displaying reports. The operations that are covered in this category are:

• Displaying new student requests.

• Displaying unassigned students.

• Displaying active students.

• Displaying new tutor/mentor requests.

• Displaying unassigned tutor/mentors.

• Displaying new student requests.

• Generating student summary report for a given semester.

• Generating tutor/mentor summary report for a given semester.

• Generating student reports based on country, continent, tutor/mentor etc.,

• Generating event summary report for a given semester.

• Interface for querying the system with multiple options.

User operation refers to all the operations that deal with the users of the system. The

operations that are covered in this category are:

• Adding new users to the system.

• Removing users from the system.

• Changing own passwords.

• Edit login information of existing users of the system.

19

4.3.3 GUI The Graphical User Interface (GUI) for this application is not very complicated. It is

very user friendly and well organized. The user interfaces were built using HTML and with a

little help from Cascading Style Sheets (CSS). The options available for the user on the

screen depend on the access level of the logged in user. Director's GUI displays more

options, and the least number of operations is displayed for students. The rest of this section

highlights various aspects of the Tutor-Mentor Profile Form (Figures 4.4 – 4.13), Tutor-

Mentor Request Form (Figures 4.14 – 4.21, beginning p. 28), and the Director Page

(Figures 4.22 – 4.25, beginning p. 36).

Figure 4.4. ISTMP Tutor-Mentor Profile Form highlighting personal information.

20

Figure 4.5. ISTMP Tutor-Mentor Profile Form highlighting contact information.

21

Figure 4.6. ISTMP Tutor-Mentor Profile Form highlighting background information.

22

Figure 4.7. ISTMP Tutor-Mentor Profile Form highlighting background information (continued).

23

Figure 4.8. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information.

24

Figure 4.9. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information (continued).

25

Figure 4.10. ISTMP Tutor-Mentor Profile Form highlighting Tutor-Mentor information (continued).

26

Figure 4.11. ISTMP Tutor-Mentor Profile Form highlighting schedule availability.

27

Figure 4.12. ISTMP Tutor-Mentor Profile Form highlighting prospective Tutor-Mentor information, brief orientation meeting, and comments.

28

Figure 4.13. ISTMP Tutor-Mentor Profile Form highlighting privacy.

Figure 4.14. ISTMP Student’s Tutor-Mentor Request Form.

29

Figure 4.15. ISTMP Student’s Tutor-Mentor Request Form highlighting personal and contact information.

30

Figure 4.16. ISTMP Student’s Tutor-Mentor Request Form highlighting background information.

31

Figure 4.17. ISTMP Student’s Tutor-Mentor Request Form highlighting background information (continued).

32

Figure 4.18. ISTMP Student’s Tutor-Mentor Request Form highlighting Tutor-Mentor information.

33

Figure 4.19. ISTMP Student’s Tutor-Mentor Request Form highlighting Tutor-Mentor information (continued).

34

Figure 4.20. ISTMP Student’s Tutor-Mentor Request Form highlighting schedule availability.

35

Figure 4.21. ISTMP Student’s Tutor-Mentor Request Form highlighting special request and privacy.

36

Figure 4.22. ISTMP Director Login Page.

37

Figure 4.23. ISTMP Director Page.

38

Figure 4.24. ISTMP Director Page highlighting active students, active scholars, and active Tutor-Mentors.

39

Figure 4.25. ISTMP Director Page highlighting links to stats and update.

40

CHAPTER 5

FUTURE ENHANCEMENTS

This Chapter describes additional technological enhancements and operations that

could be added to future releases.

5.1 OTHER TECHNOLOGIES The web-based database application for ISTMP is developed in PHP and MySQL.

There are lot of other alternatives available that can be used in place of both PHP and

MySQL. Section 2.4 explains the reasons why we choose PHP with MySQL. Appendix A

gives a short description of PHP functions used for interacting with MySQL and Appendix B

gives a short description of session handling function used in this application. This section

gives a brief note on other alternatives that can be used for the same system.

5.1.1 Database We were looking for an open source database server for our application and MySQL

was the best choice. There are many other alternative open source database servers available

that can be used in place of MySQL. All of these have similar features but MySQL is the

strongest of these. There are some paid database servers like Oracle and Microsoft's SQL

server which have more features than MySQL. In the future we can migrate to any of these

databases. The requirements for this application were simple and achievable by MySQL so

other alternatives were not looked into. The ISTMP website currently resides on a web server

which supports MySQL. If we were to use any other database then it could not be hosted on

this web server, and we might have to look for other alternatives like a new dedicated system

as the server for hosting this application.

5.1.2 Programming Language The server side programming language used in this application is plain PHP. We can

use other alternatives for this application which could be any web application frameworks

based on Ruby, Java, or Python language. We can also migrate to object oriented PHP which

41

is already supported in the version used in this application. By using object oriented PHP we

can add more modularity to this application, making future extensions easier. Using a web

application framework makes developing web applications faster and easier. Since the initial

requirement for this application was achievable by using PHP these alternatives were not

approached. If the requirement for this application grows or the need for more complex

features arises, one of these frameworks can be used to easily support development. If the

option is selected for only changing the framework and not the database it can be easily done

as all the frameworks are compatible with MySQL which is the current database server being

used. The user interface can be improved and made more interactive by adding some web

technologies like AJAX and advanced JavaScript.

5.2 NEW OPERATIONS Section 4.3.2 gives information on operations that are currently supported by this

application. There are various other operations and features that can be added to this

application in order to make this application more feature rich.

5.2.1 Mapping Students and Tutors/Mentors Currently to identify a student from a specific continent or country the results can be

displayed in textual mode. A mapping feature to show all the students on the map is very

useful for a program like this with international students. A local mapping can be done for

tutors/mentors as well.

5.2.2 Mobile Application Development With the wide use of mobile applications, it would be even more user friendly if this

application is implemented for a hand held device. There are many platforms that a

developer can choose for their applications.

5.2.3 Other Operations The directors of ISTMP may need some additional set of features which they may

realize as they become more familiarized with the system. All their new requirements can be

added to the application. If possible they can be provided with a simple interface to build

their own complex queries.

42

CHAPTER 6

CONCLUSION

This project was an approach to help the International Student Tutor-Mentor Program

(ISTMP) with a tool for making their day to day administrative job easier. The GUI

provided in this tool would help them query the database without being familiar with

technical details on how databases work or the necessity to learn SQL. This is the first step

towards addressing the difficulties they face and giving them a useful; interface to suit their

needs. This application supports all the basic operations and initial features needed by the

ISTMP. The basic architecture, frame work and design are in place. New features can be

added to ISTMP application and extended as and when needed.

43

REFERENCES

WORKS CITED [1] “PHP Manual,” PHP, 2010, [Online], Available: http://php.net/manual/en/index.php.

[Feb 2010].

[2] H.E. Williams and D. Lane, Web Database Applications with PHP and MySQL, O’Reilly: Sebastopol, CA, 2004.

[3] “JavaScript,” Wikipedia, 2010, [Online], Available: http://en.wikipedia.org/wiki/Javascript. [Feb 2010].

[4] M.E. Davis, Learning PHP and MySQL, O’Reilly: Sebastopol, CA, 2004.

[5] “Normalization,” IBM Information Center, 2010, [Online], Available: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db29.doc.intro/ db2z_fourthnormalform.htm. [Feb 2010].

[6] “PHP MySQL Function Manual,” PHP, 2010, [Online], Available: http://php.net/manual/en/ref.mysql.php. [Apr 2010].

[7] “PHP Session Handling Function Manual,” PHP, 2010, [Online], Available: http://php.net/manual/en/ref.session.php. [Apr 2010].

WORKS CONSULTED “MySQL Reference Manual,” MySQL, 2007, [Online], Available:

http://dev.mysql.com/doc/refman/5.1/en/. [Feb 2010].

44

APPENDIX A

PHP MYSQL FUNCTIONS

45

This section gives short descriptions of PHP functions used for interacting with MySQL. PHP has very good support for MySQL and this is one of the reasons why combination of PHP and MySQL was selected. Following is the list of functions and description used in development of this application. These descriptions are taken from PHP Manual [6].

Table A.1. mysqu_close Function Name mysql_close Description This function closes the non-persistent connection to the MySQL server that’s

associated with the specific link identifier. Parameters link_identifier The MySQL connection identifier. If no link identifier is

specified the last opened connection is closed. Returns True on success, or False on failure.

Table A.2. mysql_select_db Function Name mysql_select_db Description This function selects a MySQL database. Parameters database name Name of the database selected.

link_identifier Identifier of MySQL connection. If this parameter is not specified the last link opened by mysql_connect() is assumed.

Returns True on success, or False on failure.

Table A.3. mysql_query Function Name mysql_query Description Send a MySQL query. Parameters Query A SQL query. This query string should not end with a

semicolon. link_identifier Identifier of MySQL connection. If this parameter is

not specified the last link opened by mysql_connect() is assumed.

Returns Returns a MySQL resource on success, or False on failure.

Table A.4. mysql_error Function Name mysql_error Description Returns the text of the error message from previous MySQL operation. Parameters link_identifier The MySQL connection identifier. If the link identifier is not

specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.

Returns Returns the error text from the last MySQL function, or ' ' (empty string) if no error occurred.

46

Table A.5. mysql_fetch_row Function Name mysql_fetch_row Description Returns a numerical array that corresponds to the fetched row and moves the

internal data pointer ahead. Parameters Resource The result resource that is being evaluated. This result

comes from a call to mysql_query(). Returns Returns a numerical array of strings that corresponds to the fetched row, or

FALSE if there are no more rows.

Table A.6. mysql_fetch_assoc Function Name mysql_fetch_assoc Description Returns an associative array that corresponds to the fetched row and moves

the internal data pointer ahead. mysql_fetch_assoc() is equivalent to calling mysql_fetch_array() with MYSQL_ASSOC for the optional second parameter. It only returns an associative array.

Parameters Resource The result resource that is being evaluated. This result comes from a call to mysql_query().

Returns Returns an associative array of strings that corresponds to the fetched row, or FALSE if there are no more rows.

Table A.7. mysql_num_rows Function Name mysql_num_rows Description Get the number of rows in result. Parameters Resource The result resource that is being evaluated. This

result comes from a call to mysql_query(). Returns The number of rows in a result set on success or FALSE on failure.

47

APPENDIX B

PHP SESSION HANDLING FUNCTIONS

48

Session support in PHP consists of a way to preserve certain data across subsequent accesses. This section gives short description of session handling function used in ISTMP application. These descriptions are taken from PHP session handling functions manual [7].

Table B.1. session_start() Function Name session_start() Description Creates a session or resumes the current one based on a session identifier

passed via a GET or POST request, or passed via a cookie. Parameters - Returns This function returns TRUE if a session was successfully started, otherwise

FALSE.

Table B.2. session_destroy() Function Name Session_destroy() Description Destroys all of the data associated with the current session. It does not unset

any of the global variables associated with the session, or unset the session cookie.

Parameters - Returns Returns TRUE on success or FALSE on failure.

Table B.3. session_unset() Function Name session_unset() Description Frees all session variables currently registered. Parameters - Returns No value is returned.