main  


Home Page Introduction Preface Test Your German Skills German Tutorials Practice Test your skills German on the go! Still have questions? Some other places for help. Links About Us Contact Us How we designed the site

Site Programming

This site was built primarily to help the German community.  After beginning the project, our team decided that the best method to approaching this site was to design a website that could be changed and altered with ease, so that it could be used on a regular basis.  What became apparent was that MySQL and PHP were going to be intricate parts of the website so that we could make dynamic pages where information and tests could be changed on the fly.  After learning PHP, we had to integrate many of the pages with MySQL in order to create many of the pages.

1.  PHP (dynamic web pages)

Every web page within the site is made out of PHP files.  Because the site was going to be moved from our testing servers to Thinkquest servers, we decided to call all the information, such as the database information and the navigation panel all from one file.  Thus, if there was something wrong with the navigation panel, or we wanted to update a particular section, we could simply change one file and the rest of the web pages on the site would be changed.

In the picture to the left, we can see that all the database information for every page on the server was called through the "local_config.php" file.  The basic information, such as database name and password were placed into this file.  This also means that this information is more secure since they are in separate PHP files (they cannot be viewed).

The biggest problem we ran into using PHP files that were used by every page was that the subdirectories of the site would have the relative URL based on what the pages in the doc_root folder had.  Thus, subdirectories would link to the wrong a relative URL as if that document were in the subdirectory.  We overcame this problem by creating another dynamic file for each subdirectory, making the links relative to that subdirectory.



2.  MySQL

We used several tables by which to manage the site:

a.  UserInfo (for login purposes)

b.  UserTest (record a user's test information)

c.  help (used to store comments in the help section of the site)

d.  Testing tables (these tables were used to store all the questions and answers from each test--so that they could be changed easily)