Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 1.76 KB

README.md

File metadata and controls

26 lines (18 loc) · 1.76 KB

My-Django-Social-Media

Alt text This project aims to implement a similar product like twitter/wechat.

This project is developed on Django under Vagrant.

Utilized databases:

  1. Relational : MySQL,
  2. NoSQL: HBase, Redis

Uploaded the user avatar to Amazon S3.

Developed RESTful APIs for accounts, tweets, comments, friendships, likes, notifications, and newsfeeds based on Django-Rest-Framework.

Get data from the MessageQueue based on the number of requests that each machine can handle. Even if there are high volume of requests per second, it just puts the requests in the MQ, and the message of the message queue is controlled by the system itself, so that the entire system will not be collapsed.

Optimizating

  1. Optimized tweet and newsfeed pagination by implementing a infinite scroll pagination instead of page-number-pagination.
  2. Utilized Redis: cache lists of tweets and newsfeeds, and utilized Redis as Message Queue Broker to deliver asynchronized feeds fanout tasks by using Celery.
  3. Utilized Memcache: cache friendship followings and user.
  4. Utilized ratelimiter as a decorator to add limitations on user actions for RESTful APIs.

Next stage

  1. Deploy in a remote server, e.g. AWS
  2. Load balance.