Project 3 - A Bulk Upload Tool for Google Documents

Due Friday 4/3 - 5PM

The goals of this project are as follows:
  • gain experience with design and exception handling
  • gain experience reading and following the documentation for existing libraries
  • practice Java Swing and event-driven programming   
  • practice using the GData library
For this project, you will build a graphical program that allows a user to perform a bulk upload of files to his/her Google Documents account.  The GUI you design will look similar to the following (you may certainly make your GUI look nicer!):

Your program will operate as follows:
  1. The user selects a directory on his/her local file system using the JFileChooser component.  Once the user selects a directory, he/she may change his/her selection by choosing the Select Directory button again.
  2. The program displays a list of all files that appear in that directory or any directory that is a descendant of the selected directory.  Limit the list of files to only those files that end with the following extensions: html, txt, doc, rtf, odt, sxw, ppt, pps, csv, xls, ods
  3. The user selects one or more files in the list.  Multiple files may be selected by using the command key.
  4. The user enters his/her Google username and password and clicks upload.
  5. The program retrieves the list of selected files and uploads each to the Google account specified by the username given.  Display the status of the upload (successful or not) in a text field.  
It is strongly recommended that you begin by designing the classes you plan to implement for the project.  For each class, identify the data members the class will contain and the methods the class will support.  Think through the algorithm for each method.  Meet with the instructor to discuss your design before you begin implementation.

Submission Instructions