University Improvement

While studying at UMBC, I was a SGA (Student Government Association) Senator for three years (Sophomore - Senior). I focused on creating web applications to increase data autonomy and empower students to take control of their student experience.

Salary Search

As a Freshman in my Spring semester (2019), someone showed me the UMDCP's Salary Search tool, and how cool it was. I knew that UMBC employees were state employees since we are a public university, so after some quick googling, I found the Baltimore Sun's dataset. After cleaning the CSV, I used PapaParse on the frontend to convert it into a JavaScript object to make it easier to work with after fetching.

Open Now

Excited about the seed of the idea of creating applications for UMBC students to use planted by Salary Search, I turned my focus to information centralization and visualization. I found it quite hard to keep track of all of the opening and closing times for all of the various buildings and stores on campus, especially since weekend hours were different. I made this app to show which places were Open Now, Closing Soon, and Closed, as well as displayed the hours. Later on, I also added a section that displayed what the current meal period was. I eventually stopped development on the app because similar functionality was going to be added to our campus web portal, myUMBC.

Transit Activity Guides (TAG)

When I went to the STRIVE leadership retreat at UMBC, I was in a discussion group focused on thinking of ways to improve the weekend life at school. I had used the UMBC Transit system, which is free to all UMBC students, a few times to go into Catonsville and Arbutus, so I thought that was a natural point for providing students with things to do. The Activity Guide was a specific activity that a person could do if they got off at a certain transit stop. I initially wanted to allow users to submit their own, but I eventually decided against it.

Nap Map

Nap Map was an application that was inspired by a poster of the same name that I saw posted around campus by the Office of Health Promotions. I wasn't familiar with mapping libraries when I made the app, so I used a high-res screenshot of the campus map instead, and create a <map> element to allow clicking to view locations. Similarly to TAG, I initially wanted to allow users to submit their own, but I eventually decided against it. I stopped development on this project to get folded into a larger mapping application called Grit Map.

UMBC ID Scanner

UMBC provided handheld barcode laser scanning to scan UMBC IDs for event attendance, but they had a limited amount, which often created bottlenecks at larger events. I used the Quagga barcode scanning API that worked on HTML5 Camera streams, and used the Google Sheets API to automatically record scanned barcodes. It probably would've been better to do server-side barcode analysis, but I didn't/do't have the infrastructure for that. I stopped development on this project because it was kind of impractical to do this on mobile devices, and myUMBC was potentially planning on implementing a QR code for students that would allow for a much better scanning experience.

Meal Breakdown

The next app that I made during my Freshman year was a meal plan analysis tool. I figured out that you could download the data of your meal plan swipes as a CSV, so using the lessons I learned with PapaParse from Salary Search, I was easily able to get the data into a usable state, to which I used D3 to visualize the data. This was a lot of fun to make, in addition to being an excuse to learn D3.

Menu View / Food Notify

In the summer before my Sophomore year, I wanted to develop an idea I had for awhile, an application that would notify you when your favorite meal was being served at the dining hall. I got pretty far in the Node.js version, before I learned that the UMBC infrastructure only allowed for LAMP stack applications. I didn't want to rewrite my work, so instead I just focused on the menu viewing functionality, as the DineOnCampus website was super slow.

Conversation Cards

Our Vice President for Student Affairs, Dr. Young had this stack of cards with various conversation prompts that she had in her office that she would use to kick off meetings with students. In a way to make this endlessly portable, I created a simple web application that allows you to shuffle through the cards to pick a prompt. You can also change the color of the cards to any of the UMBC brand.

UMBC Generator

One of my favorite things to do was to create new meanings for the UMBC acronym. In an effort to make this process more random and potentially more humorous, I made this application that queries a Word API to find words that start with U, M, B, and C to facilitate the process of creating new meanings for UMBC.

Waste Sort

Also in the summer, since I had just learned more about the HTML5 Drag API, I created this waste sorting game as a way to teach students what materials went in which bin.

Wasted Tuition Calculator

During my Sophomore Fall Semester (2019), as a somewhat tongue-in-cheek gesture, I created this application to calculate the amount of tuition money that was wasted if a person skipped their class. It's a simple calculation, but a funny, but also rather powerful reminder of how much your education costs.

Luck Simulator

One of UMBC's most enduring traditions is that before midterms or finals, students will rub the nose of the statue of True Grit (our mascot). During the COVID-19 pandemic, not many students had access to campus, but I still wanted people to be able to rub True Grit's nose for good luck. So in December 2020, inspired by UMD College Park's version, I decided to create one for UMBC and was able to get it pushed out to UMBC students before finals.

Grade Calculator

One of my biggest pet peeves about Blackboard (UMBC's LMS application) is that most times the professor does not configure it to calculate your final grade. Additionally, Blackboard has no ability to to What If grading, like what Canvas LMS has. I sought to create this with an application that can do weighted grade calculations with What If calculations. I also wrote a bookmarklet that would allow students to scrape their grades from Blackboard and import it into the application to facilitate a quicker application onboarding process.

Crime Report Parser / Crime Incident Visualizer

During my Junior Spring Semester (2021), I was finally able to work on a project that had been on the back of my mind for a whole year. I knew about the UMBC Police public incident reports, and I tried to parse it, but I couldn't pull it off. Then I found pdf.js-extract which allows parsing of PDF documents without OCR, and then creating the parser was smooth sailing from there. Then I was able to plot the points on the UMBC Campus MapBox map that was created by the UMBC Sys Admin/Software Development club.

GPA Calculator / Transcript Analyzer

Since UMBC doesn't use the +/- system, I always found online college GPA calculators to be quite annoying, so I set out to create my own. That was easy enough, but then I wanted a way to quickly calculate cumulative GPA which was hard, because I needed a way to import a lot of class data. Then the SGA President suggested the Unofficial Transcript, which was perfect because I just adapted pdf.js-extract for the web, and created a parser for the transcript document. Transcript Analyzer has a slightly more advanced parser, and shows more information as well as lets the user search and sort through their data.

Grit Planner

Some classes at UMBC are only offered during certain semesters i.e. Fall and Winter, or only Spring, etc. This application utilities historical course offering data in order to predict whether a class will be offered during a certain semester or not in order to allow students to more accurately plan out what classes they will take and when. It utilities API data from Gritview to get enrollment information and course offering data.