This site was a huge undertaking. Most of my web experience is in backend development. This was the first time I completed a website, start to finish, covering every area of web development possible (well...other than scaling).

Server Setup

The site was originally hosted through Amazon Web Services (free tier) running an Ubuntu 12 server with the LAMP stack on an EC2 instance. Route53 was used to handle the domain and MX records. In April 2020, I decided to move away from AWS entirely, containerizing the site with docker and running that image on MassiveGRID using the Jelastic PaaS.

Backend

The entire backend is written in PHP using the Symfony2 MVC framework. Project content is all persisted with a Mysql database. The Liip Imagine bundle was used to handle thumbnail generation using the GD image library. Github is used for versioning and composer is used for dependency management.

Admin Section

Users and their encrypted credentials are stored in the database with the admin section requiring authentication. The admin section contains galleries, categories, and projects sections. Galleries are linked to projects, and projects are linked to categories. The nav bar will add links dynamically as categories are added. Images are uploaded to the server through the admin section. An IP tracking system was implemented for failed login attempts to block dictionary attacks on the user database.

Front End

The css is compiled using less and includes print media css for the resume page. JQuery was used to create the sliding project snippets on the front page and also the showcase section at the top. All pages should pass html5 validation (except for lightbox errors).

Host MassiveGRID
Server Debian Stretch Slim
Frameworks

Symfony2

JQuery

Less

Langauges

PHP

Javascript

SQL

Responsibilities

Back End

Front End

Source Code

Github