This was my final team project for 15-437: Web Applications. We created a website to host multiplayer games
created in Unity. These games are playable in real-time. Each user will see a game lobby screen once they
start a game, and then get the option of either hosting a new game or joining any currently hosted game.
My main responsibility was creating the games and making them multiplayer-compatiable over the network.
I created one original game, the space explorer game for the site, and made it multiplayer. I also used
a chess game I had made previously and modded it for network capability. Finally, I took a Unity demo project
called survival shooter and modified the source code to make it multiplayer as well.
I actually created a master networking script in C# that I was able to use for all 3 games, with slight modifications
for each, in order to allow players in each game to host games over the network and play with others. I also created
an in-game chat system. I also designed and implemented a scoreboard for each game that updates every 10 seconds with
the 10 highest scores. Lastly, I helped out with the design of the site and implementing the friending system for
users who signed up. However, the unique aspect of this site is that users do not have to sign up to play. There
is an option to play as a guest.
We have already taken the site offline, but you can run the site yourself. This site was developed using sails.js.
You will need to download sails.js and several other libraries but once you do so, you can go to the github page
and go into the keepin' it realtime folder on that page, and run the sails lift command in that folder. That
will run the site on your local server.
Below are various images showing the various features of the site, such as the login page, the profile page,
and each of the actual game pages, with a site chat room and scoreboard on each of them.
Here is a link to the github project page.
This was my semester project for 15-221: Technical Communication. I worked with 3 teammates to create a website
that provides information about the usage statistics of Linux computers in various Linux computer clusters in the
CMU Gates building. It helps tell people whether someone is physically using a computer in the cluster and also
provides data of how many people are virtually logged on via SSH and the percentage of the CPU and processor
they are using.
Below is an image showing an overview of the system and how the transfer of information works and reachs the website
on your computer. Our team built a set of scripts which pull login, logout, and resource usage data from all
CMU Linux computers that can be accessed via SSH remotely. These scripts rely on remotely accessing each computer
with SSH. It runs in parallel, logging in via SSH into every linux computer in CMU, and then runs the last and
ps aux commands on each computer. The program then takes all the data from each computer, discards all irrelevant data
and compiles all the data that we want into several text files and outputs them, for the website to access later. As
such, we run the code on our computer, access the info from the cluster computers, output the data, and use a PHP script
to actively update the statistics on the website, allowing it be acessed by any user.
The site has been taken offline since the completion of the class, but below are several images displaying
the site and the type of data it showcased.
This final report extensively
goes into detail about the process of creating the site and exactly how it works.
This was the final project I did with a partner for 15-418: Parallel Computer Architecture and Programming, at CMU.
We simulated from scratch how 3 RNA viruses (HIV-1, Ebola, Influenza-a) propagated on a macro level from person to
person in six different cities around the world. Developed in C++ and sped up using NVIDIA's parallel computing
architecture, CUDA, resulting in an extensive speedup, averaging 8x. The actual simulation was displayed using OpenGL.
Here is a link to the website I set up, which better describes the project in detail. It has various reports regarding the
project and also a video demonstration of the simulation.
This is a link to the source for this project on github.
This was a major project for 15-437: Web Applications. I created a sophisticated nanoblogging site similar to Twitter, using Django.
It is an interactive web application, containing numerous features present in both Facebook and Twitter including user registration and
authentication, email integration for user verification, photo uploads, searching user posts, realtime updated newsfeed,
and following and blocking of other users.
I worked on the site by myself from start to end and below are several photos showcasing the site.
I can't post the project up on a public github repo since it was an assignment for the class, but I can provide
source code on request.