Reed's Metals Online Order Form The online ordering system I created for Reed's Metals is one of my personal favorite projects, because it gave me an opportunity to take control of a project from initial conception to market. The order form features an AJAX shopping cart, HTML to PDF conversion for quotes, and jQuery-UI navigation. The entire project was customer-focused, involving several meetings with end-users to get opinions and suggestions for improvements. Within the metal roofing industry the ability to place orders outside of normal operating hours is a rarity, and with the invention of this form Bernie was able to secure a $1 million annual contract among hundreds of thousands of dollars in extra sales.
Reed's Metals Website When I first came upon the Reed's Metals website there was a bit of cleaning to be done. Several iterations of the same code through five different developers, along with insufficient dedication to their web front, led to a subpar online experience. Many links gave 404 errors, half the JavaScript on the page was invalid, the page took around 15 seconds to load, and there was no consistent theme despite over 100 kilobytes of CSS. Keeping all the same images that they already had, I re-coded the HTML and CSS from scratch. I created a 5-column system that allowed for easy addition of new pages and condensed the CSS to 13 kilobytes. All JavaScript was repaired and optimized. The final site loads in only one second (depending on geographic location) and provides a much richer user experience. The new CSS, addition of header and footer files, and removal of thousands of unused files also allowed us to add new pages with unique information. The entire transformation took only two weeks.
Lexington KY Dental Lexington KY Dental was a quick three-day project where I was asked to make a website easier to update. These two dentists previously used Intuit's website editor to create their page, but did not understand HTML sufficiently to make large changes. They also said that making changes was difficult since they had to log into two separate websites then hunt for a tiny edit button on Intuit's large and feature-rich website. I created an exact copy of their website as a Concrete5 theme so that they can now edit their website in-line by clicking an easy to locate link at the bottom of every page. As of Google Chrome version 26 there are display issues in Chrome which I will work to fix (free of charge) later this week.
Window Fashions on Wheels Window Fashions on Wheels is the approximate extent of my capabilities as an artist. I will admit any day that I'm better at making websites functional than fashionable, however I have at least a minimal knowledge of PhotoShop when the job requires. Paula wanted an entirely new website and I agreed to work with her on a design. The end result was a Concrete5 theme which enabled her to easily edit her page in the future.
Four Seasons Landscaping and More Four Seasons Landscaping and More was the first website created in my professional career. This landscaping company had a negative relationship with their previous web designer and could not get any changes made to their site. I helped them navigate the legal battle of retrieving their domain name, then re-built their website on their own server. I used PHP to reduce hundreds of gallery pages into a single script, cleaned up several areas with misaligned layout or which only worked in Internet Explorer, and made sure the entire site conformed to W3C standards.
Mabinogi Farming Bot Mabinogi (http://mabinogi.nexon.net/) is a Massively Multiplayer Online Game which occupied a large portion of my college life. One of the many features that was added to this game was the ability to operate a small farm. Every 20-40 minutes the farm must be checked for adequate water, fertilizer, and bug spray and if any are lacking it must be applied. Around the same time I had a job opportunity which required an understanding of Microsoft's MVC Framework. I took the opportunity to learn the framework and wrote a program which operated my farm for me. Stand on your farm (in game), press Start, and it does the rest. It will check the level of water, fertilizer, and bug spray then calculate the optimal order for performing each action. 30 seconds before performing an action I had the program "ding" so that I could play the game on an alternate character and quickly switch to my farmer when it was time.
Mortal Online Mining Bot Mortal Online (http://www.mortalonline.com/) was another Massively Multiplayer Online Game which I got involved in, and still player regularly to this day. One of my primary ways to earn a living in this game is to mine rocks, crush them up, and refine them into metal for making weapons and armor. The Mortal Online mining bot was originally coded by a friend of mine by the alias Rimmerdall, however I have made consistent improvements ranging from detecting and replacing broken pickaxes to speeding up the login process. I am currently working on a complete revamp of the bot which will contain none of Rimmerdall's original code and hopefully make the bot 50% more efficient.
Quality Care for Kids Quality Care for Kids is a small doctor's office in Kentucky which performs audio and visual tests for elementary school children. For a long time they had doctors fill out paper charts with each child's test scores and information, then these charts were transcribed into a large, flat Microsoft Access database (although due to the single-table nature, Excel would have suited them fine) by a data entry clerk. I was originally hired through a temp agency to convert their database from the single flat page into a multi-table system which utilized all off Access's functionality. After conversion of the data the project's focus slowly shifted towards an online app which would allow doctors to enter data directly into the database from their iPad. The biggest (and worst) challenge: They wanted the online system to look, and act, exactly like Microsoft Access since they wouldn't have to retrain their data entry clerks.
3D HTML Multiplayer Game This game was my senior design project for my Computer Engineering degree at the University of Kentucky. We were asked to create "an extremely simple proof of concept" that using HTML5 it was now possible to code a real-time multiplayer game using only web standards. At the time when this game was coded the websockets protocol was barely a year old and such a game had never been created, so it was an interesting experiment. Within a few days we had a simple "game" where unlimited people could log in as squares of a random color and move around, seeing the other squares move in the same space. Since we had plenty of time and working network logic, we expanded the game to three dimensions to make things more interesting.
D&D Character Generator The Dungeons and Dragons Character Generator was a small part of a large vision I had in high school when I was first learning JavaScript. I was hoping to eventually create an entire D&D game managing website so that Dungeon Masters could meet with their players via chat, all dice rolls could be done in the browser, and maps and character information could be shared online. The original code has been lost but I am working to build a new character generator now that I have a much better understanding of JavaScript (and a much better system for naming variables than "i_m", "i_r", etc)
Digital Editor Digital Editor is an affiliate link website similar to Groupon. When I was hired the website owner received daily emails from five affiliate networks with CSV files in varying formats, each containing product information. His chore each day, which occupied 3-4 hours of his time, was to combine these into a single file with all the information properly formatted to extremely strict criteria so that he could upload it using CouponPress - a premium WordPress theme. I created a plugin for WordPress which loaded this affiliate link data remotely using the SOAP protocol, cleaned it up, handled bad data, eliminated duplicates, and formatted it appropriately. This brought his multiple hour chore down to a single button press each day.
Radio Server Like my Dungeons and Dragons Character Generator, the Radio Server was code from high school which has since been lost but I plan to recreate in the future. Radio Server was built for the STLP Technology Fair competition. Shoutcast (a winamp plugin) was used to create an MP3 stream and a JavaScript hack was used to constantly reload the connection to this steam so that accessing a web page could broadcast continuous music. At the time it was set up, radio server was only ever used to broadcast our school's daily announcements on repeat. The idea has since been proven very successful by a little company known as Pandora.
Boone Trace 1775 Boone Trace is less a testament to my ability to code and more an example to show off my ability to teach. My girlfriend received this project from a doctor at her office since she was known as "the tech girl". He wanted to create a website dedicated to his passion - restoring and preserving the Boone Trace. I taught her all that I knew about PHP, CSS, JavaScript, and PhotoShop and she set to work creating this website.
Lexmark Inventory EoL Helper This project was created entirely in Microsoft Excel as a Lean Six Sigma project for my green belt certification. For my Lean Six Sigma project we were paired with Lexmark who was tasked with giving us a supply chain problem to solve. Lexmark provided an interesting and unique perspective into the business world when they handed us a 126 megabyte Excel file and gave us the problem statement: "Optimize supply chain". After exploring the Excel file for a while it became apparent that we were looking at a multi-tier Bill of Materials work sheet, along with order history, inventory levels, and transfer data. One of the first questions that came to mind for me was just how often each factory part was ultimately sold to a consumer in one of its many derivatives. I tried importing the data to Access and using VBA to roll up the BOM, however Access lacked the performance I required (after 14 hours it wasn't finished). I imported the data into MySQL and wrote a quick Perl script which did the job in 20 minutes and discovered that out of 250 factory parts, 102 of them had never been ordered. Of these 102, about 40 were being held in inventory. With a more specific problem at hand, we worked with Lexmark to change the scope of the project to recognizing the appropriate time for end-of-life'ing components. This Excel sheet (and included VBA script) provided an objective and mathematical solution to the difficult decision of killing old inventory.
GamePriceSentinel GamePriceSentinel was a failed business idea that gave birth to many great PHP classes, coding practices, and conventions that I still use today. The original idea for the website was to track the price of downloadable video games on several different websites (Steam, GreenManGaming, Amazon,...) to help people find the lowest possible price. It could also send an email if you were watching the price on a game and it fell below a certain amount. While the code is all still safe, the site used way too many database resources and my shared hosting provider threatened to shut down my account if I didn't remove it. Until I can afford dedicated hosting the website will remain down.
AJAX File Uploader While working on the Reed's Metals Online Order Form I desired an AJAX file upload script so product images could be uploaded inline without refreshing the page. The majority of these scripts had WAY too many features, included a lot of overhead, or weren't compatible with all browsers. After a lot of searching I located a simple script that was almost perfect except for a few bugs. I fixed these bugs, added new features, and added support for IE 6 and IE 7. I contacted the original developer with my changes and they have been included in the most recent revision. The script can be downloaded at https://github.com/davgothic/AjaxFileUpload