Coding Projects

Talk is cheap. Show me the code. - Linus Torvalds

before forking space invaders
arrow pointing right
after forking code

Fomcore Invaders

This was a fun project that I did for a friend who works for a local company in Muskegon. They were going to a trade show and had the idea of creating a custom video game that was themed around their company.

I jumped at the opportunity to practice my newly formed programming skills and found some starter code on GitHub that I could mold into shape for my friend's user story.

After about 25 hours of work, the forked python game now included the following additional features that the starter code did not have:

  • New images to re-theme the game
  • Tweaks to the game play - bullet shooting speed, etc
  • High score tracking between games (json file used) with player names
  • A way for users to reset the high scores
  • An Ubuntu OS that starts the game automatically when it boots
  • Music background added
  • Resolution changed to 1080

It was a successful fork of a fun game to add some additional features. It was one of my first projects in coding and it wasn't the cleanest code I've written - if I were working on it now, I would try to refactor it for the functions and classes to be smaller and remove some duplicated code. But since it was a once and done project for a single trade-show, I didn't need to code to be perfect for maintainability.

Here is the link to my repository on GitHub: Fomcore Invaders

208 lines of code added (644 to 852)

Snow Day Calculator

Using an API from weather.gov and running a server-side node.js application

snow day calculator preview

Another fun thing I've done over the past 8 years is to collect data on what factors influence whether or not we have snow days in our local district. I created a snow day calculator in an Excel spreadsheet that correctly fit the data from the past 8 years with a 90% accuracy, and was eager to make a website that would share that calculation with others.

One thing I thought would be cool to incorporate into the application would be the integration of a weather API that pulls in the forecasted data and any weather alerts. Weather.gov's API proved to be an excellent candidate. I also practiced using the Local Storage to store the geolocation for the next time the user visits the site.f

Another factor in developing this project was creating a Node.js application on the server to keep the calculation formula private. Keeping the calculation on the server side protects the intellectual property of the snow day calculator so that someone else can't easily pirate the site.

In future revisions I hope to add advertisements to the site to help pay for the server costs. I would also like to improve the loading animations for users to know whether the API fetching is taking a long time or just broken.

Link to Snow Day Calculator

GitHub Repository

573 lines of code written

Memorization App

A duolingo-like memorization app

Sword Buff App

Another app that I would like to develop over time is that of a memorization app that is styled similar to Duolingo. In this initial version, I have the following features:

  • A list of passages that the user practices rehearsing
  • A progress bar to show how many more passages to rehearse
  • A responsive page that works on either a computer or on a mobile device
  • Input can either be by clicking (or tapping) on words or by using a keyboard
  • A reset button to try the current passage again
  • Javascript randomly puts the buttons in a word bank
  • A check button that grades the attempt and gives the correct order of words

This app has the potential of being far more than what it currently is. I initially set it up with a mySQL server to hold the different passages (which worked), but for this demonstration of the project, I just converted the database (I only had a few verses) into an object that can be referenced.

Link to Memorization App

GitHub Repository with this app and this whole portfolio website

612 lines of code written

(3077 lines of code in this portfolio too)

Future versions I would like to have the following features:

  • A way for users to have their own accounts
  • Users can add/edit/remove memorizing cards
  • Advertisements and a paid version that doesn't have ads
  • A database system that ages cards according to the forgetting curve and intelligently suggests which cards need to be worked on
  • A community space where users can interact with others (and potentially compete in how well they're doing)