This all started off as a platform to yell at people. No, seriously. In Global Politics class, we were introduced to the world of politics that we live in, and well, the propaganda and complexity for democracy shocked us. Articles are long, politics are complex, social issues are widespread, and ranting to friends leads to nowhere. We wanted to build a better way to learn—to clear the mist by alleviating false and opinionated facts through a gamified system. And that’s what Diplomatica is for, bringing the truth to everyone.
🏛️ What it does
The platform is broken down into scraping relevant and desired articles, summarizing them with our AI models, and a decentralized debate platform to spark thought-provoking conversations and to compete with your friends.
As Thomas Jefferson once said, "A Well-Informed Electorate Is a Prerequisite for Democracy". Staying aware is critical, that's exactly what the platform does. The first feature, which was the origin of the product, was the live debate system, where a user can join and participate in discussions with anonymous users around the world. There are quick facts to support your argument, and all your data is decentralized. Next, the AI Summarizer Model can summarize an article via URL or by Search. By inputting a URL, you can adjust the complexity of a summary and by adding a keyword in search, a web scraper finds the top results on the web and then simplifies/summarizes. Finally, we have a points system on the Profile Page, with a leaderboard and options to redeem items. This was critical to the incentivization of our product!
⚙️ How we built it (Refer to Technological Architecture)
- The Web Scraper was built with Python, BeautifulSoup, URLLib, and LXML
- The Web Application was built in pure ReactJS, decentralized with Python/HashLib and the Debate Platform integration was built with NodeJS, Python, Scaledrone API and Sha-256. To keep the debates ethical, our profanity/hate speech algorithm imitates Naive Pattern Search Behaviour.
- The Machine Learning models were build with Python, and hosted through heroku. Geo-political forecasting used Plotly and SciKit Learn, while the NLP Summarizer usied NLTK, PUNKT, Newspaper and NetworkX. This input take articles and summarize them (decreasing length by ~80%)
- The entire application is available and deployed through Vercel. It has not been optimized for all screen sizes, so please keep this in mind when checking out the product.
🚨 Challenges we ran into
The biggest challenge we ran in to was the idea stage. Normally, an idea would pop into our head and we would develop quickly—but politics and the world we live in is a different issue. Thinking of an idea was hard, but over time we added new features that built up to create one amazing product.
Moreover, there were technical issues with the libraries. For example, the web scraper was scraping private secured links, which was raising an HTTP error, of which the summarized ML model could not read the article. This was resolved by adding exception cases to take care of the edge cases.
🌟 Accomplishments that we're proud of
- Building and deploying a fully functional final product
- Integrating different technologies into one application
- Meeting the expectations of our original idea
- Sending Web Scraper Data to ML Model with full integration
🔎 What we learned
- Music at 2 am hits different
- Building a multi-user chat app for the first time in your life is not as easy as it seems
- Optimizing algorithms takes time
- Being able to connect different parts of your application (ie chat + web, web scraper + ml model) adds to the overall efficiency and effectiveness of your product
📈 What's next for Diplomatica
- Storing chat and points data in a custom-built database
- Adding full responsivity for different screen sizes
- Creating a more powerful Summarization-AI that can input more data and articles