Projects
Unplugg - March 2023 - Present
With a friend who designed the UI, I created this single page React app that allows users to create custom breathing patterns, or use presets, to practice focused breathing. The app intends to provide users with the experience of being able to unplug from the world while working at home. It will eventually have a back-end and user sign-up system, as well as the ability to save their custom configurations.
Hosted the project with Github pages.
Utilized React to provide its responsive front-end, and makes heavy use of the useEffect hook and functional components.
Implements modern website design practices with HTML and CSS.
Green Lake Pickleball Website - May 2022 - Present
Website for the local pickleball community at Green Lake East in Seattle. Provides information and points of contact, court plans, embedded camera feed, news, photos, and more.
Hosted the project with Github pages, with its own custom domain.
Utilized React to provide its responsive front-end, and React State to handle the toggling FAQs.
Implements modern website design practices with HTML and CSS.
React Articles Project - September 2020
This application lets users log in and sign up, create, edit, and delete articles. It also allows for commenting and viewing of each article separately, and the rating of comments and articles via likes.
Established the Redux store to make the state available to all React components in the application.
Utilized a Rails API to locally store users, articles, comments, and likes, and to manage their creation.
Created actions, reducers, and components for views of the application to allow for smooth front-end navigation.
JavaScript Maze Game - June 2020
This application is a game written with a Rails back-end that allows users to log in and out, as well as a front-end in JavaScript that lets users play a game, create scores, and display scores of all users and each user separately.
Utilized a Rails API to store users and scores in local storage.
Rendered the front-end with a Javascript canvas to display the game loop and allow user interaction.
Retrieved serialized JSON data with fetch requests to get information to be displayed on the front-end.
Parsed JSON data to display each Score, formatted with the date it was created, the user, and the score itself.
Rails Tournament Manager - April 2020
Offers basic login and sign up functionality. The user can create, save, and update tournaments and games. Each tournament can be joined by many users, and each game has many tournaments. Each model has validations.
Rendered the front-end within erb files to display all of the tournaments, users, and their relationships.
Managed the routing of paths with dynamic and nested routes to show accurately how models interact.
Created controllers to handle the actions of create, show, index, update, and delete for all models.
Utilized migrations to create the database schema and each property or reference of the tables.
Starcraft 2 Unit Collider - October 2018 - 2020
The Starcraft 2 Unit Collider, now called The Unit Comparator for Starcraft 2, is a companion app for StarCraft 2 players, though not associated with Blizzard entertainment. It's most unique feature is the ability to compare unit interactions between single units, and determine the length of battle time they would have theoretically if loaded in StarCraft 2, as well as the number of attacks each unit makes, the HP remaining for each unit, and so on. The algorithms used mostly do a lot of arithmetic to determine the outcome based on HP, Armor, Attack, and other statistics, and time counters are never used. There's also a quiz section, and in depth data on each unit in the game.
This was my first large scale application that I made entirely by myself, and it has since been downloaded over 10,000 times (as of Nov. 2020).
Written in Java, using Android Studio, and first published to the Play Store in October 2018, this app has been around for a while, and if I had more time to maintain it, it could probably be updated to be more efficient. It uses a local database made with SQLite, saved to the device if not already created, and updated whenever I push Play Store updates. There is no external API used, and no need to communicate online after installation. This has its advantages and drawbacks. The main advantage, is access anywhere, and no need to worry about connection. The main disadvantage is of course that if Blizzard decides to change a unit in StarCraft 2, it will not immediately update itself, and I will eventually have to push an update to the application in order to keep the data as current and accurate. Because of generally messy code, I decided to make the github repository private, but I'm more than happy to provide the code upon request.
Farkle Bot - April 2019
I created an AI that played the dice game of Farkle, just for fun in Java. This app has a collection of messy Java for loops, but it does the job. It's somewhat humorous, and will comment on the outcome of each move. Not without bugs.
Dvorak Keyboard - April 2019
The Dvorak keyboard layout is an alternative to the QWERTY keyboard layout. The layout is much more efficient with a full sized keyboard, but for those seeking a Dvorak keyboard on Android devices, this app might be for you!