In early 2016, I enrolled in a Senior Design Project course at UAHuntsville. During the first few sessions, I was assigned to a team of three others. Our goal was to create a Ticketmaster-like site for local performing arts theaters in Huntsville. We were given a list of 20 business requirements for the resulting website, and were required to complete work within 14 weeks, which were split into 5 different sprints according to Agile Development.

As a team, we decided to use CakePHP, which is a modern model-view-controller framework for the PHP server-side programming language. We also divided up team roles between us. I was in charge of designing and implementing the website's user interface, although I also did many other tasks towards completion of the project. This web page documents the process that I went through in designing the website, and provides screenshots and links to the work that we did as part of the project.


Drafting Phase

The first step in my design process is always to read and absorb the requirements. A physical copy of the project prompt in hand, I studied it and took notes. Once I had a firm handle on what was required for the project, I started making my first rough design mockup.

Adobe Illustrator is my prefered graphics program of choice. I fired up Illustrator and began playing with possible layouts. I eventually came upon a structure which fit my concept of the requirements well, and I sent a copy of my progress to the other team members for discussion and feedback.


After much discussion, we decided to adapt the design in several ways. The initial design does not include a list of actual products on the homepage, only a list of plays that are currently running, and a list of theaters that sell tickets through the website. To restructure information in a way that gave the user access to the information they were looking for more quickly, we decided to add a few more pages to the design.

I opened up Illustrator and resumed work. The second draft of the website design would provide a page listing all tickets currently for sale, and a homepage with quicker access to the same information.


Design Implementation

In implementing the project, we decided to use my favorite PHP IDE of choice, JetBrains PhpStorm. After creating the CakePHP project and importing it into a GitHub project, we began work on the site. I focused on creating the views: HTML, JavaScript, and a good amount of PHP. At first, we used placeholder controllers that passed sample content to the views. As the database model was developed, we replaced the controller stubs with database-driven code.


Development on the project continued for several more months. Today, the project is nearing completion, and will soon be turned in. Both the code repository and the website itself are publicly accessible. To view the project's code, or try out a live demo of the website, please check out the following links.