Inspiration
When we started to develop this app, one of the main ideas was to be able to access custom news feed, containing articles about drones, cars and graphic cards, while not seeing anything sports-related or having to do with wannabe celebrities. It was clear that sources must be carefully selected, evaluated and vetted. Everything was on track, AI-based algorithms were doing exactly what they were supposed to, the app was up and running. Then COVID-19 happened. Amid one-in-a-lifetime crisis that affected every person on this planet, one phenomenon changed our perspective – fake news. We decided to battle it.
What it does
QuickNews is a news app that we developed as a showcase of background technology – fleet of scrapers that extracts information from web, machine learning models for classifying articles that makes sense out of everything published on the web, and also models for personalization.
The background magic that enables the user access to personalised feed is not limited to the QuickNews app only – the technology is very flexible and can easily be adapted to fit various uses:
- publishers or news portals can use QN's personalization engine to fine-tune their content to individual users, thus making their offering more compelling
- various organisation news sections – creating custom feeds based on trending events (i.e. COVID-19 outbreak)
The infrastructure is highly adaptable of change and personalisation, so anyone that needs to show targeted content to its users can benefit of implementing it to its own technology.
That means that it can be used for just about anything - COVID19 updates, Olympic Games results, nuclear crysis, space programs etc. App users can create it for personal use, publishers can use it to show targeted, personalised and trending topics. No fake news or sources of questionable reputation.
For this hackathon, we developed an web-page displaying only trustworthy information related to COVID19 pandemics.
How we built it
Language of choice: Python (speed of development, availability of libraries).
Cloud provider: AWS.
The main components to develop, back-end:
- A simple crawler: On every run it takes a manifest with all the sites to crawl, does a pass through them and gets all the new articles. It has memoization, so it knows not to download articles multiple times. It stores batches of articles on S3.
- Machine learning models: Key thing was to run the article’s text through a Doc2Vec model, and getting a vector. The other part of the model is mapping the vector to one of the clusters (this was trained with K-means).
- The main worker: This component is somewhat large and monolithic. But the gist of it is that it takes the articles caught by the crawler, does deduplication and elimination of junk and maps the articles to vectors and clusters. It then stores the relevant data for each article (metadata + vectors and clusters) into a database (DynamoDB, possible regret).
- The API server: Has methods for generating the feed based on the user’s interest profile, as well as methods to register users’ clicks and update their interests. Keep in mind that QuickNews uses the click information to adjust interests but does not keep the clicks logged, so as not to be intrusive to the user’s privacy.
We had a trifold approach while developing the app, which consisted of:
- improving all the good features from similar apps - being real-time, personalizing content to the user's tastes
- using familiar visual solutions from social networks, such as story mode or swiping left/right
- eliminating everything we learned that users dislike such as fake news, lousy sources, outdated articles, and peer pressure
Challenges we ran into
We are located in Canada and Croatia, so it's sometimes hard to communicate when you're 9 hours apart :) Nonetheless, once we figured out our personal schedules and availability, it was all much easier and we are delivering results on time. From technical point of view, there were some challenges in making everything work as envisioned, but after little debugging, everything was solved in no time. We were also challenged by adopting the mindset of our target user - thinking what they would like and want, instead of doing things as we want them to look or feel.
Accomplishments that we're proud of
In just 7 months, we had our first version up and running - published on both Play Store and App Store, and we started to develop the business logic and marketing strategy. All that done by a team of 3 people.
What we learned
Firstly, we had to learn how to work as a team. When someone was under tight deadlines, we did everything to help them finish in time. We are constantly talking very open about things and encourage each other to try new things, explore ideas, but we also consider our shortcomings and try to do better next time. We also learned a lot from each other - our main areas of expertise are automotive engineering, ICT and computing, so we share the knowledge and experience, and also combine the best industry practises when working on the project.
What's next for QuickNews mobile app
Developing improved versions - we have one just around the corner. We also want to expand the team and secure funding to work on other awesome ideas we have, such as web-version of the app, sharing user-created feeds with friends, enabling left-right swipe to learn about user's interests etc.
Built With
- machine-learning
- native-android
- native-ios
- natural-language-processing
Log in or sign up for Devpost to join the conversation.