Inspiration

Politics is confusing even for adults. Now, for kids, they try to keep up with the daily news, but with the amount of political news in the media nowadays, it's often hard to understand words such as "tariffs", "congress", and "president" fully, even if they know what it is on the surface. Our app helps them understand it by using examples, such as comparing a president to the captain of a giant pirate ship, and more!

What it does

We have two different components to our product: our app and our physical hardware tool. Our app is a Flutter app that runs on Android and allows the user to input their age and interests to get curated articles to exactly match their needs. These articles are broken down into easy-to-understand concepts, and if the kid still has any questions remaining, our chatbot at the bottom of the article can always help. Since the chatbot has the context window of the article, it can answer any question, even those extremely specific to the article. The child can also like the story, at which point, when the parent logs into the parent dashboard end of the app, they can see that the kid viewed and liked the story. They can change their interests and regenerate stories accordingly, and it can be used at any time!

However, we realized that many parents do not want their kids to be on phones due to the constant distractions of YouTube, Instagram, TikTok, and other social media. That's why we built our hardware device using a Raspberry Pi, which does the exact same function as the app but is able to speak out the news to the listener through a Bluetooth speaker, allowing them to comfortably listen with parents, having the satisfaction of a device-less interaction. It also customizes the articles based on age and provides a simple layout for users.

How we built it

We built our software app using Flutter, Dart, newsapi.org, Ollama, and used the HTTP library to contact the newsapi API and read the article.

For our hardware integration, we programmed our code in Python and used a Raspberry Pi, a Bluetooth speaker, and a power bank to power the Pi. We used NewsAPI, Newspaper3k, Elevenlabs, ChatGPT, I2C communication, OLED displays, Pillow, and multithreading to make the software for the hardware. We also used a breadboard, DuPont jumper wires, pushbuttons, an SSD1306 display, a power bank, a portable speaker, and a Raspberry Pi 4 Model B to make our hardware. Essentially, we fetched the news, summarized it, and then read it out with the ElevenLabs package. We allowed the user to control input using the buttons and displayed instructions on the screen.

Challenges we ran into

One major challenge we ran into was that we couldn't SSH into the Raspberry Pi due to WiFi issues. We tried everything from turning off the firewall, changing the ports, and more, but the Pi wouldn't connect due to the network. Along with that, our I2C display didn't connect due to electrical interference from PiSugar pins, but we were able to remove it and fix it.

Accomplishments that we're proud of

We are especially proud of making a cohesive app and a fully functional hardware application that works and has no discrepancies. We used creative approaches and problem-solving to tackle problems we had never run into before, and after hours of perseverance, we came out with a finished product that we are extremely proud of.

What we learned

We learned a lot about electrical interference, network protocols, and more through the various hardware problems we faced. We also learned how to use an OLED display, as we had never done that before. We were also able to cross new boundaries in debugging and were able to fix many things that we wouldn't have known how to fix before.

What's next for NewsBuddies

Personalized recommendations similar to YouTube recommended search history based on past interests and liked/viewed articles. A hardware enclosure for the hardware product to make it more compact and visually appealing. We would also like to expand to IOS for our app. We want to increase the performance of our app and use lighter models in order to decrease waiting times. We also plan to implement push notifications in the future so that the user knows when the articles have finished loading (and load them in the background).

Built With

Share this project:

Updates