This is the type of project that can easily derail a developer and leave you with an end result that is less than satisfying. Like most projects with a large scope, the data model was massive, relationship intensive, and presented many architecture challenges. On top of the project itself, we were also launching our internal programming framework and used Osteogenics Biomedical as the inaugural site.

Our first goal was to tackle the database by organizing like-items, start forming relationships, and normalize the data. We typically shoot for mix of 2NF and 3NF (where appropriate and makes sense), but some items, like discount codes, left me thinking "Should I build this only to spec or build with the ability to expand".

Next was the actual code. As I mentioned, we were using our brand new framework and it presented it's own set of challenges. Will our simple MVC architecture scale? How will it impact development time? How will we cleanly support all the custom discount codes? All of this is running through my head as I am programming.

I knew we were doing something right as I got into the eCommerce portion of the site. The framework aided in reducing code redundancy on similar processes like applying a discount code when entered, applying it again when new product is added to the cart, applying if a product was removed, quantity changed, or even if a new shipping method was selected. Reading that statement may not provide a "wow" factor, but from a code-point-of-view, I knew that discounts were solid and it was thanks to a little pre-planning and our framework.

Looking back now that the project is complete, I must say I am extremely satisfied with the quality of the code and how we worked out some the harder relationship issues. Just recently we added a new discount type and because of the structure we were able to do it quickly and cleanly. It just goes to show that if you get the data model right, everything else falls into place.


COMMENTS

Post a Comment

  1. (you can post your real name, a username or leave blank for an anonymous post)

Comments support these basic HTML tags: <a>, <strong>, <em>