With growing number of recent data privacy incidents such as Facebook's data scandal, we wanted to introduce a newly renovated design of decentralized social media platform. With this model, there is no central entity that controls your information. Instead, each users will have a total control over his/her database and how the data will be shared among friends.

What it does

When a user signups with Serendipity, the user will be able to choose it's own identifier and a domain name. This domain will then spin up it's own full-stack which includes, front-end service, back-end service, and a database within the domain. The user will then start posting posts into his own timeline which are saved in his own domain's database. Others will only be allowed to see the user's data once they are consented through friend requesting and being accepted.

How we built it

We have MongoDB database with Python's Flask backend. The frontend is made using vanilla JS, CSS3, and HTML5 with bootstrap. Our lightwight social media services are dockerized and ready to be spun up within seconds!

Challenges we ran into

  • Sleep deprivation
  • Having low resistance level towards other fun hackathon activities
  • Setting up and debugging user interactions between different hosts
  • Datetime format between JS and Python

Accomplishments that we're proud of

  • Solid infrastructure planning
  • Successful base implementation
  • Beautiful UI design
  • Clear vision of our goals

What we learned

  • We need to sleep more
  • Get food last minute to avoid waiting in line forever
  • You can always ask for 2nd soylent bottle, they'll give it to you most of times
  • Getting AWS credits is annoying
  • Timestamps suck

What's next for Serendipity

  • Public-private key encryption
  • Credential management
  • User Authentication/Authorization
  • Data privacy per post
  • Blocked lists
Share this project: