Don't Stress, Just Grabbit!
ROLE
Designer
Developer
TIMELINE
Summer 2023
FRONTEND
SwiftUI
BACKEND
Node.js + Express
Firebase
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.
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.
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.
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.
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.
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.
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.
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.
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.
VinBot
Hi!
I’m VinBot. An AI assistant here to answer your questions about Vin Bui's portfolio.
How can I help you today?
Unleash our creativity and make something extraordinary happen. Send me a message and let's explore the possibilities.