CSc 337 - Web Programming > Assignments > Assignment 15

General Information

Due: 9 Apr 2012, 11:59pm

Abstract

This project spans three assignments to create an image uploading and viewing system. Users will be able to create and have accounts, to upload images, to view images that they have uploaded, and to view "public" images that other users have uploaded.

In this third assignment, you will use AJAX to create a better user experience by navigating from one photo to the next and by setting photos as public/private, all without reloading the page. If you like, you can use the Instructor Solution for HW14 as a starting point.

Assignment
  1. Users should be able to mark their photos as public or private using AJAX.
  2. Users should be able to browse through their full-size photos using AJAX and click "next" or "previous" to view other pictures. This can be a separate browsing page or a popup as before.
  3. Extra Credit: JavaScript's History API should be used to make for a cleaner navigation experience (such that, if the page is reloaded after navigating with AJAX, the same picture is still showing, and if the user presses the "back" button they navigate backwards.)
Hints

Similar functionality to browsing pictures with AJAX was demonstrated in lecture with the blog example. Code from that example can be found at http://qxlp.net/cs337/examples/ajax/ (see blog_*).

Notes

Throughout this project, we will be looking for valid handling of edge cases and correct protection against security issues that have been discussed in lecture. Polite error messages are expected when the user attempts to perform an invalid action.

In addition to jQuery, you may also use History.js in this project.

Homework Submission

As detailed on the homework submission page, this homework must be on the class web server in a folder titled homework15 for it to be graded.