Projects

maxgravitte.com

[return]

Isometric Game Engine

This is an isometric (2.5D) game engine. The goal of this project was to write code to handle the various components of an isometric game engine. I wrote it in Java using the Lightweight Java Game Engine (LWJGL), a library that provides bindings for OpenGL and other C/C++ libraries.
It handles the following:

You can find the code for the engine here. You can find the code for a demo game here.

Logisim uMips processor

Logisim is a program that simulates digital logical circuits. Using this tool, I designed a processor for a simplified version of MIPS assembly language. Above is a high level view of the schematics. The architecture consists of the following:

This project was made for CS447, a course on computer organization and design.

PostgreSQL database project

This is a flight and airline management program written in Java and PostgreSQL for CS 1555, a database management course. The goal of this project was to keep track of a number of airlines, their airplanes, and their flight schedules: time, date, start, destination, plane. The databse also holds discounts for specific customers, and plane capacities. The database also required various triggers to handle events like a plane filling or a flight being canceled. Using this information, the Java program can take a start and a destination city and calculate the most efficient trip by generating a Graph and running a BFS with the starting and destination city.

Web Development and Flask

For CS 1520 Programming Languages for Web Applications, I wrote four projects involving Javascript (frontend) and Python/Flask (backend).

The first project was to create a 2-player Battleship game using pure HTML/JS. Building this project taught me advanced ways to manipulate the DOM and the basics of event driven programming.

The following three projects used Python and Flask, a microframework for building web applications. In addtion, SQLAlchemy was used as an ORM for the database of these projects. Each of these projects were similar in their setup, but varied by requirements in order to demonstrate different techniques when building web apps. Here is a list of projects 2-4:

Cloud Computing Project

This term project was created for CS 1660 Intro to Cloud Computing. The goal of this project was to create an application that uses Hadoop for processing very large datafiles, ideally greater than 182MB. The application allows the user to create an inverted index on multiple large textfiles. These inverted indices can then be used to find where a given search term appears, or to calculate the top N frequent terms.

I used Google's Cloud Platform as to host the Hadoop Cluster. They provide a very convinient interface for their suite of cloud computing tools. A java GUI provides an interface to upload files to the GCP cluster, and to retrieve the results of the queries.

I think this course was particularly valuable, as many large companies are pushing to migrate their monolithic applications to a distributed, cloud paradigm. In this course I did a few other smaller assignments worth noting. The first assignment was to create a simple Java GUI, then run it inside a Docker container. The second assignment involved using Amazon's Web Services to create a DynamoDB and a bucket to hold loosely structured data from a hypothetical experiment. Other assignments were similar to the term project but much simpler. Here are links to their respective github repos.
Term Project
AWS Assignment