Problems 1-5 constitute homework 3, 10 points, due Wednesday, March 7, in class, on paper
Problem 6 is also known as Project 1, first delivery, also 10 points, due Tuesday midnight, March 6, in /var/www/html/cs637/<username>/pizza1 on topcat.
0. (not turned in). To try out your new directory in topcat's web server site, put a simple hello.html in your new directory at /var/www/html/cs637/<username>. User joe has /var/www/html/cs637/joe, a private directory in the web server’s site, which is everything under /var/www/html/ (this is the "document root" of the web server). Note that everything under /var is visible only on its own host, i.e., topcat, so be sure to login to topcat before trying to access this directory. To use your hello.html, simply browse to http://topcat.cs.umb.edu/cs637/<username>/hello.html from anywhere on the Internet. (You don’t need a tunnel to access your web app because our Apache web server uses port 80, an open port on topcat.) To create this file, user joe can "cd /var/www/html/cs637/joe" and use "cat>hello.html< ... Control-D" as suggested for .forward, or, if hello.html is in joe's original cs637 homework directory, it can be copied here with "cp ~/cs637/hello.html .". Your web-server directory is private to you except for access by the instructor or grader or of course the web server.1. Page flows--UI analysis and design. Read about the Pizza Project,. This is the running example for cs636 (in Java) as well as the project for cs637 (in PHP). The last version, "pizza3", is the final web app, already implemented in Java so we can see how it is supposed to work. See pizzaUI for images of the 9 major pages (not including error pages) of the web app. Study the pages and see how a user can navigate among them. Read pp. 463-464 in Duckett about the related topic of wireframes. Draw a page flow graph of the pages as navigated, with arrows showing use of links or buttons to get from one page to another. Each page is drawn as a rectangle with its links drawn as line segments and buttons as little boxes. Text inputs show as narrow rectangles. Radio buttons and check boxes also show. In other words, show all user input controls, plus important data tables, but don't worry about representing the lines of text of the static HTML. Draw the arrow from the link or button to the outer rectangle representing the other page, or back to this page. For an example, see Chapter 4 product manager page flow (just the bold parts). There are 9 major pages in this pizza app: Home, Manage Toppings, Add Topping, Manage Sizes, Add Size, Manage Orders, Manage Days, Student Welcome, Pizza Order Form, so there should be 9 nodes (rectangles) in your graph, with arrows between them as appropriate.You can skip representing the links to Home and Student Orders that appear on every page (to simplify the diagram), but you should think about how they allow additional page navigation to users.
. Draw the communications diagram using slide 22 of the Chapter 5 slides as a model. You can drop the "server execution" note, as resulting in what shown in this image. Note there is no REDIRECT involved in this interchange, but there would be if we considered the delete-topping scenario.
3. Study the script for building my_guitar_shop2 on pp. 568-571 (574-577 in ed. 3)and online in book_apps/_create_db. The online version has inserts as well as create tables.
4. SQL. Load both textbook databases into your mysql using _create_db/create_db.sql if you haven’t already. Write queries on my_guitar_shop2 as follows and show the queries and their output in your hw paper. You can use phpMyAdmin to try out the queries, or write a .sql file and use mysql at the command line. For queries, report the SQL and results, if any.
6. A Little start on pizza1. pizza1_setup has a start on the toppings manager. Finish this part of the project by adding the capability of adding a new topping. Follow the implementation of adding a product to ch05_guitar_shop: add a function add_topping to topping_db.php. See product_db.php, listed on pg. 171 (either edition). Then call add_topping from topping/index.php, just as add_product is called from product_manager/index.php, shown on pg. 173.
By midnight, Tuesday, March 6, deliver your project to your Apache directory on topcat.cs.umb.edu, /var/www/html/cs637/<username>. See problem 0 for more information about accessing this directory. Once it’s running, add another topping of your choice. See http://topcat.cs.umb.edu/cs637/eoneil/pizza1 for pizza1_setup deployed using eoneil1's mysql database.If you have trouble with the delivery, please see me during office hours Wednesday, March 7.
Make sure that your directory structure looks like this:
/var/www/html/cs637/joe –top level directory for user joe
/var/www/html/cs637/joe/pizza1 – top of pizza1 project
/var/www/html/cs637/joe/pizza1/topping/index.php one of the project files
… all the other files of pizza1