Work

Elevator Simulation

Description

The Elevator Simulation Project is a C++ program designed to simulate the operation and management of elevators with a strong focus on the efficient use of data structures and object-oriented programming (OOP) principles. It allows users to simulate complex scenarios by customizing parameters, such as the number of floors, elevators, and passengers, to test the system's performance in various circumstances.


This project implements a dynamic elevator assignment algorithm that prioritizes requests based on idleness, proximity, direction, and capacity. Elevators travel in one direction until completing all queued tasks, while passengers are assigned fixed destination floors to maintain simplicity and realism.

Skills

C++

For this project, I used the C++ programming language with zero external dependencies, leveraging the key features of the Standard Library to design and implement a streamlined, efficient elevator simulation.

Data Structures

I utilized data structures such as sets, queues, and stacks to represent various aspects of the elevator system and efficiently manage tasks like passenger requests and elevator scheduling, ensuring minimal wait times and high operational efficiency.

Object-Oriented Programming

I applied object-oriented programming principles to create modular, reusable code with classes representing controllers, elevators, and floors. Additionally, I created a UML class diagram to map out and visualize the relationships and interactions between these classes, ensuring a clear and organized system architecture.

UMKC Campus Map

Description

A desktop application designed to help students and faculty navigate the University of Missouri–Kansas City (UMKC) campus. The app computes the shortest path between buildings using a custom implementation of Dijkstra's Algorithm on an adjacency matrix of campus routes.


Users interact with the software using an integrated Folium map displayed through PyQt’s QtWebEngine, creating a responsive and user-friendly interface. Although incomplete, the project effectively demonstrates the app’s core functionality and its potential to simplify campus navigation.

Skills

Python

I utilized Python extensively for this project, experimenting with libraries like Folium, PyQt, and GeoPandas. I had to learn how to use and integrate these tools to create the map visualization, build the user interface, and handle the app’s core navigational features.

Problem Solving

Throughout the application's development, I tackled complex challenges such as mapping all the paths on campus, implementing Dijkstra's algorithm for the distances between buildings, and converting the shortest paths to geographical coordinates to be displayed visually. I also optimized geospatial data handling and ensured a user-friendly interface, all within tight time constraints.

Presenting

I created detailed documentation and a PowerPoint presentation to clearly explain the project’s purpose, scope, implementation, and where I want to take it in the future, focusing on delivering the information in a way that both technical and non-technical audiences could easily understand.

Minecraft Plugin Template Repository

Description

The Minecraft plugin template repository is a project I created to simplify the plugin development process and ensure a smooth start for developers, whether they are new to Minecraft plugin development or experienced in the field.


This repository offers a streamlined template for developing Minecraft plugins using the Spigot API, with full compatibility for Paper. It features a well-organized file structure, including essential plugin configuration files like plugin.yml and config.yml, and .gitignore support for many popular IDEs.


The repository includes a README.md template with customizable sections for features, commands, configuration, contribution guidelines, and licensing information. A detailed quickstart guide is provided to help users set up their project efficiently, from creating a repository to connecting it with GitHub. Optional Maven setup instructions are also included for those who wish to use Maven in their project.

Skills

Organization

I organized the Minecraft plugin template with a clear and logical file structure, including essential files like plugin.yml and config.yml. I also ensured compatibility with both Spigot and Paper APIs, provided .gitignore support for popular IDEs, and incorporated a well-structured quickstart guide to streamline the setup process.

Technical Writing

I wrote detailed and user-friendly documentation, including a customizable README.md template, outlining essential sections such as features, commands, configuration, contribution guidelines, and licensing information. This repository is designed to be easily understood, helping users quickly adapt the template to their projects and ensuring they have all the information they need to get started.

Communication

I communicated complex technical details through the quickstart guide provided in the README.md file, ensuring users could follow instructions and set up their projects with ease. I also addressed how to set up plugins with Maven and provided clear guidance on licensing information.