Library DB Spring/MySQL

Technologies Used: OOP, Spring Boot, Maven, MySQL

Implemented an API to retrieve information related to books and libraries. This includes which library a book is at and, if it is checked out, who has checked it out. Additionally, if a book is checked out, when it is due to be returned.

Jeopardy Game Frontend React/Typescript

Technologies Used: React, Typscript, Webpack, Fetch API, AWS

The front-end is written in React using Typescript. The reason for using Typescript and not Javascript was to learn about the features the Typescript offers. I used an API which hosts Jeopardy questions to populate the games questions. One lesson I learned while working on this project is that problem of mixed content. The API that I used is hosted on a domain using HTTP which I hadn’t realized until I tried to deploy the project to AWS. The project loads, however, the questions can’t since the content from the API is not hosted on HTTPS like AWS instances are. This was frustrating but it was a good learning experience.

J2Script

Technologies Used: Java, OOP, Compilers, Maven

A language and compiler developed with my classmates in our Compilers class. The language is called J2Script which is a transpiler that transpiles the code to Javascript. The transpiler was written in Java and we used Maven to handle dependencies. While working on this project, I learned a lot about what kinds of decisions are made when a language is developed and what goes into translating one language to another. Along with learning the technical aspects, I also learned how to deal with team members who were unable to complete their tasks.

EDA

Technologies Used: Java, OOP, JavaFX, Maven

A symbol editor intended to be used with a circuit designer program. This project used the JavaFX API to create the GUI. This was larger than any of the other GUI projects I had worked on and required a different mindset to fully understand how to string together all the pieces. Aditinally the backend logic added a second layer of complexity to the project on top of the larger GUI leyer.

Define

Technologies Used: Rust, Reqwest, Serde, Tokio

A command line dictionary application using the Free Dictionary API. Written in Rust using reqwest, Tokio and serde crates. Currently it supports en_US and es language codes. This project taught me how to use the serde crate and utilize the serialize and desrialize traits from the crate on the structs defined to represnt the data.

8080 Emulator

Technologies Used: HTML5, CSS, Javascript

An Intel 8080 emulator which implements most of the opcodes listed here. It also provides a screen which can be drawn on by setting the bytes in a certin region of memory. The goal of the project was to be able to load Space Invaders and display it on the screen. This has not been tested but it would not be playable due to the FPS limit of browsers limiting the speed of the emulated CPU. Before I began working on this emulator I had little experience wrting an emulator. I did, however, have an understanding of how a CPU works from school. One of the biggest challenges of this project was not having an easy way to store and use 8-bit numbers directly in JS. Additionally I was pushed to learn to utilize bit manipulation and as a result I became much more comfortable with use bitwise operators.

This Website!

Technologies Used: HTML5 and CSS

This portfolio website was create using just HTML and and CSS and hosted using GitHub pages. I wanted a place to more easily showcase my projects and share my contact info. I decided not to use any framework such as React since this is a small website and I believed that React or a similar framework would be overkill.