Projects

School Projects

Here I will describe and provide video demonstrations of Group Projects I have worked on during my studies at WPI. I decided not to include Individual Assignments that were labeled as “Projects” by the course syllabi, as I think they do not really differ from regular homework assignments. 

Algorithms Group Project

In this Group Project I have worked in a group of 4 to implement a 2-dimensional KD tree GUI using Java, for the purpose of demonstrating nearest-neighbor search queries. Our group also analyzed the performance of adding elements to the KD tree and the nearest neighbor search algorithm. On the right please see a video demonstration of our project by our group. I personally worked on the algorithm for adding new elements to the KD tree, as well as the performance analysis. This project was completed in term D of my Freshman year.

Algorithms Group Project Demonstration

Software Engineering Group Project

Software Engineering Group Project Demonstration

Created a website where a group of people can vote for different alternatives on a given choice
Worked in a group of 4 to create a website which helps a group of people decide on one alternative among many when faced with a choice. We used AWS for hosting, MySQL for defining the database structure, Swaggerhub for API definition, Java for back-end and javascript for front-end development. I specifically worked on the API definition and I have done the bulk of the back-end Java code. This project was completed in term B of my Sophomore year.

Webware Group Project

Worked in a group of 5 to create an online workout tracker. Used node.js for running the server, Express for back-end development, React for front-end development and MongoDB for persistent storage of workout and user data. Used Heroku for hosting the website. I personally did the front and back end of the Add/Modify functionality for a workout. As well as the login page frontend and styling. Project was completed in term A of my Junior year.

Webware Group Project Demonstration

Quantum Games (Interactive Qualifying Project)

IQP Video Demonstration

Worked in a team of 2 students and under the guidance of professor P. K. Aravind from the physics department, to create digital simulations of quantum physics phenomena and experiments as well as video games which are used in demonstrations, mainly for high schoolers, to spark the youth’s interest in quantum physics. The games and simulations are created in html and JavaScript, and would be part of a website as the final product. Project was concluded in term C of my Junior year.

Personal Projects Sedmica

“Sedmica” or Seven is a card game traditionally played in the Balkan region. The rules of the game are pretty simple as described here. Me and my friends used to play it all the time and it got really addictive. However, prior to writing this page I didn’t know of any online version of the game. So I decided to make one myself. You can find my version here. In its current state it is rough around the edges, but functional. The game also includes a meme system for taunting opposing players. Plan for the future is to create an AI capable of playing the game at a high level and also to make the game scalable, so that thousands can play.

Man-In-The-Middle YouTube Attack

This project was my first experimentation with cybersecurity and cyber attacks. The idea behind the project was simple: if you are playing a video on YouTube, say you are playing “video1”; can I somehow make you device display a completely different video “video2” for instance. To do so the attacking device would “spoof” and pretend to be the router. The victim would send its packets to the attacker. All non-YouTube packets were forwarded to the router, and the router’s responses to them were forwarded to the victim. All YouTube packets were discarded. The attacker would simultaneously play a video on YouTube. The packets for that video were then forwarded to the victim computer, essentially making the victim YouTube client think it is playing the correct video, when it is not. I have used C (more specifically pcap) for packet analysis and packet header manipulation. I have also used Wireshark to aid in debugging. This project was almost completed (including the ARP spoofer and the IP and UDP header manipulator), however I the brick wall which is the YouTube’s encryption algorithm prevented final completion. 

WiFi Device X-ray Finder

This project was a very ambitious mobile application which would act as an X-ray camera showing all devices emitting electromagnetic (EM) waves of the WiFi frequency. The mobile phone would initially have to be calibrated, and after which the device itself would keep track of its position relative to the starting point using an inertial measurement unit (IMU).  Then by analyzing signals received from other devices emitting EM waves, such as phones and routers, it would determine their location relative to itself using triangulation. Finally it would draw small boxes on the screen around the devices in a camera view. The app itself was developed using Android Studio, and the accompanying debugger for the IMU which was run on an accompanying desktop computer used C++ and OpenGL. This project was unfortunately abandoned early on in development due to inaccuracies in the smartphone’s integrated sensors for measuring EM signal signal strength. However, I do think it is a cool idea, and I will likely come back to this project in the future.