web-based database support system for international student tutor
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
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.
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.
31
Figure 4.17. ISTMP Student’s Tutor-Mentor Request Form highlighting background information (continued).
33
Figure 4.19. ISTMP Student’s Tutor-Mentor Request Form highlighting Tutor-Mentor information (continued).
38
Figure 4.24. ISTMP Director Page highlighting active students, active scholars, and active Tutor-Mentors.
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].
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.
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.