Friday, May 29, 2009

Project Introduction and Status

The BuyLocal project has been active for over a year at this point. Over the past year, two undergraduate students, Aaron Ryden and Mike Pennisi, created the current BuyLocal website (http://www.buylocal.rpi.edu) as an open source project. I (Kevin Fodness) took over the project at the end of the spring semester, and have been working on it under the Rensselaer Center for Open Source Software (http://rcos.cs.rpi.edu, down at the time of writing due to technical difficulties). The project was created to establish a web space whereby locally owned, independent businesses could list their locaion, contact information, hours, and specialty, and optionally inventory, so that members of a community could search for a category of goods or a specific item in their local community to avoid using the mega-retailers. The project has the potential to branch out into other community-oriented activities, such as community-oriented mapping projects, in the future.

Here's where I come in. The website is fully functional as-is, but lacks the polish necessary for a public release as an open source project. I have an extensive background in web development on PHP/mySQL (which is what BuyLocal is written in), and I will be using this expertise and additional research to implement the following changes to the current codebase:
  • Changing the doctype to HTML 4.01 Strict, and ensuring all HTML validates properly;
  • Ensuring all CSS validates properly;
  • Eliminating inline CSS declarations wherever possible;
  • Establishing a more secure / best-practices directory structure;
  • Fully separating form from function;
  • Implementing PEAR PHP coding standards;
  • Implementing phpDocumentor documentation tags and generating documentation;
  • Fully commenting / documenting all code;
  • Cleaning up database design / implementing best-practices & normalization;
  • Testing the layout on a wide variety of browsers on a wide variety of platforms;
  • Implementing the recommendations in the Web Accessibility Content Guidelines.
Once these changes have been made, I will release an updated version of the code to the Google Code page (http://code.google.com/p/buylocalopensourcerensselaer/).

I have just recently finished rebuilding and rebaselining my browser test environments, setting up a DEV site for BuyLocal for me to work on, and tracking down and reviewing the PEAR standards. I still need to review more information about object oriented PHP best practices, since I am an old-school procedural programmer, and BuyLocal is written using object oriented PHP. I hope to have an updated version of the BuyLocal codebase released at the end of June or beginning of July.