News4Good
Learn about and support global events with one web application
Role
full-stack design
Teammates
Purvi Goel, Rachel Markell, Lauren Ho
Tools
Java, JS/HTML/CSS, SQL
Timeline
180 hrs. March-May 2017
Results
Live product, working with Providence NGOs to spread the word
During the spring semester of 2017, three fellow Brown University undergraduates and I created News4Good, a web application that encourages our community to actively tune into current events.
News4Good collects major news events tailored specifically to users' preferences and recommends ways to get involved through suggested charities. Each news article posted is matched with two relevant NGOs. We integrated with Stripe in order to securely process user donations without redirecting to an external site.
In building News4Good, I was challenged to implement an algorithm to accurately match charities to news articles and to display articles and charities in a format intuitive to users. To do so, I synthesized the news-reading habits in my Facebook community and used topic modelling and deep language learning to pair charities with news articles.
Our 3-month long process began with user surveys and concluded with a fully functional website.
Final Product
News4Good logo by Lauren Ho
Hello, User!
Our mission is to bridge the gap between learning about a problem and getting involved in its solution. We hope you'll enjoy using News4Good, and feel free to contact us with any questions or suggestions!
Features
Donate
Donate to any charity on the site. Creating an account allows users to track their donations.
Bookmark
New articles are added every twelve hours, so bookmarking articles will prevent them from being buried.
Personalize
Select categories to create a personalized news feed. Edit and update categories anytime.
Demo
Want to try it yourself?
News4Good: a Background
The way we read news right now is very passive—scrolling and skimming through articles before moving on with our day. However, most of us do care about the events going on in the world; we just lack an efficient way to immediately seek solutions after learning about a problem.
Although the websites of NGOs have donation pages, users usually will not read about an event and then navigate to an external site to donate or to find out how to get involved. Furthermore, many donation pages require multiple steps to complete a donation (e.g. Unicef's donation page).
Unicef donation page
Credit: UNICEF
We polled the Facebook community to see our friends' news-reading habits and to gain some insight into the current barriers that discourage them from donating to charities they care about. We noticed that most of our peers learn about current events through online sources such as news websites and social media. The majority of responders also said that they would be more likely to donate to a charitable cause of their choice if they could do so with one click.
Screencap of the results of one of the questions in our poll
After speaking with more people about how they read the news and how they feel about online donations, we discovered that the biggest challenges for News4Good were:
Relevance
People only want to donate to charities and NGOs they know about and care about, so article and charity matching must be as accurate as possible
Trustworthiness
Many people mentioned that a secure form of payment was highly important to them, as well as transparency in how their donations will be allocated
Based on these findings, we decided that the goal of News4Good was to create a space that allows people to easily access and securely donate to charities directly related to events they care about.
PROJECT GOAL
News4Good provides a way for people to efficiently donate to charities relevant to the issues they care about.
Implementation: Design choices and algorithms
We decided to have four categories of news: environmental issues, human rights, natural disaster and LGBTQ rights. We chose these four topics based on community interest and also on how accurately we could topic model them. In order to match news articles to each of these topics, we first query for a batch of news articles from our news APIs (we used both News API and Guardian API). This can give us up to 500 articles. Next, those articles will go through an intensive parsing, selection, and matching process that will only leave the most accurately matched articles. Using a topic matching classifier from the OpenNLP library that we trained on 30,000 news articles per topc (retrieved through the Guardian and New York Times using their human selected tags), we matched news articles to topic based on their descriptions. The classifier assigns a confidence score to each prediction; any article that does not meet our confidence threshold is immediately discarded.
The news api used to collect the articles
Credit: News API
The articles then move on to the charity matching process. We have a charity table filled with 19,000 charities gathered from the OrgHunter API, and we used the SQL "MATCH" keyword to find keyword matches between charity mission statements and article titles. This shrinks the pool of applicable charities to 10-15 per article. Next, we do a direct matching of keyword counts on the article's description and the charity's mission statement, augmented by the Dale Chall word formula. Articles that have at least one matching charity are then inserted into our database. The front end queries for recent articles and charities from this database, which is what is posted on the website.
Stripe securely processes donations; developers cannot access any credit card information inputted into their web apps
Credit: Stripe
To make the process of donating as easy as possible, we integrated with the Stripe API and the Make My Donation. We used Stripe to connect the user with Stripe, securely process their credit card information, and charge them the amount they specified. By using Stripe’s secure processing we are never actually storing credit card numbers anywhere in our code. Once we have charged a customer, we send the charge, along with metadata, to Make My Donation, the company that sends the money to the charity.
Next Steps
In the short run, these are the most important design problems for News4Good.
Location Sensitivity
How can we suggest charities that are close to the user's location to make it easier for them to get involved?
Feedback
How can we measure the number of times users have donated to charities after reading their associated news articles?
Comprehensiveness
How can we gather a more comprehensive collection of articles to appeal to a wider range of users?
In the long run, the web app should also look into creating a sense of community among users and conveying how each user is making tangible contributions to the world.
Reflections
News4Good was one of the most challenging and rewarding projects I’ve ever tackled. Matching charities to news articles was difficult, made harder by the fact that I’d never delved seriously into topic modelling and deep language learning. On the frontend side, I spent a lot of time figuring out how to integrate Stripe with the website so that users can donate without opening an external site.
Shoutout to our wonderful mentor, Sara Solano, for guiding us.