People Atlas is a project that explores how our world is connected through the paths of people. We are living in an increasingly divided world, however, it is important to remember that no man is ever an island. People Atlas allow viewers to search and visualise the paths of many famous people.

Inspiration

From Charles Darwin to Mahatma Gandhi, Ada Lovelace to Albert Einstein, many great people have travelled a fair distance in their lives; some people did not travel far, like William Shakespeare and Confucius, but their influence reaches every corner of the world. People Atlas is a project that explores how our world is connected through the paths of people. It reminds us that no man is an island in the ever divided world.

What it does

  • People Atlas allow viewers to search and visualise the paths of many famous people (pretty much anyone who has a Wikipedia page),
  • Visitors can also create their own path and share with friends. This process is anonymous, the project does not ask for any personally identifiable data.

The project is intended to encourage cultural exchange and raise awareness of the collective identity of the human race. Its sole purpose is for supporting Wikipedia and organisations that save lives and protect the rights of refugees.

How I built it

People Atlas is built on AWS and employs a serverless architecture:

Serverless Architecture

Components

  • Static website: the website is hosted on Amazon S3, the frontend uses d3.js for geospatial data visualisation, and utilises Amazon Cognito for securely accessing the backend resources.

  • Serverless backend: the backend services utilise AWS Lambda, for example, when querying for a person, or saving and retrieving custom content.

  • NLP data extractor: when a user searches for a person whose data has not been extracted before, the Lambda function calls an NLP data extraction job hosted on ECS Fargate. ECS Fargate is a serverless container job runner.

  • Data Storage: the project uses Amazon S3 for object and metadata storage. The highly performant storage solution eliminates the demand for a database.

  • Amazon Pay: the project accepts donation through Amazon Pay.

Challenges I ran into

Initially, the idea was to build the backend completely on Lambda. However, due to the package size limit of Lambda, it is not possible to package the Natural Language Toolkit in a function. So such jobs need to be dockerised and run in ECS Fargate.

Accomplishments that I'm proud of

  • I'm very happy to have achieved reasonable completeness and satisfying usability in a short amount of time.

  • This solution uses infrastructure as code, therefore, can be reused and re-deployed fairly easily.

  • It is completely serverless: meaning that it does not maintain its own servers - but it can be scaled globally and automatically in accordance with the demand.

  • Custom integration with Amazon Pay using Lambda functions (I have opensourced this part on Github)

What I learned

  • NLP is challenging but rewarding
  • D3 is a powerful data visualisation tool

What's next for People Atlas

  • Polishing the NLP bits: currently, the NLP component does not work as well as I would like it to be, for example, it does not distinguish between "this person" and another person referred to by the Wikipedia page.
  • Reaching a wider audience: I'd like this project to reach a wider audience so we can improve upon feedback.
  • Having a physical installation: The idea of People Atlas was initially for a physical installation, to be displayed at public spaces. So I'm still looking for the right time and opportunity to make it come to life.

Built With

+ 3 more
Share this project:

Updates