In CS414: Object-Oriented Design my team and I were tasked with designing, building, and deploying a chess web application. Over the course of the project the team would meet before class started for scrum stand-ups and also met on Microsoft Teams twice a week to have “virtual stand-ups” with our remote teammates. The design portion of the project involved creating user stories, domain modeling based on the created user stories, creating a UML class diagram of our proposed solution, designing an ER diagram for the app database, and creating a traceability link matrix. We used the Github projects tab to create tasks, estimate time for task completion, assign tasks, and keep track of our progress using a kanban board. As for the app itself, the front end was built using the React framework and the back was built with Java. The contributions I made to coding the project were updating the SQL database based on the project needs, coding the logic for a couple of chess pieces such as the knight, and interactions between the database and the backend of the web app using JDBC. The team used test driven development for the whole project using Jest, JUnit, and Mockito.
In CS314: Software Engineering my team and I were tasked with creating a mock google maps web app that could map out trips with multiple stops. This project was less involved than the chess web app because the team was given a code base to work off of. The bulk of the project consisted of mapping out trips on a map, giving distances between nodes and the total distance of a trip, saving the trip as a csv file, and loading in an existing trip via csv file. React was used for the client side and Java was used for the backend.
In CS370: Operating Systems my team and I decided to create a device to measure air quality around us for our final project. The project was inspired by the Cameron Peak fire during the fall of 2020 when the air quality in Fort Collins was hazardous and a deep yellowish orange haze enveloped the city. The project used a Raspberry Pi 3 and a Nova PM SDS011 sensor to measure PM 2.5 and 10 particles in the air. These particles were then graphed on a simple index.html page that would occasionally poll the sensor for new data to update the graphs. The Python library Flask is used to serve the web page and the page could be accessed directly through the Raspberry Pi or pulled up on a laptop the Raspberry Pi was connected to.
In CS415: Software Testing my team and I were tasked with creating a python script that performed regression testing on the Apache Commons IO repository. The script utilizes both the Ekstazi and Clover to run regression tests on the repository. Every ten commits of the last hundred are recorded into a csv file for later analysis.
In CS462: Engaging in Virtual Worlds I was tasked with designing, modeling, animating, and coding a video game using the Unity game engine and Blender. I created a simple stealth based game heavily inspired by games like Metal Gear Solid and Assassins Creed. The goal of the game was to visit 4 different computer stations in a level and disarm a bomb by solving a set of clues given by the computers. The interactions programmed into the world are basic player movement such as running and jumping, attacking and destroying robot enemies, the robots field of view and movement paths, and finally the player entering in the solved code at the end of the game. Everything in the game including environment models, texturing, and other details was made by myself throughout the semester besides the sounds used. I learned and applied the basics of 3d modeling, rigging, and animating using Blender. The programming for the game was done in C# and ran in the Unity game engine.
In CS430: Database Systems I was tasked with creating a simple library database using SQL. I also was tasked with cleaning up the data files into a loadable format along with loading all the data into the database. Throughout the semester the professor had us build upon the database every assignment until the project culminated with a Java GUI that could insert new members, sign members in, search by isbn, search by author, and search by title. The GUI would show how many copies were available and what fictional library they were located at. This project also increased my ability to analyze a situation, create an ER diagram, and translate that ER diagram into an SQL based relational database.
I created this website using HTML, CSS, and Javascript to serve as an expanded resume and portfolio for myself. Another purpose of this website is to have fun messing around with the three tools listed above. Depending on how busy I am I might add more functionality and simple games to the site as time goes on.