Inspiration
During my school days, I was a part of the fundraising committee that raised funds for donating to orphanages for children. Finding the right donor was a time-consuming process. I have always wanted to build something that can support Non-Profits seeking for funds. I came across a Canadian website link which contains information on registered charities as disclosed by those charities in their T3010 annual return. It provides data on 83,991 Canadian charities that have been registered. Additionally, it contains data on charitable gifts made between organizations. I came to the conclusion that studying the donation data would be beneficial.
What it does
The EduQuest app recommends donors who are more likely to support educational nonprofits by making donations. The recommendation is based on the insights I gained through analyzing 83,528 records of donations from the Charity data site. To identify the most qualified donation candidates, the app gathers information about the user (non-profit organization), including its name, location, focus or vision, and number of full-time employees.
How I built it
I started with designing a web-scraping pipeline to extract data from charity data site. Initially, I collected the list of charities that support education from the site's search page. The web scripts are generated dynamically. Hence, I used the combination of selenium and beautiful-soup to automate data collection. With the list of charities, I scrapped data from profile pages of each charity. Then, I combined all the scrapped charity data to clean and transform them for analysis.
After analyzing, I designed wireframes to build a simple single page application using react for the frontend backed by node.js express in the backend. The backend hosts a REST API (/donor) that deals with analyzing the user's input and filtering out the suitable donors.
Challenges I ran into
I didn't have experience web-scrapping dynamic content before this hackathon. Exploring selenium and building a script with the new technology was pretty challenging because of the time constraint. But, I somehow figured it out.
Accomplishments that I'm proud of
I'm proud of myself for building this product ahead of the deadline. Though, web-scrapping took the majority of the time, web-app development was comparatively fast.
What I learned
I learned to manage time efficiently and learn a new technology(selenium) for this hackathon. I also figured out how to host node.js applications on cyclic platform.
What's next for Web Scrapping Charities to build donor recommender
Due to time restrictions, I was only able to obtain donor information from nonprofits that prioritize education. There are still numerous non-profit organization types that contribute to various significant issues. I would like to collect data of all other non-profits and their donors.
Currently, I have implemented a Rule-based model to recommend best donors. In future, I would like to construct a Machine Learning algorithm for better predictions.
Log in or sign up for Devpost to join the conversation.