Work

Blog

About

Resume

Vin Bui's Logo

Work

Blog

About

Resume

Grabbit

Don't Stress, Just Grabbit!

ROLE

Designer

Developer

TIMELINE

Summer 2023

FRONTEND

SwiftUI

BACKEND

Node.js + Express

Firebase

Image of the Grabbit project

A Student’s Nightmare

It's 7:30 a.m. on the first day of course enrollment at Cornell University. A student eagerly tries to register for their chosen classes, only to be met with a frustrating "spinner of death" followed by disheartening red X's. They've been shut out of their desired courses. Now what? Their only option is to constantly monitor Student Center, hoping to catch a seat opening—an unpredictable and disruptive process.

At Cornell, the competition for course enrollment is fierce. Students often find themselves in a race against time, unsure when or if a coveted spot will become available. They may miss out due to busy schedules or the sheer volume of students vying for limited seats. This uncertainty and stress detract from the overall student experience.

Grabbit is a mobile app designed to alleviate these pain points. By providing real-time notifications when a seat opens in a student's desired course, Grabbit empowers students to proactively manage their schedules and secure their desired courses.

Your Secret Weapon

Grabbit is a mobile app designed to alleviate these pain points. By providing real-time notifications when a seat opens in a student's desired course, Grabbit empowers students to proactively manage their schedules and secure their desired courses.

Instant Notifications

The cornerstone of Grabbit. Students receive real-time push notifications the moment a seat opens up in a desired course, eliminating the need for constant manual checking and ensuring they never miss an opportunity.

Effortless Search

A streamlined search function allows students to quickly locate and start tracking their preferred courses. No more navigating complex menus or sifting through endless lists.

One-Tap Tracking

Students can easily add or remove courses from their tracking list with a single tap, accompanied by haptic feedback and visual confirmation for a seamless user experience.

Turbocharged Enrollment

Upon receiving a notification, students are redirected to Grabbit's home screen. Here, a clear "Enroll" button and a code-copying feature is displayed for each available course. This optimized workflow enables lightning-fast enrollment directly through the Student Center website.

☝🏻 Tracking/untracking flow and enrollment process.

Building the Engine

Grabbit leverages Cornell's existing IT infrastructure to streamline development and ensure real-time accuracy. By integrating directly with the Class Roster API, Grabbit gains access to comprehensive course information and enrollment status updates.

A Firebase Cloud Function, scheduled to run every minute, acts as the engine behind Grabbit's instant notifications. This function continuously polls the Class Roster API, comparing the current status of each tracked course against its previous state. If a course transitions from "Closed" to "Open," Grabbit swiftly identifies all users tracking that course and sends them immediate push notifications, ensuring they never miss a chance to enroll.

To optimize search functionality and minimize data redundancy, Grabbit's interface directly queries the Class Roster API whenever a user searches for courses. This approach eliminates the need for Grabbit to maintain a separate course database, saving valuable resources and reducing potential inconsistencies.

For personalization and enhanced security, Grabbit requires users to authenticate via Google or Apple sign-in. To maintain optimal performance and data integrity, the backend database is cleared before and after each enrollment period, ensuring that users receive only relevant notifications and that the system remains efficient.

Push notifications and the landing screen of Grabbit.

☝🏻 Push notifications and the landing screen of Grabbit.

Built on a foundation of Node.js and Express, Grabbit's backend REST API handles core functionalities such as user creation/deletion and course tracking/untracking. Notably, Grabbit marked my first foray into building a full-fledged application using SwiftUI, after having previously worked with UIKit. This project allowed me to expand my skill set and gain valuable experience in crafting a user-friendly and efficient mobile application.

Expanding the Horizon

While Grabbit has successfully addressed a major pain point for Cornell students with iOS devices, its potential extends far beyond its current reach. Expanding to Android is a clear next step, with the choice between building a separate Kotlin codebase or embracing a cross-platform framework like Flutter or React Native offering distinct advantages in terms of development efficiency and resource utilization.

Beyond platform expansion, exploring a web-based version of Grabbit could further enhance accessibility, catering to students who prefer web interfaces or primarily use laptops and desktops. Additionally, investigating potential integrations with Cornell's official course registration system could streamline the enrollment process even further, reducing friction and enhancing the overall user experience.

By continuously iterating on Grabbit's features and functionality, I aim to solidify its position as the go-to tool for course enrollment at Cornell, empowering students to take control of their academic journeys and achieve their goals with confidence.

Status Platform

Volume

Image of VinBot

VinBot

Hi!

I’m VinBot. An AI assistant here to answer your questions about Vin Bui's portfolio.

How can I help you today?

Let's turn your ideas
into reality!

Unleash our creativity and make something extraordinary happen. Send me a message and let's explore the possibilities.

Designed and developed by Vin © 2024

Designed and developed by Vin © 2024