This project is an application that allow the user to track stock values, keep a portfolio, simulate portfolio growth, and track cash accounts. It was written in Java with a Swing front end as a way to teach us about software design patterns. In a group of 6 people, I was in charge of establishing the simulation backend and the searching algorithms.
The project taught me a lot about design patterns in general. Since there were 5 required design patterns to implement, the code ended up looking like a modge podge of patterns. While some of them were effective, others were just thrown in to fulfill the requirements of the assignment. I learned that there are times to use design patterns, but only use them when they are appropriate to keep the code organized.
To prevent future SWEN 262 classes from accessing this code, contact me for access
For HackRPI, I worked on a team with someone from an organization called RecoverRochester. They needed an application that would allow them to track the amount of food they collected and distributed. We used PHP to create a simple CRUD applicaiton that would allow, not only RecoverRochester, but any chapter of the Food Recovery Network to register and begin tracking their food distributions. It also allows them to visualize the impact they've made by providing data analysis tools to generate analytics.
I spent most of this project on the front end working with the HTML and CSS as I had never worked with PHP before. I took the time to understand how the system worked and what the PHP was doing, but as this was a hackathon project, I didn't really have the time to learn enough PHP in 24 hours to make any contributions other than front end development. In the future, I would try see how we could bring technologies that I am familiar with into the project and be prepared by learning different types of technologies so when I encounter something new, I can use experiences with similar languages and tools to learn it faster.GitHub link
In IGME 202, I learned a lot about autonomous agents and steering forces. For this assigment, I made a program in Processing 3 that places humans and zombies in a park and uses steering forces to guide there movement. Humans will run away from the nearest zombie and zombies will chase the nearest human, all while avoiding trees and staying in the park. If a zombie collides with a human, that human becomes a zombie.
This project taught me a bit about independent research into the algorithms involved to make the agents' movement as realistic as possible. It also features debugging modes that helped me test the program.GitHub link
This program uses creates a priority queue to implement the A* (pronounced "A Star") pathfinding algorithm. This algorithm has a tradeoff of lowered accuracy for a faster pathfinding algorithm. This program lets the user explore the algorithm by letting the user set the start and end points as well as obstacles. Then the user can run the algorithm or run a step by step visualization. This lets the user see how the algorithm interracts with different obstacle shapes and diagonals.
If I were to revisit this project, I would want to incorporate options that let the user try different heuristics for the A* algorithm and maybe be able to try out different algoirthms, similar to pathfinding.js. This program acts as a good base for testing out different pathfinding methods and lets you easily port the algorithm to other Monogame projects.GitHub link
/r/EarthPorn is a community where people post nature pictures that are outstandingly beautiful. These images are completely innocent and the title EarthPorn pokes fun at the idea that these images are so beautiful, they're practically adult rated. For a personal project, I wanted to create a program that would run in the background and interact with the user through the Windows tray. So I created a simple program in C# that goes to reddit, downloads the top rated posts on /r/EarthPorn and sets them to your desktop background.
Looking back on this project, I would probably try and implement a few design patterns. For example, I would create an adapter so that I could parse the various file types and host website that users generally post, rather than hardcoding a few select sources. Additionally, it might be better to use reddit's API rather than parsing through the HTML file.GitHub link