Team 3:
Yamini Bansal
Ariel Herbert-Voss
Sophie Hilgard
Ryan Lapcevic
Anthony Soroka
This project is organized into two python libraries, a systemd service, and a flask-based website. Each of these occupies its own directory in the src/ directory.
The centerpiece of this project is the Postgres and Flask-backed website, which enables users to upload and query time series based on similarity as determined by a kernel function.
The website depends on our `timeseries` library for manipulating time series and a systemd service running a red-black tree-based database for determining proximity between time series. This database depends on our `rbtree` library for its red-black tree, and communicates with clients over a unix socket.
To install this project on a fresh Amazon EC2 instance running the default Ubuntu 16.04 image, execute the following command from the project's root directory:
sudo ./init.sh
This will install the project's dependencies, install the systemd service, initialize its Postgres database, and initialize the Apache webserver serving the website.
The project is organized as follows:
src/
dbserver/: A red-black tree-based database for querying proximity between time series. This is implemented as a pip-installable library, which is used by a simple systemd service to serve queries over a socket.
timeseries/: A library for storing and manipulating time series.
rbtree/: An implementation of a red-black tree as a library.
website/: The project website, implemented using flask.
To build the `dbserver`, `timeseries`, or `rbtree` packages independently, run `make sdist` from the root directory of the project. The pip-installable python packages will be stored in the `dist` directory.
To run our unit tests, run `make test` from the root of the project.
JSON files must be of the following format:
{
'time_points' : [<time points>],
'data_points' : [<data points>]
}
Time series identifiers are managed internally and need not be included in the uploaded file.