Signature in Vivaldi

return to coursework

INET 2005

Web Application Development I

90 credit-hours

This course was basically a PHP sweatshop in which we were locked in a computer lab and forced to work 20-hour days and sleep on lined-up workstation chairs.

Okay, that is a slight exaggeration. And this was also a great course for producing soup-to-nuts web applications that were basic yet the foundations of grander things that somebody might actually want to use. That kind of thing doesn't just happen on its own; it requires a significant commitment.

I exhibit here two of the four major deliverables from the course: An employee-and-salary lookup table using ZEND Framework 1.12 and MySQL, and a simple, custom content management system I call EZ-CMS.

Employee Lookup with ZEND and MySQL

In this exercise, we took a database of employees and created a simple CRUD web application in the ZEND PHP framework. It was interesting because we'd previously built a similar PHP application for the same database, but without a framework.

I'll always remember this assignment because it precipitated my first question on StackOverflow. The ZEND framework removes a lot of the drudgery associated with building forms and replaces it with the frustration of trying and failing to customize the form components to your needs.

There is a lot of boilerplate and housekeeping with ZEND - although I was able to deliver an assignment I was happy with, I don't have any desire to use ZEND (or PHP!) again. Still, learning to use anything new eats time before it saves time.

"EZ-CMS" Content Management System

For this project, we were required to use PHP to build a working Content Management System from scratch. It was an ambitious project, and planning and time management was critical.

There was a lot of labor involved, because making a back-end pageset to perform CRUD on an entity was almost an assignment in itself, and there were several entity types to manage, including pages, users, articles, and templates.

I built the site manually in MVC, which helped me shore up my MVC conceptions, but the controller was difficult to manage because all of the different types of requests had to pass through it. I don’t think I will try manually implementing MVC again because managing paths and scopes was a nightmare.

The following semester, I got myself learning Django, and the experience of working with MVC in PHP helped me to recognize the model, view, and controller equivalents in Django. I built a poll application following the tutorials (which, though complex, were a breath of fresh air compared to the introductory guestbook tutorial for ZEND), and I didn’t have to write a single line of SQL. You could also extend a basic Django project to become a CMS if you set up the right models and views (or install django CMS).

- - -

Assuming you have intimate access to a server running PHP and MySQL, these downloads should contain everything you need to run my projects. In the case of EZ-CMS, a list of potential improvements is also included. The employee lookup download is huge because there are a lot of employees in the sample database - the script to recreate the employees and their salary records is 140MB when uncompressed! As for EZ-CMS and its much smaller download, there are only a handful of records of each of artciles, areas, templates, and users. It also does not require ZEND or any other framework, so it might be the easier project to demo.

My projects regularly made use of Andrew Zhebrakov's "Blueberry Basic" icon set.

Employee Lookup with ZEND and MySQL "EZ-CMS" Content Management System
Sceenshot of employee table - click to enlarge Screenshot of EZ-CMS frontend - click to enlarge
Download: 24.7 MB (ZIP) Download: 391 kB (ZIP)