COSC3461 - Assignment 3
HTML Photo-Album CreatorFall 2003
Your assignment is to create a Java application for an HTML Photo-Album Creator. The user is somebody who has a collection of images they want to put on a website. The user specifies the directory where their images (e.g., .gif, .jpg, .png) are located. Your Java program must read the contents of the directory, identify the image files, and produce HTML files that facilitate viewing the images. Your program should allow the user to specify the directory where the HTML files are to be placed. Your program should start by creating an HTML file called “index.html” that is the root-page of the photo-album. More than one HTML file may be needed.The following image illustrates two components of this assignment. On the left you see the original image files (in a Windows directory) and behind and to the right you can see one of the images as it appears on the final website, as displayed by Internet explorer.
![]()
This project contains several opportunities for you to demonstrate good interface design. For example, there are features that may be useful to the users of your Java program,
There are also several features that may be useful to the other set of users – those that view the photo album, for example,
- a means to specify a caption for each image
- the ability to choose several, but not all of the images in a directory
- allowing images to be spread over several directories
- using FTP to automatically upload the HTML and images to an FTP account
- allowing the user to rotate images
- etc.
- a “Table of Contents”
- thumbnail images
- easy navigation between the images
- keeping the bandwidth requirements low
- etc.
Some notes:
- Your goal is to create a robust application with a good user interface. Make appropriate use of the various GUI components and features supported in JFC/Swing and HTML. Consider the organization, presentation, interaction, and over-all usability of your program, and of the HTML pages it produces.
- Don't forget who the target users of your software are.
- Your source code should be well organised and documented.
- You must do this assignment in groups of three.
- This assignment is due on Friday, November 28, at midnight.
- Do not use the york package.
- Your programs must compile and run on Ariel (the Prism computers).
- Be sure to read and follow the instructions given below on what to submit, and the format for the top of the intro file.
- The assignments will be awarded letter grades, according to the university's letter grade standard. A program that simply fulfils the requirements described here will be awarded a 'C'. To get a higher grade, we want to see "an excellent job and originality" in your assignment solutions.
- You may use any images you want to test your program. The marker will use this set of pictures when marking your assignment.
Name your program 'a3.java'. Submit it on Ariel with 'submit 3461x a3 a3.java' where 'x' is your section (A, or B). Additional files, if required, may be submitted using the same command, with the filename as the last argument. (Use 'man submit' for further details on using the submit command.)
Also submit a text file named 'intro' in which you describe the motivation behind your software design. Why did you use the JFC/Swing and HTML components that you did, and why did you organise them that way? Briefly justify your design. If your implementation includes any special features, make sure you describe these and provide appropriate instructions.
The intro text file should also contain a record of your group meetings. Include the date and time of each meeting, the people present, and the topics discussed. If other forms of communication were used (e.g., e-mail, phone), indicate the type and extent. Also include in your intro file a record of the tasks assigned and performed by each member of the team.
Note: the first three lines of the intro file must contain the following four comma-delimited fields, with nothing following the fourth field.
LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s) LoginID, StudentID, LastName, FirstName(s)