Tag:

Web Application

A web application is a software application that runs on web browsers, allowing users to interact with it through the internet.

Web applications can range from simple websites to more complex platforms, providing various functionalities beyond the display of basic information.

Web Application Projects

Development of Behat Testing Tools
-

While working at Eelzee Solutions, I assisted in building an automated testing application utilizing Behat and Node.js.

This involved building an interactive tool via Node.js to run via command line which can be used to discover and run specific tests based on specific criteria.

The testing utilized a custom framework that was built to help tightly integrate Drupal and easily create mock site data to assist in testing.

Finally a custom test reporting tool was built to help output desired metrics to CSV files.

Technology
Behat
PHP
Node.js
Javascript
Symfony
Camping Karaoke Website
-

A passion of mine which has been growing over the years is Karaoke, and not just Karaoke but the rather unique niche of Camping Karaoke.

This idea started out many years ago where it was a combination of a generator, a stereo, a laptop, and a stack of printed out pages with all of the available song titles. People would look through the pages and manually write out their song selections. I would then be in charge of manually creating a playlist song-by-song.

The next iteration involved putting fake mp3s of all of the song titles onto an iPod, passing the iPod around to have people add their songs to a playlist. This playlist would be imported, then a simple script would translate the playlist into a type of playlist the karaoke software would recognize.

The main issue with the previous approaches was that the entire list of chosen songs was completely randomized, which often cause an awkward situation. People who chose more songs than others often ended up performing multiple songs in a row, while those who picked fewer songs had to wait longer for their turn.

In 2015 I decided to go high-tech with this situation and utilize Drupal to create a website to organize the karaoke setup. Multiple users can scan QR codes to connect to the website which runs off of a Wifi hotspot. The site contains a list of all available songs so users can choose the songs they want to perform and whether they want to perform it earlier or later.

When it's showtime, the playlist is randomly generated in a way that ensures all performers are evenly spaced out and the songs are weighted by their earlier/later preference. Data is gathered on the chosen songs to create personalized pages for each user, which suggests new songs they might like, such as songs they haven't performed before by artists they have previously chosen.

This project has been very successful in simplifying the process of organizing the karaoke playlists, which allows me to enjoy the experience of Karaoke with minimal setup time. This has been an ongoing project and I have added features here and there over the years.

Client
Technology
PHP
Drupal
SQL
CSS
Development of Drupal Tools
-

While working at Eelzee Solutions, I assisted in building various Drupal tools that helped improve our workflow and efficiency.

These tools involved logic which consolidated common functionality across multiple sites as well as tools to help generate boilerplate code which helped increase development productivity.

Technology
Drupal
PHP
Symfony
SQL
Rainbow Concert Band Database
-

In order to help out someone I know in the Rainbow Concert Band, I volunteered to create an internal-facing administration site which assists the band's director in organizing the compositions the band works with. This site helps coordinate information on a vast amount of sheet music such as title, composer, genre, catalog numbers, as well as contextual information such as where the physical copies are stored and when the music was last performed.

The need for this administration site occurred from a previous iteration of the site which became inaccessible, and the only data which was able to be extracted was a CSV of the existing data. Using Drupal, a new admin site was created in order to import this data, organize existing textual names into relational entities, and provide a UI to easily add/update entries.

Technology
Drupal
PHP
Custom Business Software Development
-

While working at Eelzee Solutions, I assisted in development of custom business software for various clients in the automotive, construction, health & safety and service industries.

This involved research, planning, and development of additional custom features for the business workflow of existing sites as well as aiding in the development of new sites for new clients.

As well as developing functionality for the business software, I also was involved in developing automated testing for the new and existing features to help ensure the software runs smoothly and efficiently.

Technology
Drupal
PHP
Behat
Javascript
SQL
jQuery
CSS
Upgrading Drupal website from Drupal 7 to Drupal 8
-

While working at Eelzee Solutions, I assisted in helping upgrade and migrate a very large and intricate Drupal 7 site to Drupal 8.

For a standard Drupal 7 site this can be a trivial matter, but for one site in particular it was a very large undertaking due to the complexity of the site mechanics.

In order to accomplish this successfully, much of the existing logic was refactored ahead of time combined with the addition of robust automated testing which were compliant with both Drupal 7 and Drupal 8. This also involved complex migration logic to ensure the data was transferred over correctly and efficiently.

Technology
Drupal
PHP
Behat
SQL
Year-long Timelapse of Stadium Construction
-

In 2010 construction started on the new roof of BC place stadium in Vancouver and I decided to try at an ambitious project of capturing a timelapse animation of over a year and a half's worth of construction. Setting up a webcam at a friend's place across the street from the stadium, I created a simple program in Max/MSP to capture images at a varying intervals, and upload straight to my website.

I also added the ability to change the capture interval remotely, and set a different capture rate for daytime and night time. When the pictures were all taken (550,000 of them) I created a crude application in flash (which never left the prototype phase) that will load certain pictures and play them as a video with an adjustable date range or other features.

I also had ideas to filter out pictures with bad weather so I added code that reads a weather almanac website and adds that information over to the picture database, this information is also relayed over onto the timelapse player to give a sense of the weather at the time of each picture.

Client
Technology
Timelapse
Flash
PHP
SQL
MAX/MSP
NGRAIN Flash Animation Development
-

During my experience at NGRAIN Corporation, I was the lead programmer on an animation process upgrade which included consolidating various methods used to develop linear and interactive Flash animations into one system which makes it easier to develop, edit and update/upgrade. One of the biggest improvements was to bring all of the variously placed text used in the animations outside of the timeline into xml to vastly improve the editing time and make it far easier for language translation. Another improvement was to remove the redundant inline code of telling the animation when to pause and play, and instead have the developer simply insert smart keyframe labels to automate the process.

A process of having overlays of correct and incorrect hotspots was also introduced to ease the development and an ability to import animations from existing projects streamlined the process. Other highlight features include easy to use add-ons such as multiple choice questions, dialog boxes, tooltips, drag and drop selections, a virtual camera system, LMS tracking using SCORM, backwards compatibility, and more; all in the name of reducing the work-load and turn-around time for the redundant tasks the animators have.

Client
Technology
Flash
XML
3D Learning Environment
-

Working with Citadel Training Management, I was in charge of creating a 3D learning environment to provide training and learning solutions. While the work ended up unfinished, many features were still able to be showcased. Using the Unity 3D game engine, I managed to create a system from scratch for the user to manipulate 3D objects with collisions and physics, also with a multi-level hierarchy that allow parts and sub-parts to be attached and disassembled with ease, with minimal setup by the developer.

Using a popular powerful game engine also allows for realistic graphics and models as well as a means to run this environment on various platforms, such as standalone PC, internet browser, mobile, or gaming platforms.

Client
Technology
Unity
Javascript
C#
3DS Max
Extravagant Corpse
-

This project is a multi-user drawing game where people choose a square to draw on to complete a collage picture as a whole. The concept was based around a multi-narrative version of the "exquisite corpse" (a parlor game where people would each write a part of a sentence and pass it on to a person who would add on not knowing the complete sentence). This project turned out to be very successful and one of my favorite works.

My role in this was developing the initial concept team lead of four people and head programmer. In 2008 new features using an SQL database allows for automation of creating new "corpses" (canvases), email notifications, daily user drawing limits, and interactive completed "corpse" viewings.

In 2017 Reddit created a somewhat similar project named r/place which also involved multiple people drawing on the same canvas. The main difference, besides the immense size of the canvas in r/place, is this Extravagant Corpse project would designate and lock off a drawing area for a specific person to create their art within, where-as r/place would have everyone in competition to draw over each others artwork.

Client
Technology
Flash
Premiere
PHP
SQL
Ming Library