zack dunham

web developer

Photo of Me

about me

projects

Cardle

A daily game (like Wordle) where the user has to guess a blurred Pokémon card. Card gets less blurry as user guesses. Gets card data from the Pokémon TCG API and stores it in a MongoDB database for less calls to an external API. Also uses MongoDB to store previous days' cards so users can play previous days.
Built using React/Next and Tailwind.

Cardle iconCardle screenshot

Cardle

Ratbase

A Discord economy bot with minigames, stocks, trading, and more. Designed to be run as a Docker container and can be modified using JSON configuration files. Stores information in a MongoDB database and uses Decimal.js to manipulate large numbers and allow for Decimal128 numbers to be reached.
Built using discord.js and TypeScript.

Ratbase iconRatbase screenshot

Ratbase

Pokémon Legends: Z-A Shiny Tool

A fork of swemu-plus-plus by ironandstee1 to shiny hunt using the fast-travel method and different macros in Pokémon Legends: Z-A. Uses a ATMega32U4-based Arduino board and a 3D printed 5x5 button matrix to send inputs to a Nintendo Switch (2) console.
Built using C++ for Arduino.

Pokémon Legends: Z-A Shiny Tool iconPokémon Legends: Z-A Shiny Tool screenshot

Pokémon Legends: Z-A Shiny Tool

RCON Web GUI

A modern interface for connecting to game servers using the RCON Protocol. Uses a SQLite database to store information for multiple servers, including encrypted login information, command history, and favorite commands. Able to be run as a Docker container using the included Dockerfile and docker-compose.yml files.
Built using React/Next and Tailwind.

RCON Web GUI iconRCON Web GUI screenshot

RCON Web GUI

Deal or No Deal

A Deal or No Deal web game built with a modern framework. Uses game logic from NBC's Deal or No Deal flash game from 2008 to determine banker offers (credit toDave Gentile and Kevin Huculak).
Built using React/Next and Tailwind.

Deal or No Deal iconDeal or No Deal screenshot

Deal or No Deal

BonesNode

A port of the game Dice 10000 to web. Uses Socket.io to create private online rooms to be able to play with others over the internet.
Built using Node.js, JavaScript with Babel and Gulp, and HTML/CSS with Handlebars and SASS.

BonesNode iconBonesNode screenshot

BonesNode

Who's that Pocket Monster?

A "Who's that Pokémon?" webgame. Pokémon images taken from Bulbapedia using ImageScraper and manipulated using either Canvas (if on desktop) or CSS image filters (if on mobile).
Built using Node.js, JavaScript with Babel and Gulp, and HTML/CSS with Handlebars and SASS.

Who's that Pocket Monster? iconWho's that Pocket Monster? screenshot

Who's that Pocket Monster?

Pokémon TCG Booster Pack Simulator

A Pokémon TCG pack opening simulator. Uses the Pokémon TCG API to get card/set data, and pull rate data from various sources in an attempt to be accurate to each set's own pull rates.
Built using Node.js, JavaScript with Babel and Gulp, and HTML/CSS with Handlebars and SASS.

Pokémon TCG Booster Pack Simulator iconPokémon TCG Booster Pack Simulator screenshot

Pokémon TCG Booster Pack Simulator

Viewarr

Connects to Sonarr and Radarr APIs to display movies and shows currently available or requested on each service.
Built using React/Next and Tailwind. First project using Next.

Viewarr iconViewarr screenshot

Viewarr

Dragon Ball Audio VisualiZer

A Dragon Ball Z-themed audio visualizer project. Audio frequencies are displayed using HTML5 canvas in conjunction with an audio context object.
Built using JavaScript, Bootstrap, and HTML/CSS. Team project with Iseult Marshall.

Dragon Ball Audio VisualiZer iconDragon Ball Audio VisualiZer screenshot

Dragon Ball Audio VisualiZer