deanwagner

deanwagner

The Front-End

Website Showcase

In the design I used inline SVG markup to create the images dynamically in the browser. This allows me to manipulate the various attributes of the images with JavaScript, as they now reside within the DOM. This can be seen in action with the Color Picker at the top-right, where I animate the gradient colors of the SVG graphics on click events. I accomplished the logo purely through CSS. Aside from images being displayed as content, the only raster images used in the design of this site are the little Social Media icons in the Contact section, which are base64 encoded straight into the stylesheet.

The Back-End

Source Code Screenshot

The site runs on a PHP framework that I have developed over many years myself. When I initially began developing it WordPress didn't exist—the term "blog" had not even been coined—and the existing CMSs at the time were just terrible (remember phpNuke?). The framework has been Object-Oriented since not long after the release of PHP4, and I have consistently maintained it, updating it to incorporate all of the new features with each iteration since.

I designed the framework as a means to run multiple websites all off the same core codebase. I was tired of having to make multiple updates across all of the various websites I managed whenever I wanted to add a new feature or a third-party changed their API. It is set up so there are multiple public directories in the root directory and each one is routed to unique domains through Apache. The core codebase also resides within the root directory. Each "site" consists of a configuration file that defines the attributes of the site, an index.php file which initializes the framework, and individual packages specific to that site. Packageswhich are grouped classes that extend from the core codebase and add content.

The modules also contain all CSS and JavaScript resource files relevant to them, making the system extremely modular. The framework automatically scans for resource files when the module executes and they are all gathered and compiled into single files, minimizing HTTP requests. As they are complied they are also parsed, allowing PHP to be embedded into the resource files. CSS preprocessors like SASS didn't exist when I started working on this framework, so I built my own right into it.

Third-Party Code

As proud as I am of what I am able to accomplish on my own, I am certainly not some elitist apposed to using third-party code. In a typical production environment it makes much more sense to go with well-established frameworks—for both the reliability of extensively tested code, as well as the documentation and familiarity for other developers who may work on the project after you.

On the front-end side, I have done plenty of work in jQuery and React, just to name a couple. On the back-end, I have worked extensively in WordPress and Drupal, less as much in a few others. I am not married to PHP, either. I have the most experience working with it, but I'm comfortable working with everything from ASP.NET to Python; as well as compiled languages, from C# to Java.