This project aims to aggregate company customer satisfaction score based on mentions of company's account on Twitter and textual analysis.
Current working instance aggregates rating for some companies from the Fortune 500 list, and can be found here.
There are 3 components to the system, implemented as independent microservices with docker:
- Synchronization Service
- API server
- Redis DB
All services and code is meant to be run from the root of the project, see details below.
python3 -m pytest */tests/test_*.py
Before the Synchronization service can be run continuously, it has to be initialized with a list of companies:
docker-compose run sync_service python3 -m sync_service init companies.full.txt
This command will go through company names listed in companies.full.txt
,
will try to find company's Twitter account by name, and add it to the DB
docker-compose up
Will start the API server at :5000
as well as begin fetching tweets for companies from Twitter.