The Update Memo Log-Structured Merge Tree was a project I worked on with a group of 3 in my Database Systems course at Purdue University. In this project, we looked to alter the open source LevelDB database system which works based on an LSM tree like structure when managing data. The rationale behind the update memo is that LSM trees are good for write-intensive workloads, but if it is working with a lot of updates, the LSM tree might end up doing a lot of work maintaining obsolete data. The Update Memo is an in-memory structure that is suitable for update-intensive workloads and when combined with an LSM-Tree based system, may result in overall improvement of performance. The original implementation of the Update Memo structure was done by our professor Walid G. Aref and his team in his paper published in 2008, but we were looking into the validity of that research when implemented with LSM Trees instead of R Trees like the paper proposed. For further information, click the image on the left for our presentations we gave which contain links and references to the research we did and our findings.
Project completed as a part of the Purdue University Software Saturdays Intermediate ReactJS course. Created a Pokedex site to show proficiency in ReactJS concepts like components, hooks, and state, in addition to external database calls to save and load information. The website I created makes calls to the PokeAPI to load pokemon data and allow people who go on to create a team and save it. Project resulted in certification and completion of the course.
Slate was a project developed through 'Hello World 2019', Purdue University's freshman hackathon in a group of 5. The purpose of Slate was to enable a new level of mobile collaboration. Through this real-time whiteboard users can share notes, play games, create art and more. In this project, I was helping with the frontend implementation of the whiteboard app, adding features like the erase button and working to make the undo button. For further information regarding implementation, click the image to the left to see source code.
The Game of Life Simulator is a Java program which simulates Conway's Game of Life, which is a cellular automaton developed John Conway in around 1970. The program is used to simulate evolution of real life based on certain rules. The rules of the Game of Life are simple. Cells are born or set alive by users at the start but they cannot interract with them once the cycle starts. The cells that start out alive will either continue to survive or die based on these rules: 1. Any cell with two or three neighboring cells survives, and 2. Dead cells can come to life if they have 3 neighbors. This was my first experience learning Java GUI, so a lot of my process was spent looking at tutorials and how other people created GUI's for cellular automaton simulators as well. I got a good introduction to things like listeners and JFrame functions while learning this.