-
Notifications
You must be signed in to change notification settings - Fork 44
Server
## Package Dependencies Various packages are required in order to run DataViva. The following packages can all be installed, using PIP, by running the following command while in the base directory of your virtual environment:
pip install -r requiements.txt### Flask Flask is the main framework of DataViva. From the developer:
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions.
Full documentation can be found here. DataViva currently runs on version 0.9.
### Werkzeug Werkzeug is a library that enables easy manipulation of HTTP requests and responses, as well as enabling a great debugging interface. From the developer:
Werkzeug is a WSGI utility library for Python. It includes a powerful debugger, fully featured request and response objects, HTTP utilities to handle entity tags, cache control headers, HTTP dates, cookie handling, file uploads, a powerful URL routing system and a bunch of community contributed addon modules.
It does Unicode and doesn't enforce a specific template engine, database adapter or anything else. It doesn't even enforce a specific way of handling requests and leaves all that up to the developer.
Full documentation can be found here. DataViva currently runs on version 0.8.3.
### Jinja Jinja is a python templating engine that enables the site to serve hundreds of dynamic pages using simple templates so that the dynamic content is rendered on page load, improving SEO. From the developer:
Jinja2 is one of the most used template engines for Python. It is inspired by Django's templating system but extends it with an expressive language that gives template authors a more powerful set of tools. On top of that it adds sandboxed execution and optional automatic escaping for applications where security is important.
Full documentation can be found here. DataViva currently runs on version 2.6.
### Flask-Script Flask-Script enables easy to use helper functions for running external scripts in Flask. From the developer:
The Flask-Script extension provides support for writing external scripts in Flask. This includes running a development server, a customised Python shell, scripts to set up your database, cronjobs, and other command-line tasks that belong outside the web application itself.
Full documentation can be found here.
### Flask-Login Flask-Login provides easy user session management. It handles logging in, logging out, and remembering sessions over time.
Full documentation can be found here.
### Flask-OAuth DataViva uses Flask-OAuth to enable logging in using Google, Facebook, and Twitter. From the developer:
Flask-OAuth is an extension to Flask that allows us to interact with remote OAuth applications.
Full documentation can be found here.
### Flask-WTF This is a Flask port of the popular WTForms library.
Full documentation can be found here.
### Flask-Babel Flask-Babel enables the static pages of DataViva to be rendered in different languages. From the developer:
Flask-Babel is an extension to Flask that adds i18n and l10n support to any Flask application with the help of babel, pytz and speaklater. It has builtin support for date formatting with timezone support as well as a very simple and friendly interface to gettext translations.
Full documentation can be found here.
### MySQL-Python MySQL-Python is a MySQL database connector for Python programming. It allows the general python site code to access a local DataViva MySQL database.
Full documentation can be found here.
### SQLAlchemy SQLAlchemy is a toolkit that we use to allow DataViva to easily access the complex relational MySQL database that contains all of the visualization data. From the developer:
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
Full documentation can be found here.
### Flask-SQLAlchemy A Flask extension that allows Flask to talk with SQLAlchemy. From the developer:
Flask-SQLAlchemy is an extension for Flask that adds support for SQLAlchemy to your application. It requires SQLAlchemy 0.6 or higher. It aims to simplify using SQLAlchemy with Flask by providing useful defaults and extra helpers that make it easier to accomplish common tasks.
Full documentation can be found here.
### Redis Redis enables caching of common data queries. DataViva uses Redis to store compressed JSON results for common queries, enabling faster loading of commonly viewed visualizations. From the developer:
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Full documentation can be found here.
### Hiredis Hiredis allows our python code to interact with our Redis server. From the developer:
Hiredis is a minimalistic C client library for the Redis database.
It is minimalistic because it just adds minimal support for the protocol, but at the same time it uses an high level printf-alike API in order to make it much higher level than otherwise suggested by its minimal code base and the lack of explicit bindings for every Redis command.
Full documentation can be found here.