Projects

Zoom Clone
This is a clone of the Zoom web app. It allows users to video chat with other users who join the same room. Users can choose a username and send typed messages in the chat section of the app. This app communicates through WebSockets which is facilitated through Socket.io and PeerJS. This app requires users to enable video and audio in the browser to work properly.

What's For Dinner
This app can help users decide what to do for dinner with the help of a fun spinning wheel. The app is for anyone who is having trouble deciding on dinner. Users can filter by restaurants or recipes. Users can sign up/login and save their own restaurants and recipes and can even mark favorites. I created this app to help my wife and I decide on dinner.

Hire Local
This app's goal is to help connect local businesses with local talent. The app is for small and local businesses who don't often make job posts, and local people who are looking to help and support these businesses. Users can post new jobs and search for jobs by zip code. Users can apply for jobs by uploading a resume on sign up or on their account page. In my area, there are lots of restaurants and small businesses who don't make job posts when they're ready to hire- instead they use word-of-mouth to try and find new employees. This app aims to make it easier for them to make job posts and find local employees.

Sports Biz Cares Fundraising Raffle
Sports Biz Cares is 501(c)(3) non-profit, whose mission is to create career opportunities for individuals that are passionate about sports and currently underrepresented in the sports business. This is a simple PERN app that enables Sports Biz Cares to upload a csv file and spin a wheel to randomly choose a winner for their raffles. The winner is randomly chosen based on the number of entries each person has according to the csv file. During 2020 Giving Tuesday, Sports Biz Cares chose to do a raffle-like auction. I built this app for them to make choosing a winner, easier and non-biased.

Freshlist Recipe Search
This is an app to search through Freshlist's recipes. Users can directly search through recipes or they can decide to filter by the course. This app is for users who are interesting finding new and exciting recipes. I built this app to practice with React Context and Router.

Website Bookmark App
This app can add, edit, and delete website bookmarks. Bookmarks can be rated and expanded to see more details about it. This app is for users who want an easy way to save bookmarks for later. I built this app because it was a project during my time at Thinkful.
LED strip reactive to temperature and sound
WS2812B LED strip controlled with an ESP32 development board. User can click a button to switch between three different programs. The first program interfaces with DS1820B temperature sensor, displays the temperature in fahrenheit on a 4 digit 7 segment, and fades the LED in and out in a color based on the temperature. The second program interfaces with a sound sensor and blinks the LED when it detects sound. The third program generates random RGB values and illuminates the LED accordingly.
ESP8266 records changes in temperature and POSTs changes to a server
ESP8266 reads temperature input from a dht11 temperature and humidity sensor. When it detects a change in temperature, the 8266 POSTs the new temperature to a remote server. This data is later read by an esp8266 at my home desk and displayed on an Adafruit 4 unit 7 segment.
Arduino Uno watches IR beam and when broken ESP8266 POSTs to a server
An Arduino Uno watches an infrared beam while an ESP8266 requests the data from the Uno. When the Uno detects that the beam is broken it shares the data with the 8266 where it POSTs the change to a remote server. These two programs are used to detect when my cat goes outside and comes back in.

Arduino Noise Machine and Night Light
A Wavgat Arduino reads mp3 files from a microSD card with a DFRobot mini mp3 player module. It then plays those files back through a couple small speakers and illuminates an LED strip in a calming, pulsing pattern in the color red. The volume can be adjusted by turning a potentiometer and a button allows for the changing of tracks. By default, this device plays a meditation track first, then loops through rain sounds for about 4 hours, until the device goes to sleep to conserve power.

Robot Continuum Arm
An Arduino Uno controls two servos that are attached to 3d printed pulleys. Each servo moves to a random angle (between two values) and rests for a random amount of time (also between two values). Fishing line is used to line the pulleys and a long spring is used as the body of the arm. 3d printed discs provide most of the structure and support.

Automated Cat Feeders
One ESP32 per feeder controls a continuous rotation micro servo to dispense food. Each ESP32 is connected to a Parent ESP32 over the ESPNow protocol. The Parent uses a DS1307 RTC module to track the time and alert the children nodes when it's time to feed the kitties. The feeders are fully 3d printed.

RetroPie GameBoy v2 and v1
V2 is a GameBoy shell with Raspberry Pi Zero W and Adafruit 2.4" TFT display. A large battery allows for longer play times. V1 is in a GameBoy Color shell and is too small for all the internals. V3 will include shoulder buttons and an X and Y button, as well as access to all ports and Raspberry Pi peripheries.