Projects
HBnB
View the source of this content.
An AirBnB clone built with RESTful API and a MySQL ORM.
- A full-stack project with a custom CLI, temporary JSON file storage, persistent MySQL database using an ORM model, RESTful API, and unit tests to test different features of the project.
- Takeaways from this project were a better understanding of implementing valid and thorough unit tests, creating a robust RESTful API, creating object-oriented Model classes and understanding the proper linking to the MySQL database, and using jinja templating with the API to display dynamic data from the database.
- Built using Python Flask, MySQL, sqlalchemy, JavaScript, HTML, and CSS.
Simple Shell
View the source of this content.
A re-creation of a UNIX shell.
- To better understand how a terminal parses and interprets a users input, this project was an attempt to re-create parsing of user input and using system calls (fork, execve, waitpid) to execute the executable command given.
- Steps taken included parsing, replacing aliases, determining if command is a built-in, forking a child process, searching the $PATH environment variable for the executable, handling the command (whether valid or invalid), and printing prompt again after completion.
- Built using C with restrictions on which libraries could be used.
The Game
View the source of this content.
A 2D Multiplayer shooting game via the browser.
- With a team of 5 and built over a 6-day period, our goal for this project was to discover creating a multiplayer shooting game.
- My main focus on this project was to learn and use Phaser, a JavaScript physics game engine, to build the canvas element and apply game logic and functionality.
- Implemented Agile development methodologies with object-orientation for easy translation of data to our websockets.
- Built using MongoDB, NodeJS, ExpressJS, Socket.IO and Phaser.
Monty Interpreter
View the source of this content.
An interpreter for Monty ByteCode files utilizing Stacks (LIFO) and Queues (FIFO).
- Monty is a scripting language that is first compiled to Monty ByteCode (just like in Python). It relies on a unique stack, with specific instructions to manipulate it. This project is a recreation of compiling simple Monty ByteCode files.
- Main focus is to create linked lists in C to emulate stacks and queues in storing and retrieving information.
Terminal Chess
View the source of this content.
A simple 2 player chess game played in the terminal.
- Implemented keystrokes, color of board and pieces, and basic game functionality.
- Built using Ruby, creating object-oriented models.