Joel Porter

a photo of Joel

I am a full-stack web developer with a bachelor's degree in software development. I have built projects using HTML, CSS, JavaScript, React, MongoDB, EJS, Node, PHP, Laravel, MySQL, Java,and more.


Web Fiction Reviews

Web Fiction Reviews aggregates original stories that have been published online. Users can login, add and review their favorite stories, upvote quality reviews, search for stories by genre or title, and view the most popular stories.

I built Web Fiction Reviews with Node and ExpressJS, using EJS to manage dynamic data and Bootstrap for a sleek user interface. Stories, reviews, and users are stored as models in MongoDB Atlas through Mongoose. Passport and nodemailer authenticate users and validate user email addresses.

Academy Toolbox: Visual Multiplication Calculator

I built this Visual Multiplication Calculator with React. I drew from my elementary teaching experience to present a range of visual strategies to solve user-generated multiplication problems.

Academic Planner App

This Android app allows students to add, edit and delete their terms, courses, and assessments. Users can set notifications for upcoming courses or assessments, and share notes from the app directly to email or messenger apps.

I built this app in Java, using Room to create and manage an SQLite database.

The code is available on request.


iHotCoral was commissioned by a coral researcher who was looking for a way to upload, organize, and view photos of coral in a structured format with pre-filled relevant metadata. Users can conveniently upload images in the field, share experiments with collaborators, and download photos into an organized file structure. I built iHotCoral with MongoDB Cloud Atlas, Express, React, Node.js, and Bootstrap.

JigSauce Puzzles

This interactive, online digital puzzle blends technology and art. Users can solve a variety of puzzles, which will resize for various browsers or mobile devices. Built with HTML, CSS, and vanilla Javascript, pieces are randomly yet intentionally shaped using Bezier curves and the Canvas API.

Appointment Scheduling Desktop App

This desktop application provides an interface for businesses to add, edit, search, and delete appointments and customers.

I built this program in Java, using a JDBC driver to connect to a MySQL database. I crafted the user interface with JavaFX and SceneBuilder.

The code is available on request.

Randy Porter | Professional Jazz Pianist

I built this multi-page website from scratch using HTML, CSS, and vanilla Javascript.


My first bachelor's was a double major in Spanish and Philosophy, Politics, and Economics from Claremont McKenna College. I have a Masters of Education from Stanford University and five years of teaching experience.

I graduated with a bachelor's in Software Development from Western Governors Univeristy in May 2023.