JMU
Server-Side PHP Programming


1 Purpose

The purpose of this assignment is to help you acquire (and demonstrate that you have acquired) some of the PHP skills/knowledge that you will need in order to understand secure programming for the WWW. Specifically, by the time you complete this assignment you should be comfortable with:

This assignment will also help you create better HTML/CSS documents for "web apps".

2 Overview

This assignment has two distinct parts. Part 1 is related to programming assignment 1, and Part 2 is related to programming assignment 2.

2.1 Part 1

Recall that for programming assignment 1 you created two different stylesheets but that you had to "link" academics.html to one of them. For Part 1 of this assignment you must create a "landing page" that a user can use to choose the stylesheet to apply.

2.2 Part 2

Recall that for programming assignment 2 you created a client-side "web app" named Caloricount for the (ficitious) company KitchIntel. For Part 2 of this assignment you must create a localized/internationalized version of Caloricount that can be branded and themed.

3 Requirements

Your implementation of Part 1 must satisfy the following requirements.

Your implementation of Part 2 must satisfy the following requirements.

Note that you should not need to make major changes to the HTML or JavaScript you wrote for the earlier assignments. The required functionality can, and must, be added using server-side PHP scripts. Of course, you may need to make minor changes and may need to rename some files. For example, since academics.html may need to perform some server-side processing it will need to be (modified appropriately and) renamed to .php (to run correctly on stu).

Note also that, since the purpose of this assignment is to help you acquire PHP skills/knowledge, you must not use an existing localization/internationalization library -- you must write the code yourself.

Finally, note that, as always, you should avoid code duplication. This includes the duplication of HTML, CSS, JavaScript, and PHP code. In other words, think about the elegance of your solution -- it will help you become both a better web app designer and a better designer in general and, hence, a more secure programmer.

4 Hints

You should think of stu as the production environment, not the development environment. Current installations of PHP include a simple HTTP server that you can use during development. This will greatly facilitate debugging.

5 Submission

You must submit the following.
  1. part1.zip containing all of the files you wrote for Part 1.
  2. part2.zip containing all of the files you wrote for Part 2.
  3. Two checklists that demonstrate that your products satisfy the requirements. (For Part 2, the checklist must include a list of the themes and languages that your product supports.)

In addition, your apps must be publicy available from your stu account. The landing page for Part 1 must be named landing.html and must be in your www/h3/part1 directory and the landing page for part 2 must be named caloricount.php and must be in your www/h3/part2 directory.

6 Visibility

Your deliverable will be public (i.e., available to both other students in the course and the general population).

7 Other Policies

Make sure you read, understand, and follow all other course policies associated with programming assignments.

Copyright 2016