This project is for a very simple website utilizing PostgreSQL, Hibernate, Java, and GWT to allow users to transfer files to each other. The requirements are: 1) There must be a form to upload a file and attach a comment to it 2) There must be a progress bar for the upload (GWT is preferred) 3) The file upload page must return a URL to which another user can browse to and download the file (ie. [url removed, login to view]) 4) The user must have an option to password protect the file 5) The user must have an option to have a time limit on how long the file is available (ie. x number of days, must be less than the max time in requirement #7) 6) The database must keep track of where a file was uploaded from (IP), the time and date the upload started, the original file name, the file size, and the time and date that the upload finished 7) There must be a mechanism the purges all files after a maximum time limit (ie. 7 days) 8) The site must run on Tomcat 6 9) All files will be stored as blobs in the PostgreSQL database The deliverables are: 1) A working Eclipse project and all code (including code for the upload component) 2) Installation instructions 3) A script to install the database The user interface should be as bare as possible. That will be implemented and designed by a graphic designer at a later date. There will be six pages: 1) Initial site splash page with a link to the upload page 2) The upload page with fields for the description and a mechanism to upload the data (one file at a time) 3) The upload finished page that shows the unique URL for the file to be downloaded 4) The download page showing the description of the file, the size, date, and direct download link (ie. [url removed, login to view]) 5) An error page indicating the user has entered an invalid URL or an invalid file password 6) An expired upload page showing the user that the file they're trying to download has expired Servlets should be written to handle the main URL to the site ([url removed, login to view], [url removed, login to view]), the upload page ([url removed, login to view]), the upload finished page ([url removed, login to view]), the direct download page ([url removed, login to view]), the download page (all URLs that don't match the above but correspond to an uploaded file), and the error page (all URLs that don't match any of the above or correspond to expired files).