Andrew Hood

Web Developer


Andrew Hood is a full-stack web developer from Toronto, Ontario. Andrew regularly works with several web programming technologies, including: PHP, MySQL, JavaScript, jQuery, HTML, CSS, Smarty Templates, AJAX and various APIs. Andrew also occasionally uses PhoneGap, Python, ASP.NET, C#, XML, CakePHP, Silex & Twig. Some examples of projects Andrew has worked on are listed below.

PHP MVC Frameworks

Silex - Simple Blog

This basic blog system is designed using the Silex micro PHP framework for its architecture, Twig for the views/templates and Composer to install the necessary dependencies. Twitter Bootstrap is used for the simple responsive styling and a MySQL database is used to store the articles. The code is available to be viewed on GitHub.

CakePHP - Submission Portal

This application makes use of the CakePHP MVC framework to create a CRUD style application that allows teachers to submit cover letters and administrators to approve or reject them. Information is displayed based on who is logged in. It also incorporates some AJAX using jQuery.


Messenger Portal

This team project is designed to meet the requirements of an online home-school service. It is coded with plain PHP and uses an MVC design pattern. Also uses MySQL, JavaScript, jQuery and Bootstrap for UI. The app is designed as a portal for Administrators, Teachers and Students. Admins can complete CRUD tasks on the database. Teachers can respond to and edit messages from students. Students can send new messages to the teachers. Users can move the different messages to different inboxes.

App Portal

This is a website designed to feature useful web and mobile applications that I develop. Designed using PHP, JavaScript, jQuery, HTML, CSS, Twitter Bootstrap, AJAX and an MVC design pattern. Individual applications use varying technologies. Implements a custom registration & log-in system with CAPTCHAs, email confirmation, password hashing, and persistent sessions. Some applications on the site are listed below.

Word Processor

This app makes use of the "rangy" API to allow for cross-browser compatible DOM text selection and editing with jQuery. I implemented this API to create a simple word processor with various features. Users can save their document online to a URL, and save it to their account if logged in. Makes use of AJAX for all the features including auto-save.

Random Number Generator

This app outputs random numbers to the user based on the options they choose. Gives the user the option of generating strong random numbers using the openssl_random_pseudo_bytes() function, or faster numbers with mt_rand(). Allows very large numbers to be created by using the BCMath library. A variety of other options are available for the user to choose from which modifies the output. AJAX is used to send the results to the user.


This app allows a user to enter text, choose an encryption algorithm and passwords, and encrypt the entered data. It outputs the encrypted information to the user who can then decrypt the information using the same app with the passwords they chose.

Article Summarizer

This app is designed to accept a text input from a user and outputs a "summarized" version of it to the user using AJAX. The algorithm currently takes the first sentence of each paragraph and outputs it to the user.

List Sorter

This app takes any input, identifies the "words" by the spaces or line breaks and then sorts it alphabetically or by word length and outputs it to the user. Uses PHP, JavaScript, jQuery, AJAX.

Character Counter

This application counts the number of individual characters/letters/numbers/spaces of a text input depending on user selection. Can also count a specific character identified by the user. Uses PHP, JavaScript, jQuery, AJAX.

Word Counter

This app counts the number of words in a document submitted, as well as calculates the number of unique words and the word density for each word. Optionally the user can limit the output to display words with a minimum number of letters, or that appears a minimum number of times. Uses PHP, JavaScript, jQuery, AJAX.

Word Wrapper

This simple app takes a text input and outputs the text wrapped to a user-specified number of characters. Also has the option to let words longer than the max-width to overflow or to break. Uses PHP, JavaScript, jQuery, AJAX.

Ticket Shopping Cart

This example project also uses a plain PHP MVC design pattern and MySQL to create a shopping cart system. All "events" from database were listed dynamically. Users can register and log in, add tickets to their cart and check out. Orders are saved in the database as well. Sessions use cookies and are backed by the database.

Image Upload Portal

This project uses PHP and HTML5 upload technologies to create an admin-side upload portal. The admin can upload multiple files at once to the server. Files that are newly uploaded are "untagged" and can be immediately displayed below with AJAX using jQuery. Data related to the images can be edited and saved. Uses both server directory authentication and in-app authentication.

To-Do List

This project uses a plain PHP MVC design pattern, MySQL and AJAX calls using jQuery. Users can add new tasks to the database and delete/complete tasks. Users can also refine the list without the page ever reloading/refreshing.


Coin Collector's Blog

This project uses the latest WordPress and makes use of a pre-built theme that I then customized and modified. I also added a contact form and article submission plug-in which I edited as required.



This project uses ASP.NET, C#, HTML and CSS. Inventory data is stored in XML files on the server and pulled to dynamically fill the pages of the test store with content. Items can be added to a cart that is saved during the session, and items can be removed and edited in the cart as well. ("" was just an example domain name, I am not affiliated with the owners.)


JavaScript Spreadsheet

This project uses JavaScript, HTML and CSS to generate a spreadsheet table. It uses a corresponding array to save data entered and rebuilds the spreadsheet table after edits. It also features the ability to save and load spreadsheets to/from a text file on the server using C#. A SUM formula can also be entered which automatically sums a specified set of rows horizontally or vertically.

Google Maps API Project

This project is designed using ASP.NET and C#, but primarily makes use of JavaScript and the Google Maps API. You can zoom in on your current location using your browser's location services. You can add new markers to the map by clicking anywhere on the map. The markers automatically generate latitude, longitude and address information. You can edit the info and give the marker a title. You can delete or de-select the markers, clear the map, optimize the zoom to just contain all markers on the map. You can save the current set of markers to a file on the server in JSON format and reload it later. Also features a responsive design using CSS and media queries.


This simple "paint" application is coded with HTML and JavaScript. It demonstrates dynamically adding styles to a grid of divs generated by JavaScript to give the effect of painting/drawing on a canvas.


GPS Locate Free

This is an Android application compiled using PhoneGap Build and developed using HTML5, CSS, JavaScript and the PhoneGap library. The app allows you to capture various details about your current location once or on an ongoing basis using your Android device's built-in GPS.


Bus Stops

This project applies an XSLT stylesheet to an XML document to generate an output. Written in C#, it first accepts an input from the user through a console, and then modifies the XSLT dynamically before loading the XML in the browser.


LinkedIn: Andrew Hood

Send Message