Inspiration

Resources Are hard to find!

Most CUNY students are unaware of the resources available to us. Students are busy focusing on classes and rarely find themselves in situations where they can find out about the available resources.

Students don't want to Jump to multiple web pages to find what they need!

The information for resources is widely scattered throughout various websites. Students will benefit greatly from a centralized website that is designed to easily route them to their desired resources. Designed to just get them to what they need as quickly and easily as possible because essential needs can't wait!

Lack of Awareness of Resources

The majority of information is spread through word of mouth from student to student. Students are each other's number one source for finding out about essential information, but students do not talk enough about the available CUNY resources.

These reasons inspire Resource For All! An AI-powered hub for students to easily discover and spread awareness of CUNY resources!

What it does

Easily and Quickly Discover Resources with an AI Chatbot

Our AI chatbot is trained on a large set of data and resources pulled from the CUNY CARES website. The chatbot serves the purpose of accurately directing students to facilities that meet their needs.

Referral System to reward students for spreading Awareness

Users are able to create an account and share their unique referral code with their peers. Each time a student referral code is used, our database updates to keep track of the referral occurrence. Providing a system for CUNY to give an incentive to students to increase awareness for essential needs resources

Easy UI to Filter/Display Available Resources

Students are able to filter through our database of resource centers based on what they need (food, housing, mental health), and where they are located. Results are displayed as markers on an interactive map that we have integrated through the Google Maps API.

How we built it

We wanted to create something that would address the theme of the hackathon in a unique way. Instead of just displaying all the resource centers in a centralized platform, we wanted something more innovative. We used Duolingo as an example of an innovative solution. Duolingo uses a gamified and interactive learning experience to encourage people to learn languages instead of just displaying a word and its translation. That is how we came to the idea of a referral system. Our system allows CUNY to provide incentives for students so that they are more likely to share with their peers about CUNY resources, thereby promoting outreach.

Even though 3 out of our 4 members are first-timer in hackathon, we all did our own research based on our tasks and utilized online resources and help each other get through any challenges we were facing. First we defined the MVP of our project, which includes our AI chatbot and the referral system. We used fastbots AI to implement our chatbot and API endpoints that we created in Express.js to give every logged in user a unique referral code that gets stored in our PostgreSQL database. We also utilized Google Maps API to display the resource locations from our database to an interactive map to the React.js frontend.

To generate the referral code, we used the following:

function generateReferralCode() {
    return crypto.randomBytes(4).toString('hex').toUpperCase();
}

Challenges we ran into

One of the challenges we encountered in making the project was integrating the Google Maps API to display the resource locations from our database. Initially, we struggled with setting up the API keys. Once that was resolved, we realized that while we had the addresses in our database, we needed the latitude and longitude coordinates to place markers on the map. After researching, we discovered that Google Maps provides a Geocoding API that converts addresses into latitude and longitude. By using that, we were able to obtain the necessary coordinates to successfully place the markers on the map.

const geocodeAddress = async (address) => {
    try {
        const response = await axios.get(`https://maps.googleapis.com/maps/api/geocode/json`, {
            params: {
                address,
                key: geocoderapi
            }
        });
        if (response.data.results.length > 0) {
            const { lat, lng } = response.data.results[0].geometry.location;
            return { lat, lng };
        } else {
            throw new Error("No results found");
        }
    } catch (error) {
        console.error("Geocoding error:", error);
        return null;
    }
};

Another challenge we faced was implementing the referral system. The first hurdle was generating a unique code for each user. We had to write a PostgreSQL query to check all existing codes in the database to make sure the newly generated code is not a duplicate. Additionally, integrating the referral code generation into the user signup process was tricky. We needed to ensure that each new user’s referral code was accurately stored in the database for future use. We solved this by carefully Implementing API endpoints to securely communicate with the database, which allowed the system to work seamlessly

Accomplishments that we're proud of

One of the features that we are proud of is our AI chatbot. We trained our bot with CUNY Cares website and multiple other resources. We were able to deploy it in our application within the first day.

Another accomplishment we are proud of is displaying our resource locations with markers in an interactive map generated with Google Maps API.

Furthermore, we also implemented a unique referral code platform for each user, so they have their own code in our database for futuer usage.

We also developed effective skills in GitHub and all its properties, enhancing our collaboration and allowing us to maximize our coding efficiency.

What's Next for Resources For All

Our next steps involve deploying our resource database online, addressing the lack of a publicly available CUNY resource database. Additionally, we would expand the database to include more resources, ensuring a comprehensive coverage for students. Following this, we will launch our website, allowing everyone to access the platform. We will integrate the CUNY login system to ensure that all CUNY students can utilize our referral system while keeping the platform open to everyone.

+ 17 more
Share this project:

Updates