Here’s a sample of some of the work I’ve done. You can find a more complete list (with source code!) at git.io/nmarcopo. Click on the titles of the projects to be taken to their respective Github pages.
This was the final project for my Cloud Computing (CSE 40822) course, taught by the legendary Professor Douglas Thain. My partner, Austin Sura, and I wanted to create from scratch a video-sharing service, like YouTube. We used HDFS hosted on several Amazon EC2 instances to load balance accesses to the video streams themselves, and Elastic Beanstalk to handle load balancing for the PHP website. This strategy proved very powerful - our scaled implementation provided almost three times the total throughput compared to our unscaled site. We've made public our project presentation as well as our project report, plus a short video demo of the site itself. Note that our presentation was shown before we made significant breakthroughs in the project, so I recommend that you take a look at the report instead.
Our final project for Tim Weninger's Database Concepts (CSE 30246) course. ReddVestment allows you to "invest" in a new Reddit post and win points depending on how well the post does. We developed two "advanced functions" to differentiate this project from similar ones around the web. First, we allow for multiplayer - a user can challenge their friends to compete for the better post within a specific subreddit. Next, we included a simple machine learning algorithm that attempts to predict the most successful post out of your given options, which we found to be quite accurate in a number of cases. We're still refining this project, so we haven't publicly hosted it yet, but keep an eye out for a public release in the next few months. Check out our goofy projet video!
This project was my Programming Paradigms (CSE 30332) final project. Cryptonite is the essential cryptocurrency assistant - you can add crypto from your portfolio, track the most successful cryptocurrencies, and more! You can check out the project, hosted on my server! You can also take a look at our project presentation here, and you can also watch our video demonstration here.
This was my Data Structures (CSE 20312) final project. In case you can’t run the Jupyter Notebook with all of its dependencies, check out our project demonstration video here. Huge shoutout to my group on that video - I had another project to complete (Laser Breakout, read about it below!), and they were able to make the video without me.
I created this web app out of a need to shorten some of my GitHub URLs quickly and easily. I found a site created by the GitHub team to accomplish this, git.io, but this site only allows you to create randomly generated git.io shortlinks. I found that you can create a custom shortlink with the unix command line, but I wanted something that would be simple and intuitive for users who aren't familiar with the command line. My site allows any user to check if a vanity URL is taken and request that custom URL for any GitHub page.
This app was created for Dr. Christian Poellabauer’s Mobile Computing Lab at Notre Dame, where I worked as an undergraduate research assistant. The idea for the app was to connect phones using a custom Bluetooth Low Energy protocol developed by a couple graduate students at ND - BlueNet - where phones could use other phones as intermediates to connect to a BLE device out of their range. I developed the UI for this app and integrated Google Maps functionality to display the positions of connected devices.
Here’s another Data Structures (CSE 20312) project. I’ve hosted this project on my DigitalOcean server here so that you can try it live. It’s an implementation of Dijkstra’s algorithm, where the various randomly generated tiles are weighted edges between the starting point and your selected point.
This is a single band parametric equalizer GUI I implemented in MATLAB for my Introduction to Microprocessors and Multimedia course. Essentially, it uses a continuous time transfer function to create a notch filter, which can be adjusted to amplify or attenuate certain sounds in a variety of music samples. I included a user manual and a technical manual in the project folder, which you can download here. Please skim over these before using the equalizer!
As a final project for our Introduction to Engineering course, several of my friends and I created a bomb defusal simulator in MATLAB which resembles the popular PC game "Keep Talking and Nobody Explodes." Our group implemented an interactive GUI which allows users to defuse a bomb by following a silly instruction manual. We included a “simulator” GUI, which allows users to compare three different solving algorithms - Randomization, Brute Force, and Rule Abider - to see the advantages and disadvantages of each. The video above is our final project video explaining the Simulator in more detail, which I recommend watching before downloading the project. You can download this project here.
I set up the web page for Vince Marcopoli’s music. Check him out at vince.marcopo.li!
Indiana Collegiate Press Association Awarded Photos:
Best News Photo, First Place: Entranced by the Eclipse
Best Feature Photo, Third Place: Making a Difference