Projects


Barcelona Bee Buddy Logo

Barcelona Beebuddy

Screenshot of my hometown website

Hometown Website

Screenshot of my Bank Heist game output

Bank Heist Simulator

Screenshot of my rush hour game

Rush Hour Game

Barcelona Bee Buddy


For my senior capstone, we designed an IOT beehive monitoring system so beekeepers could monitor their beehives from wherever they are. To achieve this, we had three major problems.

  • Location
  • Usability
  • Reliability

Location:
Beehives are usually out in fields or other remote areas, so things like Wifi are impossible to guarantee. We also don't want to make people run very long cables out to their hives for many reasons.

Usability:
The website needs to be useful in some way. It needs to be easy to use, with a clean interface and responsive buttons. If a site is difficult to use or has no useful features, why use it?

Reliability:
We want a product that will never go offline. Our sensors needed to run 24/7 and transmit data frequently. We needed to design a system that will let you know when an error occurs and how to fix it.


The biggest eyecatcher for this product is the masive solar panel. This panel generated more than enough energy to power the whole system throughout the day. There are also rechargable batteries that are used whenever the solar panel isn't producing enough. Even in the rainy weather of Rochester, the whole system never dropped below 97% battery while being run for a full spring month.
The data measured by the sensors was transmitted over LORA radio waves every 10 minutes to a reciever placed inside with WiFi connection. This reciever was tested for up to 5 miles with minimal information loss. The data was then uploaded and stored on our database using RIT's servers, Which then filled the data on the website. The website shows the changes in the internal temperature and humidity of the hive over the last 24 hours. The site also gives warnings if the current temperature or humidity is approaching dangerous levels for the bees. The site can show up to the last 6 months of data, and lets you download all the data that has ever been collected as a CSV file. You can then organize it however you'd like in any spreadsheet editor.

Flyer describing the product
Image of our product on a beehive

The Bee Buddy installed in a hive


Showcase of all the project components

Final Showcase


Hometown Website


This site was a project I did for my class Web and Mobile II. It is a personal tour of some of my favorite places from my hometown. I had to do lots of research into the history of these places and represented them to the best of my ability. Using PHP and MySQL, the site is dynamically created every time. All the information is pulled from a database, leaving minimal hardcoded HTML. This project uses PHP and SQL to provide an informative website that can be quickly edited anywhere with database access.

My biggest challenge with this project was the scale. I was under a massive time crunch to do the research, plan, and create this site. Luckily, I was able to work quickly, and I ended up finishing this large project ahead of schedule. Because of this, I was able to spend the extra time I had on bonus features, like the map on the landing page.

If I could do this project again, I would change a few things. The main one is the map. While it works just fine, the pins are not able to be in the correct spots. They are unable to be placed properly due to multiple being too close to each other. To fix this, I would make a movable map that you can zoom in and out of, giving that extra space to place the pins. I would also spend more time on the navbar, as the dropdowns don’t always line up with the headers.


Bank Heist Simulator


I created the Bank Heist simulator to test just how effective a strategy is in the board game "Bank Heist." Using Java, I simulated every facet of the game using Object Oriented Programming techniques. There were two Decks, 5-8 players, a hand per player, and the van. For this test, there are two teams you can be on. The Crew is trying to get 5 cash bags into the van, based on drawing cards, and the Agents are trying to prevent that from happening for 4 turns. Each player can also gain an attribute that may affect the gameplay. I programmed all relevant cards into a shuffled deck, randomized the players’ seating, and scripted each round so every player made the perfect decisions for their role. Some cards only affected the game in specific situations, affecting less than 2% of games, but I made sure to account for them.

I decided to create this program since a friend of mine was trying to calculate the odds of victory for both teams and ended up completing it faster than his calculations. The program runs 10,000,000 trials for 5, 6, 7, or 8 player games, and gives statistical output for each type.

If I were to redo this program, I would make it threaded. Even though each trial takes less than half of a second, it takes about a minute to run 10,000,000 trials. If I threaded this program, I would make it simulate games with different amounts of players at the same time, quartering the runtime.


Rush Hour


For my Software Development and Problem Solving II class, my team had to create a working version of the game “Rush Hour” in Java. Rush Hour is a puzzle game where you need to move a car out of the box by moving all the other cars out of the way. We started with a command-line version, then made a full version with visuals created using JavaFX. This project helped us learn to work as a team and how to use GitHub effectively to avoid merge conflicts.

In the command line portion, I was in charge of the functionality. While my groupmates made the board and created the cars, I made them move by inputting commands like “O U,” which would move the “O” car up. I had a similar job when it came to the JavaFX version, where I made the cars move when you clicked the front or back of them.

If I redid this project I would choose a different language. JavaFX is very tricky to deal with and I could make a much better product in JavaScript. If I just wanted to make a better command line version I would choose python.