Inspiration

We've all had that moment- where you come across a long news article that seems like it could be interesting, but seems like a hassle to read. Especially in the modern day with short-form multimedia rising in popularity, people, and especially the youth, are often uninterested in reading long news articles.

Therefore, in order to promote Social Good by the means of enhancing media literacy among the youth, we decided to create NewsQuest.

What it does

The key features of NewsQuest include:

  • Automatically summarized news articles tailored to individuals using large language models
  • Customized AI Chat to ask follow-up questions to emphasize deeper learning
  • Automatically generated quiz to promote reading comprehension and reinforce learning
  • Gamified leaderboard system to promote friendly competition
  • User authentication system to personalize feed suggestions

Our hack sits at the interaction of Computer Science, Journalism, Education, and Entertainment, and addresses the pillar of Interactive Multimedia. We aim to educate the next generation about the world by providing them with an easy, interactive, and entertaining way to learn about current affairs.

We believe that individuals will use our app because it is the only location where information in the world is tailored to their specific preferences, and not generalized to the needs of all the individuals like newspapers and websites. This, along with the aspect of friendly competition allows us to make journalism exciting for the future generation, ensuring that they keep coming back for more!

The app has a lot of potential to become the primary way young individuals keep up with the news in the world, as we can deliver relevant news at a comprehension level that matches what the youth need!

In a world where individuals have low attention spans due to short-form media like Tiktok and Instagram, NewsQuest leverages this trend in short-form media to help individuals keep up with current world events.

Our interactive AI-powered chatbot allows individuals to reinforce their learning by asking further questions to go more in-depth into the topic. Just like in school, the best way to learn and clarify is to ask questions, and our AI chatbot allows just this! We also provide an interests page, which can be used by the individual to manually select which topics interest them, or they can just go with our recommendation algorithm!

Usability: In the current state, the app is ready for alpha testing. We have built the entirety of the front end, back end, Cloud DataStore (MongoDB), and GPT API connections. We also have all critical features implemented, as shown in the video.

How we built it

The Backend:

We wrote our backend in Flask and used MongoDB as our database. We have 3 tables: Users, Articles and Threads. The User table contains all information about a user, including their preferred themes etc., articles contain the news summaries and threads contain information about the chat threads with the Large Language Model. We developed our own custom workflow to interact with the OpenAI GPT-4 API (the LLM model used), which allowed us to smartly pass in context about individuals and the article when querying.

The Frontend:

For the front end, we began by using Minimal UI Kit as a React template to expedite our frontend development. We used React to create custom components alongside Material UI to aesthetically display all the articles, as well as provide an intuitive user experience when using the chat and quiz features.

Challenges we ran into

We wanted to ensure that our app is scalable, and can be deployed to make a difference. This required us to ensure that we weren't spending too much money on the GPT API. GPT is stateless. This means that all the context needs to be passed into it on every single call, leading to the chat API becoming unscalable as all the history and context about the individual also need to be passed in. To solve this problem, our backend dynamically summarizes the chat, only including relevant information in the following calls, greatly reducing the number of GPT credits used in each call. We also saved all our chat threads so that they could be loaded when needed.

Since we wanted to promote deeper learning, we decided to incentivize users to ask questions about the content so they could learn more. However, this was difficult as we didn't want users to ask irrelevant things, to "farm" points without learning anything. To solve this challenge, we rebuilt our LLM infrastructure to ensure that it first checks if the question asked is relevant (in the given context of the whole chat), and only then will it give the user the answer and the points.

Accomplishments that we're proud of

LLM prompt engineering: This was the first time that anyone in our team used LLMs, so it was amazing to finally be able to use them in a project. We were proud of our dynamic summarizer, which used the user's age and level of comprehension to summarize the text, and of our chatbot which could figure out if follow-up questions asked pertained to the article and were not being used to "farm" points. (by asking irrelevant questions)

Fullstack Development: This was the first time that our team had built out the entire stack of an app in a hackathon. We are proud of our efficient division of labor, using all our specialties to build the entire app to the stage where it is ready for deployment for an alpha release right at the time of the hackathon submission! In this hackathon, we built the front end, back end, database integration with MongoDB, and GPT API integration!

React Mastery: One of our teammates had no idea how to use React or JavaScript for that matter (she was not even a CS student, and this was her first hackathon) at the start of the hackathon. Throughout the hackathon, she rapidly learned how to use React, and built a major part of the front end for our team! We are very proud of how much she learned in this time!

Package Management, Setup, and DevOps: One of the key things we learned in our previous hackathons was the importance of DevOps for fluid development. We ensured that all our packages were easy to set up, install, and use, with requirements files and virtual environments all made to ensure fluid development. We also ensured that we used git correctly with pull requests and merge requests for features, all of which helped us save a lot of development time in the long run, allowing us to build out so many features. (This was the first time we were successful at doing this!)

What we learned

Throughout this project, we learned to use a lot of the key technologies that are used in the industry today: MongoDB, GPT-4 API, React, and Flask. These have allowed us all to become better developers and software engineers. We were also introduced to the realm of prompt engineering and the usage of Large Language Models, and learned firsthand all their capabilities and flaws!

Additionally, through testing our app, we also learned a lot about current affairs :)

What's next for NewsQuest

Here's a timeline of what's next for NewsQuest:

  • Now: Deploy alpha test, explore potential LLM security vulnerabilities
  • 3 months: UI updates based on alpha test feedback, deploy beta test with Classroom and Social features like sharing articles, liking articles, and integrating teacher-student classrooms
  • 6 months: Funding round
  • 1 year: Initial release with mobile support and monetization
Share this project:

Updates