Skip to content

System Architecture

ngparas edited this page Dec 8, 2016 · 5 revisions

Architecture Diagram

Below is a diagram of the current system architecture: Architecture Diagram

Front End

The slackbot is implemented here. We use Slack as our front-end due to simplicity of use, message formatting, search capability, and for its ability to support multiple bots. This allowed us to each our own set of keys to run independent bots that we can all still see and interact with. This allowed us to focus on the back-end and improving our query handling. When the SlackBot Listener receives a message, it makes a POST request to the API. The API uses our Query Router to process the message and queries Elasticsearch appropiately. The response is then parsed and returned to the SlackBot for display.

Router

Please see the Query Router Page

Elasticsearch

Please see the Elasticsearch Page

ChrisJones API

The ChrisJones API is a Flask app that effectively acts as a wrapper for chrisjones.py. It allows end-users to make POST requests to our system, rather than needing to import all the files into their own projects. This allows a number of different front-ends to be rapidly developed independently from the core work on this project, such as quickly making a Facebook Messenger bot or application directly on their website if that would be more useful for the Tribune.