TOMfite eph-stop
Course Information

CS365 - Database Design and Management
Dr. Yolanda Reimer
Final Project
March - May 2006

Project Overview

Eph-Stop is a ridiculous recursive acronym that stands for Eph-Stop PHP HTML Sharing Technology of Photos. It is a photo-sharing web application similiar to sites like Flickr or Zooomr. The project was split into two parts: database specification and applicaiton implementation. The project runs off of a MySQL database that contains 14 tables to keep track of photo, photographer, camera, tag, and grouping information. The web application front end is built from PHP and allows users to log in to see their photos as well as photos from other users with similiar tags.

Features
  • Allows users to upload photos via a web interface
  • Users can specify photo information such as title, description and location taken
  • Users can assign grouping information, categories and tags
  • Web application automatically extracts EXIF data from photos taken with a digital camera
  • Allows users to edit photo information or delete photos
  • Photos can be searched for by tags and categories
  • On-the-fly image thumbnails using PHP functions
  • Supports multiple users
Technologies Used
  • Interface written in PHP
  • Utilizes a MySQL database backend
  • Inline SQL queries in PHP pages
Reflection

For the amount of time I had to complete this project, I felt like I accomplished much more than I thought I would be able to. Originally I had thought that I would not be able to allow users to upload photos as it would be too complicated for the interface. However, after researching PHP's capabilities I found that it wouldn't be too difficult to do. I was able to implement most of the key features of a photo sharing application. One feature that I didn't get to implement that would have been very interesting was the rating system. Users would be able to assign a rating (1 to 5 stars) to photos, and users could view the highest rated photos on the site.

I learned quite a bit about PHP programming with this project as well as advanced database design, such as foreign key constraints and cascading deletes and updates through them. If I were to do the project over I would try to make use of stored procedures for the database, as it would better encapsulate my presentation layer from my data layer. I also would have liked to make the interface a little more polished, and clean up the design a little bit.

Back to Computer Science projects