top of page

PERSONAL CODING &
TECH PROJECTS 

I present an array of personal projects that serve as self-driven learning experiences to further the understanding and application of computer science and computer-aided design software, or to learn new ways to connect communities. I chose to specifically utilize unique APIs and data assimilation techniques to crate projects across various disciplines.

Free-Busy

Conference Room Free/Busy Screen

Summary

This program, written in Python, connects to Microsoft Outlook to fetch and display the availability of a conference room by analyzing its free/busy schedule. It uses a GUI to show the room's current status, upcoming meeting times, and time remaining until it becomes free or occupied.

​​

I created a successful proof of concept and worked on designs in Figma. As presented, the goals are to add  meeting details and additional frames.

Purpose

At EHOB, we have two conference rooms, and we were unaware if the rooms were booked or free becuase there was no visual indicator. 

​

I created this project as a potential non-enterprise solution to visualize the free/busy status of the room at any point.

Free_Busy Work Android Setup (1)_edited.

Libraries and Programs Used

Working Proof of Concept (left), Figma Designs (above), Interactable Prototype (below)

win32com, tkinter, Figma

Album Poster Generator

Album Poster Generator

Summary

This program is written in Python and creates a album poster when provided a album title or Spotify Album ID. It uses the Spotify API to gather important information required for the poster, then filters and organizes the information to be aesthetically pleasing. 

I also created a program that uses pyautogui to automatically upload to Redbubble without any user input. 

Purpose

I recognized that posters are a simple method to generate passive income, as the development of the posters is relatively consistent across artists and companies have organized the printing and shipping automatically. 

Libraries Used

spotipy, pynput, pyautogui, tkineter, PIL, datetime, colorthief

PPTX-to-DOCX

PPTX to DOCX Convertor

Summary

This program, written in Python, is designed to help users create outlines directly from the text of a Microsoft PowerPoint or Google Sheets presentation. It takes the title blocks and bullet points from the slide body to organize the information into an outline that is exportable into Google Docs, Microsoft Word, or a flashcard software like Remnote. 

Purpose

When my girlfriend was studying for Physician Assistant school, she would spend hours copying and pasting the lecture slides textboxes into Remnote, a popular space-time repetition software. 

​

Because of the hours this software saves for students, I decided to make the product available for users at a reasonable price point, and is available on Payhip below.

Libraries Used

python-docx, python-pptx, tkinter

Multiple Distributions Grapher

Multiple Distributions Grapher - Website

Summary

This website is written in react.js and is designed to help users complete and compare datasets using basic statistics. This website allows users with the following:

  • Calculate Averages and Standard Deviations

  • Determine outliers

  • Classify datasets as from the same population or not (T-Test)

  • Determine the likelihood of values occurring within a threshold

  • Plot Distributions when Mean and Standard Deviation are provided

  • Plot Distribution when the data is provided. 

Purpose

During my first few months at EHOB, I recognized that data analysis for lab experiments was important, yet online tools did not allow me to compare multiple datasets simultaneously. I created this website to help aid my team in viewing multiple datasets in one cohesive image.  

Screenshot 2024-10-20 192605.png
JobHarvest

JobHarvest - Chrome Extension

JobHarvest.png

Summary

JobHarvest is your Gmail to Google Sheets pipeline for your job search! The extension parses your job alert emails and allows your to filter and copy for your Job Search spreadsheet

This extension parses your email to look for Job Alerts from major Job Boards. It will then compile the data and provide a table to copy and paste into or directly send to your spreadsheet. 

Future versions will improve breadth of preferences and job alert email types and an automatic email-to-sheets pipelining.

Screenshot 2024-02-07 at 6.21.53 PM.png
Morewood Monitor

Morewood Monitor

Summary

While at CMU, I was given a series of computers that were not being used by the University. I used one for my personal projects, and the other for my fraternity, AEPi.

This computer was used for Booth, but was ultimately delegated to the Morewood Monitor. The Morewood Monitor was a Pledge Project for the class that I was the Rush Chairman for -- creating a program that can read the stoplights at the corner of Forbes and Morewood and predict when the light will turn green. When my peers leave AEPi, they will be able to time their exit such that they minimze their time in the cold by crossing the street right when the walk sign lights up.

After this project was unsuccessful during the Pledge Program, the computer was repurposed for the screen you see on the right.


The Morewood Monitor featured the following items 24/7:
- Date, Time, and Temperature of current day
- AEPi Calendar events (Google Calendar API)
- Next buses and their times for the nearby bus stops (PGH Bus API)
- Kitchen Cleaning Duties (Google Spreadsheet API)
- Half off Jake Shake (NHL API
- Phone Number of Fraternity Chef and myself

This was used and up-kept by myself until a liquid spill destroyed the computer. Its positive impact on the AEPi community will be remembered.

MorewoodMonitor_edited.jpg
Bus Stop Data

Bus Stop Data GUI

Summary

This Python script creates a graphical user interface to display real-time information about the bus prediction times for a specific Pittsburgh bus stop. It uses the Port Authority BusTime API to fetch predictions for the designated bus stop and organizes the retrieved information, continuously displaying and updating the bus routes along with their respective arrival times on the GUI.

​

I created a Proof of Concept version that I used for myself, then created prototypes in Figma.

​

I presented this to a group of people at Carnegie Mellon University in charge of construction and campus projects, but was not requested to pursue further due to complications in costs and manufacturing.

Purpose

I was living about 1 mile from campus during my graduate semester and wanted to ensure I was not late to my classes. This screen helped me plan my morning, including what clothes to wear and which busses helped me get to my location.

Libraries and Programs Used

pghbustime (Port Authority BusTime API), tkinter, requests, datetime, Figma

J4 - bus info.png

Working Proof of Concept (left), Figma Designs (below)

Lyrics Viewer

Lyrics Data GUI

Summary

This Python script integrates with Spotify to create a graphical user interface that displays playback details, including the song, artist, and progress. It continuously updates the GUI with real-time information about the currently playing song, along with synchronized lyrics. It has the option to play/pause, rewind, or fast forward directly from the GUI.

Purpose

I listen to music while showering, but would like to view song lyrics without damaging my phone. This project is the first step to making a screen in the shower that would show me the lyrics.

Libraries Used

Customtkinter (nicer-looking tkinter), spotipy, datetime, lyricsgenius, syncedlyrics

J5 - lyrics1.0.png
Youtube Uploader

Automatic Youtube Uploader

Summary

This Python script takes in videos created by other models and automates the timing and release of these videos to a YouTube channel. This script enhances each video with background music and incorporates tags, titles, and descriptions for each video type.

Purpose

In the pursuit of streamlining content creation, I leveraged Python scripting to automate the generation and uploading of videos on YouTube. Focused on disseminating insightful content effortlessly, this script minimizes manual effort while contributing valuable insights to a wider audience.

Libraries Used

simple_youtube_api, datetime, cv2, moviepy

View GitHub (Coming Soon)
asd.png
Hurricane Timelapses

Weekly Weather Timelapses

Summary

The Python script is a comprehensive tool designed to aggregate and manipulate satellite image data from publicly available datasets. It employs data extraction, to gather pertinent information about satellite missions and channels. The focus of the script is on compiling data related to regional weather patterns and hurricanes and utilizing advanced image processing libraries to manage, enhance, and organize the collected imagery. The end objective is to create visually compelling time-lapses and videos that dynamically illustrate the evolution of weather phenomena over time. 

Purpose

Inspired by the dynamic content available on NOAA's website, I developed a system for automatically creating engaging timelapse videos to be uploaded on Youtube..

Libraries Used

PIL, requests, beautifulsoup, cv2, numpy

View GitHub (CS)
Timelapse1.png
Timelapse3.png
fds.png
Timelapse2.png
Email Scraping

Email Scraping - Expenses and Job Search

Summary

This Python script systematically gathers and processes job and expense-related information from emails. It classifies incoming messages by sender domains, such as LinkedIn or Glassdoor for job search and Venmo or my bank account for expenses, and then extracts pertinent details like sender, subject, or quantity paid. Specifically tailored parsing mechanisms are implemented for each sender type to ensure accurate extraction of information and is then placed in Google Sheets spreadsheet. This helps automate the tracking of my expenses and automate my job search using the pre-determined email alert systems utilized by most companies.

Libraries Used

google, googleapiclient, beautifulsoup, datetime

Expense.JobSearch.drawio.png
Jake Shake Twitter Bot 

Jake Shake Twitter Bot

Summary

The Milkshake Factory offers a deal during the hockey season that if Jake Guentzel, Pittsburgh Penguins player, scores during a game, "Jake Shakes", one of their popular milkshake flavors, are half off the day after. This Python script checks the recent goals scored by the NHL player Jake Guentzel by scraping the relevant information from the official NHL website. The script then evaluates whether Jake Guentzel scored a goal the day before and, posts a tweet indicating that Jake Shakes are half off today.

Purpose

In my fraternity, AEPi, there was a tradition to get the promotional shakes whenever Jake Guentzel scored. I developed a program to inform us of the discount.

avb.png
J7 - Jake Shake.png

Libraries Used

Datetime, pandas, requests, tweepy

Billboard Top 10

Dynamic Top 10 Chart Visualizer

Summary

This Python script dynamically generates animated line graph videos illustrating the changing rankings of the top songs on the Billboard Hot 100 chart for a given period of time. Through a systematic process of data retrieval, processing, and visualization, it produces an MP4 video, where each line corresponds to a song and its movement signifies shifts in rank. The script introduces an element of randomness by allowing the creation of videos for different time frames such as years, seasons, or quarters, enhancing the diversity and unpredictability of the generated visualizations.

Purpose

Recognizing the expansive potential of the Billboard dataset, and looking for additional videos to post to my YouTube channel, I devised a script to convert Billboard data into compelling video content. 

Libraries Used

billboard, pandas, and bar_chart_race

BillboardPic.png
bottom of page