i. Title AJAX driven photo album ii. Author(s) Brock Arnold Sheldon Chan iii. Abstract We intend to develop a web-based photo album site, similar to sites such as flickr.com. However, in place of flash, we intend on using the power of AJAX to deliver a fast and dynamic application. iv. What The photo site will have the ability to handle a multitude of users. New users will be able to register with the site and upload images to their own section holding their own albums, separate from other people. Each user will have the ability to set different preference parameters, such as the default image size to be displayed to the end user, a color scheme for their album pages, and a they will be able to choose from a few canned layout options for their albums. These preferences pages will be saved in an XML backend data store, the pages will be formatted with an XSLT processor, and the images and text for the albums themselves will be downloaded asynchronously via the AJAX method while the end user is browsing the photo site. v. Why This project is interesting in that we are taking an existing application and applying advanced techniques to achieve the same general goal. Instead of using well defined technologies, such as Shockwave Flash or straight html, we intend to use AJAX to provide a robust user experience. The motivation for this project is to develop an intimate understanding for AJAX technology and to develop a web application that we can actually use as an end user. Additionally, since we both take a number of digital images, handling and sharing such images has been a tedious process. Experience with online photo albums have left something to be desired in both features and performance. We hope to try and address this user experience in our project. vi. How The Infrastructure AJAX - * Create a standards based presentation using XHTML and CSS * Create dynamic display interaction using the Document Object Model * For data interchange and manipulation, use XML and XSLT * To download information in the background, use asynchronous data retrieval using XMLHttpRequest * JavaScript to glue everything together Tomcat - * Use this as a container for the web apps, and use it as an HTTP server Java Servlets - * Using a similar approach as project 3, use java servlets to interact with the user -handles user input, outputs desired pages -handles user login, setup, settings changes, and uploading/manipulation of images -possibily use imagemagick to handle image manipulation? Or could use some sort of Java library XML backend on the server - * For a data store, use an XML backend to save data to disc. -catalog of users registered on the system -each users catalog of albums -preference pages -album information number of times viewed, number of times each image viewed, date uploaded -album structure? Will need to investigate the following: The AJAX method, exactly how it works, and the best way to present all of this information to the end user The best way to handle all of the different users, and how to setup the structure for the albums The best method of uploading images to the server. Should we make some sort of client application that uses XML/Soap to send images? Should we force the users to zip their images together and we can then unzip them on the server? Or should we just have it so that you upload one image at a time? There has to be a better way. Division of work - Brock: AJAX and Servlets/XSL Sheldon: XML backend and Servlets/XSL vii. Questions Is this scope sufficient for the final project? If not, are there any suggestions to increase the scope to satisfy the requirements?