About the Water Quality Information Application:

IMPORTANT! You should be aware that this is still a work-in-progress. Some of the aesthetic features are not yet in place, but they should be very shortly. As this site progresses, I will take every step possible to ensure the quality of the data presented. Note, however, that the goal of this site is to provide a service, not to take responsibility for the data. If you have any questions about the data presented on this site, or questions about water issues in general, please go to the U.S. Geological Survey website or specifically their water website. As soon as possible, I will add informative links on the main map, related to water quality and conservation issues.

Why?

I had the idea to build this site after I did some database work for Dr. Li Chen, one of my professors at the University of the District of Columbia. Dr. Chen had asked me to build a database of water information for the DC area using data from the USGS National Water Information System for a project that he was doing with the D.C. Water Resource Research Institute. As I collected the data for Dr. Chen's project, I was curious to see what data the USGS had for my neighborhood. The more I worked with the data, however, the more I realized that this was a difficult proposition. What DC residents needed, I thought, was a map that pinpointed these locations, and a way to find the closest ones to where they live. So, that, in essence, is what I've created.

How?

Building a web application like this requires three parts:

  1. A database
  2. A front-end application (with a nice map)
  3. A layer to bridge the database and the front-end application
In order to talk about each of these three pieces, a brief introduction to the technologies used is in order.

Technology:

Platform

This site was built, as much as possible, using free/open source software. I developed the application on a laptop running Ubuntu Linux.

Database

The database application used in this project is MySQL. This application is a good choice because it has good integration with web application frameworks (such as Ruby on Rails), and, since my web hosting service also provided MySQL, I didn't have to modify the database when I put the application up online. I had to do a little work to get the raw data from the USGS into a form that was suitable for my database. Primarily, these changes were aesthetic, such as cleaning up the site names.

Web Application Framework

To build the site, and the bridge between the site and the database, I used Ruby on Rails. Ruby on Rails combines the Ruby programming language with a powerful web application framework called Rails. Rails provides the database abstraction, allowing a developer to focus on the user interface, rather than the database integration.

The Map

The map itself, along with the geocoding functionality, is provided by the Google Maps API. Google provides a series of JavaScript functions that can be integrated into an application. Not only do the maps provide a geographical reference to the data, but the API also adds search functionality to find the latitude and longitude for an address.

Ajax

To help make the site fast and functional, I chose to incorporate some Ajax elements into the site. Some would argue that these elements are more eye-candy than functionality. However, this functionality gives the site a couple of distinct advantages: first, clicking on a link only refreshes the target element, not the entire page, which saves time; second, the ability to move the windows allows the user to put elements where they want them to be, especially if they get in the way.

Final Thoughts:

After browsing the information available on this site, I'm struck by how little information is actually available. Obviously, since I have the information in a database, I've taken a look at some of the statistics, but it is different when they are put into perspective. Fortunately, this site is more than just a tool for viewing the USGS data — this is really a framework that can handle multiple data sources with very little modification to the database layer.

About:

About me:

My name is Travis Branham, and I'm a sophomore at the University of the District of Columbia, working toward a BS in Computer Science.

Mentors:

I've been helped by the following individuals at UDC: Dr. Li Chen, Professor, Computer Science Dept.; Dr. Ester Ososanya, Professor, Electrical Engineering Dept.; Prof. LaVonne Manning, Professor, Computer Science Dept.

Thanks!

Thanks to the USGS, the Google Maps team, the Ruby developer community, the developers of the Ruby GeoKit, "fabio" at railsweenie.com, and the faculty and staff at UDC.