Skip to content
Snippets Groups Projects
Select Git revision
  • 3f9ea37d1c3c87fdbfe5b9c5946a4c5be50183b3
  • develop default
  • master protected
  • feature/frontend-tests
  • 0.98
  • 0.97
  • 0.96
  • 0.95
  • 0.94
  • 0.93
  • 0.92
  • 0.91
  • 0.90
  • 0.89
  • 0.88
  • 0.87
  • 0.86
  • 0.85
  • 0.84
  • 0.83
  • 0.82
  • 0.81
  • 0.80
  • 0.79
24 results

compendium-v2

Skeleton Web App

Installation Process

Clone this repository using your favorite method, then:

$ python3 -m venv compendium-v2
$ .compendium-v2/bin/activate
$ pip install -r requirements.txt
$ tox -e py39

Overview

This module implements a Flask-based webservice and in-browser React front-end.

The webservice communicates with the front end over HTTP. Responses to valid requests are returned as JSON messages. The server will therefore return an error unless application/json is in the Accept request header field.

Configuration

This app allows specification of a few example configuration parameters. These parameters should be stored in a file formatted similarly to config-example.json, and the name of this file should be stored in the environment variable SETTINGS_FILENAME when running the service.

Building the web application

For instructions on building the React frontend see webapp/README.md.

Running this module

This module has been tested in the following execution environments:

  • As an embedded Flask application. For example, the application could be launched as follows:
$ export FLASK_APP=compendium_v2.app
$ export SETTINGS_FILENAME=config-example.json
$ flask run

See https://flask.palletsprojects.com/en/2.1.x/deploying/ for best practices about running in production environments.

Importing the historical data

Pip install can use the setup.py file to register the click cli commands:

pip install --editable .
survey-publisher-v1
survey-publisher-2022

Creating a db migration after editing the sqlalchemy models

flask db migrate -m "description"

Then go to the created migration file to make any necessary additions, for example to migrate data. Also see https://alembic.sqlalchemy.org/en/latest/autogenerate.html#what-does-autogenerate-detect-and-what-does-it-not-detect Flask-migrate sets compare_type=True by default.

Note that starting the application applies all upgrades. This also happens when running flask db commands such as flask db downgrade, so if you want to downgrade 2 or more versions you need to do so in one command, eg by specifying the revision number.