This page showcases a list of several interesting CS projects I have undertaken at CMU over the past 4 years. I have included github links where available and detailed information about each of them. If you would like more information about any of them, drop me an email at rkoganti@andrew.cmu.edu.

Keepin' It Realtime
Play online multiplayer unity games and get on the leaderboards!
  • Overview

    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.

  • Screenshots

    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.

    Realtime Realtime Realtime Realtime Realtime Realtime
  • Github

    Here is a link to the github project page.

CMU Linux Clusters Usage Info
Find out which clusters are free to use!
  • Overview

    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.

    Linux Cluster Info
  • Screenshots

    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.

    Linux Cluster Info Linux Cluster Info Linux Cluster Info
  • Final Report

    This final report extensively goes into detail about the process of creating the site and exactly how it works.

Simulating RNA Virus's Propagation in Real World Environments
Simulate the propogation of viruses in different environments!
  • Overview

    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.

  • Website

    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.

    RNA Simulation Project
  • Github

    This is a link to the source for this project on github.

Grumblr
Grumble with your friends!
  • Overview

    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.

  • Screenshots

    I worked on the site by myself from start to end and below are several photos showcasing the site.

    Grumblr Grumblr Grumblr
  • Github

    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.