Showcasing my personal, professional, and educational projects.

  • Senior Project: Engineering Innovation Studio Tracker

    The EIS Tracker is a student monitoring system for the Engineering Innovation Studio at Boise State. There was a need to track student trends to get analytics for lab usage, especially across majors, as well as see which students are in the lab and what training they have received in order to improve lab safety. There was a previous system in place which had grown outdated, so this projects aims to replace and improve upon it for the future.

    This program allows students to sign in and out of the lab, and displays who is signed in and what permissions they have. While displaying the students it additionally tracks the lab usage, allowing lab managers to detect and report on usage trends or any other relevant information. As a web app, this solution is easier to access and maintain, with the lab administrators and end user not needing to put in as much effort to access, use, and even export data.

    The site’s main feature is the home page, which consists of a student sign in and a student display. Students will be able to sign in by entering their student ID, their login will be logged along with the timestamp. The display page will show which students are logged in, and which tags they have (these correlate to privileges on certain lab machines). These active logins are also present on a standalone display page, which will be displayed on a monitor above the lab for ease of accessibility.

    The program also includes an admin page which supports a number of management operations, including uploading the student roster automatically via a gradebook export, and manually entering/registering students. Admins are able to assign students specific tags and privileges for the lab, and change any information later if required. There is also an interface to manually clear active logins, (in case a student leaves without signing out).

    A major feature of this page is also the ability to export the log data. As a large part of the project was for tracking lab usage, this includes what students logged in at what times, and what their majors are. This allows us to run reports like how often the lab is being used and at what times, and how often students of specific majors are attending the lab.

    Full Senior Project Page ↗

    Project Repository ↗

  • Shift Game – Unity Project

    This project was a short proof of concept for a 3D platformer game in unity, where you could switch between 2 versions of the level to get around. In the screenshot of the game’s editor above you can see a representation of this, with the cyan being one version and purple being another. The game would have you press the shift key to swap between the 2, often requiring you to shift while sliding, wallrunning, or in mid-air.

    Below is an example of what the game looks like while actually in-game, with the skybox unfortunately missing due to a version mismatch of unity. The gray walls in the previous screenshot are actually just triggers for tutorial dialogue like shown below.

    While I used the standard unity physics engine, I did program the movement and gameplay mechanics to be fully custom as a sort of programming challenge, and I was very happy with the results!

    The game was never finished unfortunately, and currently consists only of the tutorial level. However, this was a great exercise for the fundamentals of game development and the unity engine specifically. It also helped teach me C#, as though I had learned C, Java, and other programming languages previously, I never actually used C# until working on this project.

    Shift Game Repository ↗

  • Object Oriented Programming Snippets

    These are mostly from Comp Sci homework, and consist of a variety of different classes with a variety of different functions. These are written primarily in Java which was out language of choice for learning object oriented programming.

    Circuit Tracer

    This is a brute force pathfinding algorithm meant to be used for small grids of squares. It can deal with obstructed spaces, and will recursively search paths to find the shortest path to the destination. It also contains a Java Swing UI visualizer/interface.

    List Testers

    This is an implementation of single and double linked lists in Java, plus extensive test classes for each. This was another early Comp Sci assignment, but one that we utilized for many other projects, such as porting it to C and implementing it in larger classes.

    Merge Sort

    This was an implementation of the recursive merge sort class, one of the earliest assignments I still have saved. It was again written in Java, and we later used it to sort the linked list we created afterwards.

    Miscellaneous Undocumented Projects

    AI Face Tracking Camera

    As part of a group, we developed and trained an image recognition model trained to detect faces, then ported it to an arduino nano. We then connected a camera and pair of servos to the arduino to have it rotate to face any face detected in the image taken by the camera.

    Linux Kernel Scanner Module

    For Operating Systems class, I had to develop an implementation of a scanner driver to install and run on linux directly. This would take any input via write, and return the input separated by a default or custom specified set of separators. This had to be implemented and interface directly with the linux kernel without leaking any memory or causing any segmentation faults.