Photo Album Hosting Application
Java web-based photo hosting application by Steve Kuo
Hosted at

Photo Album is a complete web-based picture hosting application. Using this application, one can upload, organize and present their pictures to the public via the Internet. Album and picture descriptions can be added, picture display order specified, and detail viewing statistics tracked. Individual user accounts allow for concurrent multi-user hosting and access control. All functionality is accessible via a standard web browser.

I initially started development of this application to host my 2001 Taiwan and Australia trip pictures. I found that many of the public hosting services (Photopoint (now defunct) and Yahoo Photos) didn't meet my requirements. So as a solution to my own hosting needs as well as a software development exercise, I started work on Photo Album.

A brief feature list of Photo Album: The application is implemented using the Java 2 Enterprise Edition (J2EE) framework and MySQL database. I chose Java for the following reasons: Most suitable framework for web application development (at the time I start the project). Recent experience using Java while at Insweb Corporation. Ability to develop under Window and deploy on Linux.

The application is written in Java using the Servlet/JSP framework. MySQL relational database provides storage for all persistent objects (albums, images, view count, etc). HTML is used for the user interface. JavaScript for the UI is still being considered. For now, the application needs to support all browsers including those without JavsScript. The application is currently hosted on Linux using Apache web server, Tomcat application server, and MySQL releational database. In the past I have used Resin to host the application.

My development platform is using Sun's JDK on Windows with Tomcat. All source code, database scripts, and design documents are under source control using Microsoft Visual SourceSafe.

While not immediately apparent from the visitor's point of view, the application is quite complex. This is not your simple store-to/read-from database application. Rather it's very class/object centric with little processing done in the UI classes (your classic tiered architecture). The database acts as persistent storage for selected objects. There are currently about 80 java source code files and 12 database tables. I intend to make public on this website the architecture and design of the application including the object diagrams, database schema, and selected source code.

Future enhancements might include wireless device support, international language support, email notification of new pictures, and EJB on the backend. I may also make the application available via open source.

Thank you for taking interest in this application. Feel free to email me with any comments or questions.

Steve Kuo
Email address
Photo Album hosted at

All content Copyright © 2003 Steve Kuo. All rights reserved.