I had worked with Justin before on revamping his Free Clep Prep website.
This time, however, he was looking for something a lot more ambitious—an application that would allow users to prepare degree plans detailing all of the CLEP/DSST exams they would need to take in order to gain enough college credit to earn their degrees.
This was a complicated project as the universities all had different courses and requirements so it needed to be super flexible. Given his large existing user base, it also had to be scalable.

The Test Selection Screen
I started, as always, with research. I looked through all of the catalogs that the different colleges had to get an idea of how they structure their degree programs. I also had long email conversations with the ever-patient Justin as I wrapped my head around all of the nuances of this project.
Then I set to work designing the database. In order to make it scalable, I harnessed the power of the ‘R’ in ‘RDBMS’ (Relational DataBase Management System), making sure that pieces of data only appeared once in the database (also known as ‘normalizing’).
Having multiple users, multiple schools with multiple degree programs and many tests that had to span degree programs and schools meant that planning the data structure was critical in order for the application to be quick, scalable and flexible.

The Application's Degree Plan Page
Having designed the data structure, it was on to the construction.
Because of the nature of the content, it made sense to build the application using Object-Orientated PHP as objects could be used to represent the various elements—schools, degrees and tests. This would allow a great deal of flexibility.
Once the foundation was there, it was on to the fun stuff! Justin had said that he wanted certain JavaScript effects (e.g. the test name to be scored out when the user marked it as done) but because of JQuery UI’s power I decided to throw in quite a few neat little features to make the user interface easier to use and more instructive.
This was my first attempt at building a fully-featured web application from scratch and was certainly a learning process but both Justin and I are very pleased with the results. Hopefully it will help many people on their paths to achieving their degrees.