CUNYGPT
Built by: Mubarak Odufade, Jack Hachicho, Harmain Munir, Idris Hassan
Project Introduction
CUNYGPT is designed to provide CUNY students with easy access to essential resources right at their fingertips! Say goodbye to the hassle of searching for hyperlinks and endlessly browsing on Google. With CUNYGPT, all the information you need is just a chat away.
Currently CUNY GPT boats over 17000 cuny courses and 30000 job posting + skills, with information on resources around all New York Boroughs.
Why CUNYGPT?
As CUNY students, we know that accessing essential resources can be challenging. Nearly 77 percent of HealthyCUNY survey respondents said they were unaware of food insecurity services on their campus. The vast array of information can be overwhelming, and accessing the right help at the right time is often difficult.
- Chat Application: CUNYGPT is a chat application that allows students to interact with a custom chat application designed specifically to answer questions related to their essential needs.
- Resource Access: The app provides a streamlined way to access helpful resources, ensuring students have the support they need without the frustration of traditional search methods.
Challenges Faced
We ran into difficulties switching between different frameworks like React and Next.JS to successfully integrate the back-end with the front-end. Back-end developer Mubarak made the initial decision to switch the project to Vite, but towards the final days of the Hackathon, ultimately made the tough decision to integrate what we had into Next.JS, causing changes to the front-end where Jack and Harmain had to adjust code to fix visual bugs. Switching frameworks simplified backend integration by allowing everything to run on one server. Using React required configuring an Express.JS server with Vite + React, which we didn't have time for.
Team Learning and Development
It was definitely a huge learning jump for our team:
- Harmain: Had not used ChakraUI previously to this project but was able to seamlessly pick it up and now believes it is a great tool!
- Idris: Had no prior experience with automating and data scraping using Python. However, with the help of peers, he learned enough to increase efficiency.
- Jack: Had previous experience with React but not with Next.js. He was able to learn enough of it, coupled with ChakraUI, to work with the rest of the team to re-implement the frontend.
- Mubarak: Mubarak had never worked with creating chatbots or RAG architecture. He had to learn how RAG worked by analyzing various RAG applications. He then used this knowledge to inform his process of developing the backend.
How It Was Built
Using front-end technologies Next.JS, React, and ChakraUI, our front-end developers worked together to design a front-end that was not only easy to use but visually appealing! This included a:
- Parallax interactive particle effect
- Auto-typer under the hero section
- Two-way sliding image carousel
- Team card to display who we are
For the backend:
- Python: Used with Selenium and Pandas to get and clean the data.
- MongoDB Atlas: Utilized as the vector database.
- OpenAI: Used to generate embeddings for each data entry.
- Langchain: Implemented for RAG (retrieval-augmented generation) and contextual implementation.
- Vercel's AI SDK: Integrated to add chat capabilities to the frontend.
- NextJS: The framework used to build the project.
- OpenAI APIs: Various integrations to generate embeddings, prompts, and feed them into RAG chains.
- React: Managed the chat interface and passed chat history to the RAG chain in the backend API routes.
Data Retrieval and Query Handling
- Vector Search Integration: By integrating vector search technology, our app matches students' career aspirations with the most relevant job skills and courses. For example, if a student is interested in becoming a pilot or an engineer, the app identifies the key skills needed by analyzing thousands of job postings and recommends CUNY courses that specifically teach those skills.
- Data Retrieval using Custom Retrievers: Custom retrievers fetch data from the vector database, storing job skills, course details, and essential resources. These retrievers perform vector searches to extract the most relevant information based on user queries.
- API Endpoint for Query Handling: The API endpoint orchestrates query processing, parsing input, querying the vector database, and generating responses using a language model. This ensures accurate and contextually relevant answers.
- Contextual Answer Generation: The language model generates final responses based on retrieved data, adjusting context and prompts dynamically to handle various types of queries.
Future Vision
We envision CUNY GPT being developed into a real-world application supported by CUNY leadership. We believe this app has immense potential and could become a crucial resource in helping current and future students access the support they need for a successful experience at CUNY.


Log in or sign up for Devpost to join the conversation.