Inspiration

WorldView was made to solve the alarming rates of aggression between nations in the online environment.

What it does

The webpage allows the user to select any pair of countries and then scrapes social media pages such as Reddit, X (formerly Twitter) and online newspapers/articles to gather people's opinions on other countries. Then, it analyses the text and represents the average sentiment rates on a quantitative data. The data is set in a scale that measures the positivity and negativity of each social media posts, which allows users to visualise and compare how any pair of countries think about each other.

How we built it

We built our scrappers by making use of the requests import to get html of relevant pages from Twitter/X, reddit and news sites. We use beautiful soup to read the data and pushed it all into a list. This list is then analysed using the VADER import to calculate the sentiment score of the text which we then average out to get a overall sentiment score.

The backend was created in python, using the FastAPI library to handle the API requests. For frontend we created it with VueJS

The frontend and backend were deployed separately, with the frontend being deployed on netlify and backend being deployed on railway.

Challenges we ran into

At the start, we were all pushing to the main branch, stepping on each other's toes, but later on we started learning more about Git and having a flow which let us finish quickly and ahead of time. Later on there was techincal issues regarding the Twitter web scraper. Since Twitter actively combats webscraping, many workarounds were not reproducable, especially on the backend servers. This became an issue later in development despite it working locally.

Accomplishments that we're proud of

During the development phase of WorldView, the proudest moment for us was that we were able to successfully delegate out several different roles and work in a coherent team over time. It was very rewarding working in unison on different parts of the project together. The team's contributions were: Josh: wrote scrapping scripts for reddit and news sites. Tim: Frontend UI and interaction with backend Chen: Team management and backend + planning Thomas: Video editing and design

What we learned

  • Web-server infrastructure
  • Delegation of roles
  • Using Git branches
  • Asynchronous scraping of websites
  • Modularity
  • Deployment

What's next for Worldview

WorldView aims to expand the coverage of the service across all social media platforms. We can also

Built With

Share this project:

Updates