Projects

CYBERSECURITY ESCAPE ROOM


view

At Marist, students are required to complete a capping course in their field of study before graduation. Because I am majoring in both cybersecurity and software development, there would normally be two projects to be completed. However, since my cybersecurity team was to be paired with a software development team, I was given the unique opportunity to work on both teams to complete a project. We were tasked with designing and producing an escape room game. The purpose is to gamify cybersecurity concepts such that it would be fun for students to learn. For the cybersecurity team, I worked to create the story and dialogue and identify which topics we wanted to teach the user. Using Yu-kai Chou's gamification and octalysis framework, we were able to make sure our game was more than just a learning simulator and provided the user with many core game features. The cybersecurity team is the designers while the software development team is the implementers. Using Unity, we created a 3D world where the user can walk around the escape room (using a custom-made node-based movement system), solving various puzzles and playing mini-games to have a good time while learning about cybersecurity.

Due to our success in producing this game, we were chosen to represent the computer science department at a Marist College Open House. With the help of our professors and sponsors, we continued to exist after the school year had ended. We took part in the Mid-Hudson Regional Business Plan Competition in the spring of 2022. This allowed us to pitch our game to potential investors, and while we didn't win, we got recommended to participate in the Enterprise Computing Community (ECC) Conference. The conference was a place for vendors and speakers to talk about their work in the cybersecurity or sociotechnology space. At the conference, we were able to demo our game and give a presentation on our paper about using gamification design principles in our cybersecurity escape room game. This work won us the cybersecurity award and also allowed us to meet and speak with many individuals who work in the cybersecurity space.

The game, titled ARI, has its own website where you can download and play the game yourself.


rhinOS


view

The fall 2021 Operating Systems course utilized TypeScript to create our operating system. This massive task is designed to reinforce the teachings in this course as well as the previously taken Computer Organization and Architecture. The previous summer, my Amazon project dealt a lot in TypeScript, and having some difficulties there, I am glad that I now have a project that is forcing me to get better with it instead of creating my individual one. Upon completion of this course, I had a functional operating system that can allow users to run up to three programs all while properly managing memory and other resources.


POLOLU ROBOT


view

My spring 2021 robotics course involved various labs that were conducted throughout the entire semester. All the labs served as stepping stones towards the final project, which was to have the robot navigate an obstacle course. The initial labs were designed to teach the student how the robot works by having the robot move a certain distance forward and backward. As the semester moved along, an ultrasonic sensor and servo were added to the robot to give it more functionality. Future labs included getting the robot to follow a wall as well as avoiding obstacles with the help of a PID controller. These new features, combined with the default robot, allowed us to complete the final project, which was an obstacle course for the robot. At the time of navigating the obstacle course, we were only given the "coordinates" of where the destination was. The robot would then have to navigate the random obstacle and make its way to the ending location, which mine did. The robot used in for this course was a Pololu 3pi+ 32U4 Standard Edition.


INFECTION SIMULATION


view

The semester-long project for the fall 2020 course of Algorithm Analysis and Design was to create a program to simulate the various testing protocols that would be employed for a widespread pandemic. As this course was taken amid COVID-19, the purpose of this project was to compare different testing protocols. On campus, the testing protocol was to take twelve individual tests, pool them together, and then test the pool. If the pool returned a positive result, then all twelve individuals would be individually tested. To the class, the professor proposed the idea of groups of eight and if a positive test was found, divide the group into two smaller groups of four to identify which half (or both) contained a positive result. Whichever (or both) group(s) tested positive would result in those four (or eight) individuals being individually tested. In my simulation, I allowed for custom user input so the user could modify variables such as infection and group size and even take into account test inaccuracy (among others). Some of the findings in the simulation could be found in a report that was submitted along with the code which explained the whole process, each code segmented, and some test cases.


IOTA


view

To enforce the concepts learned throughout the fall 2020 course of Theory of Programming Language, the class was divided into groups of four students to create their own programming language that would be built upon the Racket Programming Language, which is built upon Scheme. Throughout this project, I had to create the documentation which contained the language overview, formal syntax, and operational semantics and grammar. Using these rules that were defined in the documentation, I then had to translate this into usable code. The goal we were trying to achieve in this project was to remove some of the features we did not like when coding work for this class, as well as adding features that would have been useful. One of the more annoying issues with Racket is the use of parenthesis and how easy it could be to get lost. Another would be the way if statements would work and the lack of other control functions (i.e. looping). Iota attempted to fix some of that. Print lines and useful mathematical and comparison operators were also added. The end product was some test cases demonstrating all the functionality that we had implemented and a presentation explaining the documentation, code, and test cases to the class.


FOX N FOUND


view

Throughout the Software Development II class, we were tasked with creating a lost and found database with a website to access it. The website was coded in PHP and the database in MySQL. With the help of a local Abyss Web Server, the website can be run and the database modified from it. Essentially, the website allows users to add lost item data, and the admins can add and modify data in all tables. Users can report lost items as the founder of the item, or the person who lost it. Admins can then go in and match a lost item to a found item, indicating that it has been returned to its rightful owner. In the event a new building is added, or a new admin user needs to be given proper permissions, the admins can add to the proper tables from the website.


STUDENT PLANNER


view

The first project of the spring 2020 Systems Design course tasked teams to build an application prototype. My group decided to make a planner application that would allow students to become more organized. One of the goals would allow professors to upload a syllabus directly to the app, such that all the assignments that are required from the students would be put into the calendar for them. The app would give students various calendar and task views as well as filter assignments by type, professor, or date. The screens were designed and made using inVision and the prototype can be viewed here


DATABASE DESIGN


view

For the fall 2019 semester, my database class semester project was to create a database, using Oracle's SQL Developer, and then create data for it. With the data, ten different types of queries needed to be filled out. The data I used came from a PC game, Counter-Strike: Global Offensive. Almost all the data is real values from within the game and its professional scene. The end product was a report containing the model description, ER-Diagram, table and key definitions, justification of the third normal form, and the queries.


HALLWAY SIMULATOR


view

The spring 2019 semester is the same sort of project as Fall 2018, a text-based adventure game except this one is in Java. The theme and requirements are provided by the professor and are more of a follow directions as opposed to the complete creativity given in my previous work. The game has a simple GUI whilst prompting starting. Unlike the Python alternative, this game also allows the user to "retrace" their moves as they can view the path they have taken upon completion. There is also a scoreboard present so the user can work to constantly improve their high score.


LAST STAND


view

For the fall 2018 semester, I was tasked with creating a text-based adventure game, in the spirit of Zork. This game was to be built in Python and was a project that took the semester. My game is not too in-depth and is titled "Last Stand". It takes place in London in the middle of an epidemic. The player chooses a role out of a role list that will determine the strengths and weaknesses of the character. The ultimate goal is to gather the necessary supplies, avoid the gangs, outlive the epidemic, and hopefully return home. One day, I hope to return to it and make it much more random and add new events and customizability.


SPROUT CREEK FARMS


view

Also in the fall 2018 semester, I was part of a team in my business course that was required to bring forth a new idea and produce a business plan for Sprout Creek Farms in Poughkeepsie, New York. I served as the Operational Manager of the team along with the research and constructing of the business plan, I was responsible for the day-to-day tasks as well as making sure all the criteria were met, and we stayed on track. In the end, we found a way for the farm to license their cheeses with local wineries and brought forth an idea for a new organic chocolate line utilizing the leftover milk.