COSC 617: Advanced Web Development

Course Home

Schedule

Notes

Readings

Assignments

Project

Midterm

Fall 2007 - Assignments

All assignments should be submitted by email by 5pm on the due date. It is your responsibility to ensure that items are sent on time: network problems or other technical difficulties are not my responsibility.

Some of these assignments ask you to provide screen shots of your web interface.There are shareware and freeware tools available for Mac, Linux, and OS X that can be used for this purpose. I personally use the screen capture facilities in the GIMP software, which also supports editing, resizing, and retouching of images.

Please keep in mind that the class project has additional due dates: the proposal is due on September 18, the design is due on October 16, progress report is due on November 13, presentations are on December 11, and the final report is due on December 17.

Assignment 1: Extending the Rails Store Due October 2

This programming exercise involves extending the functionality developed in the store application from the textbook. For each of these exercises, design, implement and test code to meet the stated goals.

Note that some of these exercises are based on suggestions from the text, and these exercises may have specific solutions posted on the web. Answers that are sufficiently similar to these posted solutions will be examined for evidence of plagiarism.

For each of the following exercises, submit a description of your solution, relevant code, and screen shots. If possible, point me to a live server where the code is running.

  1. Complete the first "playtime" exercise at the end of chapter 7 in the text (page 102): add a date and time indicator on the sidebar. This field should only update when the page is refreshed - not with each second.
  2. Complete the second "playtime" exercise at the end of chapter 7 in the text: change the application so that clicking a book's image will invoke the add_to_cart action.
  3. Some books may not have pictures. Modify the product model to allow the picture to be optional. Modify the catalog display for a product to not display a picture if it does not exist.
  4. Modify the shopping cart to show a picture of the book, if it exists.

Assignment 2: More Extensions Due November 6

This assignment is similar in form and content to Assignment 1. For each of the following exercises, submit a description of your solution, relevant code, and screen shots. If possible, point me to a live server where the code is running.

  1. Complete the last "playtime" exercise at the end of chapter 9 in the text: add a "remove item" link to each item in the cart. This link should decrement the number of the given item contained in the cart, removing the item from the cart entirely if the count is equal to zero. If the last item is removed from the cart, the cart display should be removed.
  2. Revise your solution to the first problem to use AJAX to update the page dynamically without a full reload.

Assignment 3: Technology Evaluation Due November 27

This assignment involves comparative technology evaluation - a somewhat frqeuent task for professional software developers. The scenario is as follows:

You're working on web-based systems, and your boss comes to you with a concern. All of your recent work has been based on Ruby on Rails, but there are many other new and powerful tools that might provide better performance, ease of use, or scalability. As your employer's reputation is based on the use of the most powerful and appropriate tools, your boss feels that it's very important that you remain knowledgeable about the ins and outs of new developments. So, she asks you to compare Ruby on Rails with an alternative.

To do this, you are going to take the following steps:

  1. Identify an alternative to Ruby on Rails - possibilities include PHP, Microsoft .NET, Java J2EE, TurboGears, and many others.
  2. Download and install the appropriate software components.
  3. Build a small application that will demonstrate the use of the system in action. This application should include the use of a database for the storage and management of application data.
  4. Write a short paper (<5 pages) describing the tool that you're evaluating, the test that you used to evaluate it, and what you learned from the evaluation. This report should include detailed discussion of the pros and cons of the framework that you're evaluating, as compared to Ruby on Rails. Be sure to include recommendations indicating which (if either) tool you would suggest for future use, and why.