My Collection of Projects

More About Air Traffic Controller Application

  • A fully interactive application that allows users to create and view their tickets

  • The application stores and retrieves customers, tickets, and airports from different databases

  • The databases were made simple and used consistent formatting

  • Part of a Software Modeling and Design Semester Long Project

  • Created as a shared GitHub Project

  • Designed based on UML diagrams and GRASP design patterns created by a team

What was Learned

  • Learned about creating menu objects and allowing interaction with them

  • Used custom Scanner classes to manage the transfer of data between the program and the databases

  • Created multiple threads to allow for asynchronous operations as well as unique visuals

  • Managed the development process and instructed team members on solutions

  • Handled and resolved merge conflicts between various git branches that were created

  • Used extensive debugging and error checking to find and test for issues with the logic

  • Used Exception Handling to prevent a user's invalid entries from corrupting the program

  • Implemented action listeners so the user can interact with objects

  • Made the experience unique to every user by gathering data on every customer

  • Used parsers for assigning format to date objects

More About Mario With A Gun

  • Was a project submitted for a hackathon competition

  • Created with a group in Python using Pygame

What was Learned

  • Used Sprite sheets to animate the player and enemies

  • Learned more about Pygame and how you can use external platforms in conjunction with a programming language

  • Learned how to create logic for movement of player and developed in game collision physics for background objects and enemies

  • Worked with a team to complete the project

  • There was a limited deadline, and the team was forced to make changes to cater to this deadline

  • Implemented external custom resources such as soundtracks and visuals

More About Word Search Game

  • This project is an extension to the Boggle Word Search game created for a Java II Class

How the Project was Expanded and What was Learned

  • Learned how to create graphical interfaces using JFrames

  • Used action listeners to make the program interactable

  • Used Exception Handling to deal with invalid user entries

  • Used visuals and sound effects to make the experience complete

  • Made the values in the word search table customizable

  • Allowed the user to choose different table sizes as well as use different Lexicon listings

What was Learned in the Original Class Project

  • Used Lexicon dictionaries and stored the values into a Sorted Set of strings

  • Used a depth first search algorithm to search for valid words on the generated board

  • Used 2 dimensional arrays to create the board

  • Used various functions for checking what neighbors existed near the current position

  • Used a scoreboard to keep track of the users correct responses

More About Home Automations Project

  • A collection of scripts that control logic and allow for custom automations in a connected home environment

  • The project was later expanded with a separate Hub to control an apartment

  • As an independent developer, created 41 unique pistons with various inputs using webCoRE

  • The Hub that controls the automations is the Samsung SmartThings Hub which is combined with Google Assistant, Amazon Alexa, Apple home kit, among other API's

What was Learned

  • Implemented 31 virtual switches and 9 custom device handlers for advanced automations

  • Learned more about how simple embedded devices communicate with each other

  • Learned more about gathering and responding to signals from an interconnected range of devices

  • Gathered expanded knowledge of how IoT (internet of things) devices operate

  • Had to use critical thinking to solve issues and engineer solutions

  • Used extensive debugging to find and correct mistakes while many different signals were competing for the same resources

More About Thomas Hansknecht Website

  • Created using flexbox as a layout and using wrapping to flow content seamlessly between different devices and screen sizes

  • Developed a responsive navigation menu that changes depending on screen size

  • Used a repository design structure with HTML and CSS at the root with backend and visual components in sub directories

  • Inegrates with a Google Cloud backend server using 4 firestore collections all with different defined security rules to allow for user and general based messaging

  • Implemented Intersection Observers to gauge the users scroll position and activate scripts/animations accordingly

  • Used jQuery for simple backend components and JavaScript for the complex logic

What was Learned

  • Learned about Front End web development both in terms of design and in terms of customizing functionality

  • Learned how to implement non relational databases for Google Cloud with Firestore

  • Ran tests with Lighthouse to gauge performance, optimization, and accessibility features which were then implemented accordingly

  • Used the developer console to better understand how the site functions in addition to debugging issues and warnings

  • Learned about media queries and how they can be used to assist with accessibility, responsive design, and multiple browser support

  • Created custom animations with keyframes and learned about optimizing animations by using only transforms and opacity changes primarily

  • Used different kinds of positioning such as relative, absolute, and fixed and learned when each kind was appropriate

  • Wrote the project using Visual Studio Code and learned about the various extensions such as Live Server that are offered to assist with development

More About Mad Gab Game

  • Final Project for my intro to Python class taken my Senior year in High School

  • First large scale interactive and design focused application I have developed

  • Used tkinter for creating the interface through Python

  • Implemented a skip question button which could be used to save a life and skip the question but also gave negative points to the player

  • Used a long list of Mad Gab phrases and randomly shuffles them for the user

  • Created a score board and 3 life system that changes depending on the difficulty selected

What was Learned

  • Learned about making object-oriented design through classes and various functions

  • Had to use display elements for the interface and experiment with the boundaries of what interactive elements can be created within tkinter

  • Learned how to use multi-threading to create a visual timer complete with custom warning time animations

  • Had to use message boxes to provide instruction to the player in addition to revealing the player's final score

  • Made the point system work differently depending on the level of difficulty of the question

More About Nintendo Switch Automation

  • Side Project I built to automate game night while at the company Holley

  • Used Arduino Leonardo as the microcontroller and a derviative of C/C++ for programming the device

  • Configured and wired varions inputs such as buttons, joysticks, and sensors

  • Output results to digital interface including OLED panel, 4 digit clock display, and multi colored RGB stick

  • Automates various menu selections by randomly selecting menu options depending on user specifications when starting program

  • Used a main UI for the user to pick through various scripts as well as sub menus for scripts the user selected

  • Tricked Nintendo Switch into recognizing Arduino device as an Nintendo Switch USB controller by updating arduino boards.txt file and using various libraries

What was Learned

  • Learned how to debug microcontrollers using the serial output

  • Needed to learn more about wiring to understand how to properly connect the pins to the Arduino including signals, ground, and power

  • Learned how different signals are perceived such as 2 analog signals for a joystick and a clock and Data I/O pin for a 4-digit seven segment display

  • Figured out than when dealing with multiple USB signals the Raspberry PI can make that process much more simple since it supports multiple HID USB devices

  • Learned the Arduino needs an FTDI convertor over the RX/TX connectors to make sending HID signals possible since RX/TX provides serial data which is not transmiting via HID signals

More About ChatVUE Installer Applications

  • Created Installer applications for Windows, MacOS, as well as Debian and Red Hat based Linux distributions

  • Software designed with the end user in mind to be easy to operate and to prevent the userbase from incorrectly using the software

  • Given a vision and specifications by the sponsor to produce and deploy the expected product

  • Provided documentations and gave presentations with the sponsor, professor, as well as team to detail and understand project progress

  • Used company resources for assistance and consulted professor, sponsor, and team on development validation, product specifications, and assistance

  • Worked with the sponsor Nicholas Edwards from the company TunnelVUE, the professor Shehenaz Shaik, and a team of four developers

  • Project was a semester long Senior Design Project orchastrated by Auburn University

What was Learned

  • Learned more about Operating Systems and Installer Development

  • Created design documentation for both other developers as well as users of the products being developed

  • Learned more about creating docker containers for WSL environments

  • Used the AvaloniaUI framework and learned more about C# development

  • Developed custom bash scripts with user interaction and self changing variables

  • Used various extensions in visual studio such as Avalonia for Visual Studio and Visual Studio Installer Projects

  • Expieremented with creating custom Linux package installers including Deb for debian systems as well as RPM for Red Hat Systems

  • Learned about Tunnel VUE's CoreVUE encryption method and the salting measures which are used for the ChatVUE project

More About Git Hub Manager

  • This script displays a variety of options for managing git repositories and interacting with Git Hub pages

  • The program is designed to be easy to use and a way to save time by not having to remember or type lots of git commands

What was Learned

  • Learned how to develop Bash Scripts

  • Used scripting to alleviate repetitive tasks

  • Had to become familiar with the terminal to understand interaction with shell-based programs

  • Learned more about how git functions and the various stages that git offers

More About Script To Compile OS161 Kernel

  • This script was designed for helping with Project 2 in COMP 3500: An Introduction to OS/161

  • This Script is to be used on Linux based machines

  • The script, when executed, will automatically configure, build, and launch the sys161 kernel utility for OS161

What was Learned

  • Learned how Makefile can be used to efficiently build and run packages

  • Preformed many tasks after a single trigger

  • Offered different options for building the OS/161 Kernel by using Makefile

More About Quadratic Formula Calculator

  • Created to help solve equations for a math class I was taking

  • Used the math module extensively for this project

  • Preforms more operations than a simple quadratic calculator such as finding roots and factors

What was Learned

  • Learned to use Math for creating algorithms

  • Gained more experience with using the tkinter module

  • Preformed error checking by solving many math equations and then testing the results within the application

More About Custom iTunes Music Player

  • The scripts interact directly with the iTunes application to provide feedback

  • The media player script examines song and meta data and then converts it into a readable format

  • The application dynamically changes every second and is fully interactable

What was Learned

  • Learned how to use API's for gathering details on applications

  • Learned how to handle script execution differently to optimize for the script checking music status every second while music is playing

  • Had to use different signals such as checking for mute status as well as audio player output

More About On Wake Sound Effects and Inspiration Script

  • Created with the assistance of BetterTouchTool

  • The scripts execute every time a Mac wakes from sleep

  • There is a randomizer, so the sound effects, visuals, and messages are different every time

What was Learned

  • Learned how to use scripting in conjunction with trigger on wake

  • Learned more about how to use custom resources and randomizers in the Apple Script language

Large Scale Projects

Thomas Hansknecht Website

The current site being examined. Created using HTML, CSS, JavaScript, jQuery, Google Cloud, Bootstrap, and FormSpree. The site is hosted through Firebase.

Nintendo Switch Automation

Application for automating actions on the Nintendo Switch using an Arduino Leonardo as the microcontroller. The application can preform actions such as closing software, changing controller pairing options, putting the switch to sleep, starting games from main meun, randomly selecting custom items, and much more.

ChatVUE Installer Applications

Desktop based installer applications with design and usage documentation for Windows, Mac, and Linux setup. Installer applications run shell scripting, install packages, and set up and manages dependency requirements for the ChatVUE source project.

Air Traffic Controller Application

JFrame application that allows new user and ticket creation as well as management of user and ticket data which is stored in several databases.

Home Automations Project

The scripts that control custom automations for an apartment and family home.

Mario With A Gun

A reimagining of the 1985 Super Mario Bros. The game incorporates guns and takes place in a nuclear apocalyptic setting.

Mad Gab Game

A recreation of the card game Mad Gab. Contains two separate levels of difficulty with customizable time constraints.

Word Search Game

Game where players create a board consisting of whatever letters the players want. Then, the program locates any word combinations possible on the board. The job of the players is to find all of the words on the board. The players can check if they are right or not by inputting the word they see in the entry box.

Small Scale Projects

Git Hub Manager

A shell-based script that was written to be more productive and efficient with Git Hub.

Script To Compile OS161 Kernel

The script, when executed, will automatically configure, build, and launch the sys161 kernel utility for OS161. This Script is to be used on Linux based machines.

Quadratic Formula Calculator

A simple graphical application that takes an a, b, and c input and applies the quadratic formula to those values and graphically returns the results.

Custom iTunes Music Player

Custom scripts created for a MacBook Pro touch bar interface. The application is interactive and displays relevant media information as well as media controls with feedback.

On Wake Sound Effects And Inspiration Script

A custom Apple Script that runs when a Mac wakes from sleep. Using two randomizers to pick from a long list of sounds and displays inspirational messages.

To see more projects I have not discussed visit my GitHub Profile. You can click the top right cat icon on desktop or if you are using my mobile site simply click the menu then click GitHub Profile.