Awesome
WebMark
Web platform for benchmarking quantum computing algorithms.
Documentation
Requirements
See requirements.txt
Setting up the development environment using Docker (recommended)
Install Docker Engine and Docker Compose according to the instructions.
Navigate to the project root and run the development environment with command:
sudo docker-compose up
In case new dependencies have been added to any of the environments (that is requirements.txt or environment.yml have been changed), start the development environment with
sudo docker-compose up --build
If the database needs to be flushed, the easiest way to do that is with command
sudo docker-compose down
Setting up the development environment manually (not recommended)
Set up the database
Install PostgreSQL:
sudo apt install postgresql postgresql-contrib libpq-dev python3-dev
Create a database:
sudo -u postgres psql
postgres=# create database quantdb;
postgres=# create user quantuser with encrypted password 'secret';
postgres=# grant all privileges on database quantdb to quantuser;
postgres=# alter user quantuser createdb; --allow user to create a test database
postgres=# \q
Setting up WebMark
Make a copy of .env.example and rename it to .env
.
Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate
Install the dependencies:
pip install -r requirements.txt
Now you can run the development server with command:
python manage.py runserver
If you get an error message when running the server, for example "psycopg2.errors.UndefinedTable: relation "WebCLI_algorithm" does not exist" you can try making migrations
python manage.py makemigrations WebCLI
python manage.py migrate
And then run the development server again.
Other commands
NOTE: all the next commands can be used from Docker with
sudo docker-compose run web <command_name_with_possible_parameters>
For example:
sudo docker-compose run web python manage.py makemigration
Lint your code with
flake8
Lint HTML templates with
curlylint templates/
Run tests
python manage.py test
Run code coverage
coverage erase
coverage run manage.py test
coverage report
Update database after change in models
python manage.py makemigrations
python manage.py migrate
test commit