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.
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.
_edited_.jpg)
Libraries and Programs Used
Working Proof of Concept (left), Figma Designs (above), Interactable Prototype (below)

win32com, tkinter, Figma
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



Describe your image













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 - 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.

JobHarvest - Chrome Extension

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.

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.

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

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


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

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

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




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

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.


Libraries Used
Datetime, pandas, requests, tweepy
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
