-
Notifications
You must be signed in to change notification settings - Fork 18
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.
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. |
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).