Skip to content

Architecture

Dennis Jen edited this page Sep 17, 2019 · 6 revisions

Gobo is largely divided into two parts: A web application and an analysis pipeline.

Web Application

The application can be divided into two parts:

  • Backend Server: Built using python, flask, and provides APIs for the frontend. Code can be found in the server directory.
  • Frontend Client: Built using javascript, react, redux, and bootstrap. Code can be found in the client directory.

The following table describes some of the core components.

Server

Directory Description
commands Custom flask CLI commands are added here. e.g. commands that are available when executing flask.
scripts Contains scripts for fetching, analyzing, and deleting.
views APIs are listed here

Client

Directory Description
actions Redux action creators.
components React components. App is the highest-level component. Generally, css\scss is included alongside the component.
middlewares Redux middlewares. Currently, the only middleware is for tracking. It is registered in client/app/store.js
reducers Redux Reducers.

Analysis

The following diagram illustrates the flow of messages and data through the analysis system. Posts are fetched when the users connect their social media accounts to Gobo or when a fetch-posts task is run (we use daily cron jobs).

Clone this wiki locally