Skip to content
Snippets Groups Projects
Commit 74049c94 authored by Owolabi,D.O. (Dennis)'s avatar Owolabi,D.O. (Dennis)
Browse files

Merge branch 'GitLabPipeline' into 'master'

Git lab pipeline, testing coverage visualization

See merge request !16
parents b4cc7e62 77159dfb
No related branches found
No related tags found
1 merge request!16Git lab pipeline, testing coverage visualization
Pipeline #91326 passed
Showing
with 1022 additions and 3 deletions
...@@ -348,3 +348,5 @@ API ...@@ -348,3 +348,5 @@ API
Training Training
Blog Blog
About About
.vscode/
### PROVEE GitLab CI/CD Pipeline
# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/python/tags/
image: python:3.8
# Stage descriptions
# > Stage: Lint
# > --> Run Python pycodestyle linter
# > Stage: Test
# > --> Run pytest unittests, integration and E2E tests are also possible
# > Stage: Deploy
# > --> Build an executable which can be downloaded as GitLab artifact
# > Stage: test
# > --> Update and build a ReadTheDocs documentation html which also can be downloaded as GitLab artifact
stages:
- Lint
- Test
- Deploy
- Docs
# Make sure all dependencies are installed before each job
before_script:
- cd LocalProjector/
# Install deps
- python -m pip install -r requirements.txt
- apt-get update -y
- apt-get install libgl1-mesa-glx -y
- cd ..
###############
# STAGE: lint #
###############
PythonLint:
stage: Lint
before_script:
# Skip before_script since no dependencies are needed for linting
- ''
script:
# Install linter
- pip install pycodestyle
# Run linter on LocalProjector
#- pycodestyle LocalProjector\
###############
# STAGE: test #
###############
UnitTestPython:
stage: Test
script:
# Run LocalProjector tests
- pytest --cov=LocalProjector/src/ --junitxml=report.xml LocalProjector/tests/
# Export coverage report
- coverage xml
artifacts:
when: always
reports:
junit: report.xml
cobertura: coverage.xml
expire_in: 1 week
IntegrationTest:
stage: Test
before_script:
# Skip before_script since it is not implemented yet
- ''
script:
- echo "Integration tests have yet to be integrated."
E2ETest:
stage: Test
before_script:
# Skip before_script since it is not implemented yet
- ''
script:
- echo "E2E tests have yet to be integrated."
#################
# STAGE: deploy #
#################
LocalProjectorDeployment:
stage: Deploy
script:
- echo "Starting building of .exe for deployment"
# Install compiller
- pip install pyinstaller
# Build; .exe will be in dist/
- pyinstaller --onefile LocalProjector/main.py
# Check created files
- cd dist
- ls -a
artifacts:
paths:
- dist/*.exe
expire_in: 1 week
# only:
# - master
###############
# STAGE: Docs #
###############
DocumentationSphinx:
stage: Docs
script:
# Install sphinx and ReadTheDocs theme
- pip install sphinx sphinx-rtd-theme
# Enter documentation folder
- cd LocalProjector/docs/
# Build documentation
- make html
# Move new documentation to seperate folder to be published
- mv build/html/ ../../public/
artifacts:
paths:
- public
expire_in: 1 week
# only:
# - master
{
"python.pythonPath": "C:\\Users\\sinie\\Anaconda3\\envs\\penv\\python.exe"
}
\ No newline at end of file
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
Code of Conducts
================
The goal is to maintain a diverse community that's pleasant for everyone. That's why we would greatly appreciate it if everyone contributing to and interacting with the community also followed this Code of Conduct.
The Code of Conduct covers our behavior as members of the community, in any forum, mailing list, wiki, website, Internet relay chat (IRC), public meeting or private correspondence.
*Our Code of Conduct is heavily based on the* `Celery Code of Conduct <https://github.com/celery/celery/blob/master/CONTRIBUTING.rst#community-code-of-conduct>`_\ .
Be considerate
--------------
Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and we expect you to take those consequences into account when making decisions. Even if it's not obvious at the time, our contributions to PROVEE will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others' work.
Be respectful
-------------
The PROVEE community and its members treat one another with respect. Everyone can make a valuable contribution to PROVEE. We may not always agree, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened isn't a productive one. We expect members of the PROVEE community to be respectful when dealing with other contributors as well as with people outside the PROVEE project and with users of PROVEE.
Be collaborative
----------------
Collaboration is central to PROVEE and to the larger free software community. We should always be open to collaboration. Your work should be done transparently and patches from PROVEE should be given back to the community when they're made, not just when the distribution releases. If you wish to work on new code for existing upstream projects, at least keep those projects informed of your ideas and progress. It many not be possible to get consensus from upstream, or even from your colleagues about the correct implementation for an idea, so don't feel obliged to have that agreement before you begin, but at least keep the outside world informed of your work, and publish your work in a way that allows outsiders to test, discuss, and contribute to your efforts.
When you disagree, consult others
---------------------------------
Disagreements, both political and technical, happen all the time and the PROVEE community is no exception. It's important that we resolve disagreements and differing views constructively and with the help of the community and community process. If you really want to go a different way, then we encourage you to make a derivative distribution or alternate set of packages that still build on the work we've done to utilize as common of a core as possible.
When you're unsure, ask for help
--------------------------------
Nobody knows everything, and nobody is expected to be perfect. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.
Step down considerately
-----------------------
Developers on every project come and go and PROVEE is no different. When you leave or disengage from the project, in whole or in part, we ask that you do so in a way that minimizes disruption to the project. This means you should tell people you're leaving and take the proper steps to ensure that others can pick up where you left off.
Comparison
==========
As mentioned before, PROVEE is a user-friendly system for 2D embedding projections.
However, PROVEE is not the only library that aims to visualize embeddings. To build the optimal embedding projector we have looked at existing tools and examined what worked well using these tools. But most importantly: what was missing? Other's mistakes can be a fruitful sources of information. Mistakes can only imPROVEE our library!
There are several libraries and tools that try to visualize embeddings, but there are only a few tools where visualization of embeddings is the main purpose.
The most important libraries/tools we have looked at to create PROVEE:
* Vec2graph
* Tensorflow Embedding Projector
* Whatlies
* Parallax
Libraries and tools were examined for their scalability, user-friendliness, responsiveness and advantages and disadvantages. We were also interested in their back-end and data storage and transfer.
Vec2graph
"""""""""
Vec2graph is a library by `Katricheva et al.(2020) <https://link.springer.com/chapter/10.1007/978-3-030-39575-9_20>`_ for visualizing word embeddings as graphs. The 2D graph is created based on cosine similarity between points and between neighbours. Graphs can contain nodes that link to other graphs and are displayed using an .html file. Vec2graph shines in the ease of use, but the projections are not suited to display many data points at once.
Whatlies
""""""""
`Whatlies <https://rasahq.github.io/whatlies/>`_ is a project developed by Rasa. The goal of the project is to create an API that supports many languages, such as SpaCy, Gensim and FastText to display word or sentence embeddings. Whatlies enables users to easily display data in interactive 2D graphs. The axes can be defined by dimension reduction methods, such as PCA or UMAP, but also special queries. For instance, 'man' can be the y-axis and 'woman' can be the x-axis. The special thing about Whatlies is the support for vector arithmetic on embeddings, which can be visualized directly in the interactive plots. It has a high scalability of the input, but the overall goal is to visualize smaller groups of words. The drawback is that the library depends on a lot of backends, which can be problematic when packages get updated. Furthermore, the tool requires little programming knowledge, but has a clear documentation on their Github.io page.
Tensorflow Embedding Projector
""""""""""""""""""""""""""""""
The `Embedding Projector <https://projector.tensorflow.org/>`_ is part of the Tensorboard. It can graphically represent embeddings in a 2D or 3D space. These embeddings can be anything, as long as they can be converted to a tab separated file. The tool has a high scalability and is suited to display many data points at once. The user can interactively explore the embedding space, varying many parameters, easily switching from PCA to UMAP, 2D to 3D. A disadvantage of the tool is the limitation of dimensionality reduction methods as preprocessing method to display the data points.
Parallax
""""""""
Last but not least, there is `Parallax <https://github.com/uber-research/parallax>`_. Parallax is a tool to display word embedding spaces, suited for many embeddings with high dimensions. The tool is suited to display many data points at once. Most interesting is the article accompanying the tool of `Molino et al. (2019) <https://arxiv.org/abs/1905.12099>`_. The axes can be obtained using PCA or t-SNE, but they propose a Cartesian approach to the specification of the axes: axes that are the result of algebraic formulas on these vectors. This results in axes that can be the average of two words or the most frequently occuring word in the data set. The major drawback of the tool is the slow loading and reaction time when using >10.000 points. Another difficulty of the tool is the required programming exprience. Some knowledge of programming is required.
PROVEE
------
Our current project PROVEE tries to overcome all the major drawbacks of the studied tools, by designing a user-friendly, responsive tool, suitable for many embeddings with high dimensionality. The embeddings can be anything. Not only word embeddings, but image embeddings, DNA embeddings, sentence embeddigns, you name it. Programming experience is not required, which makes the tool easy to use.
.. role:: raw-html-m2r(raw)
:format: html
Contributing
============
Introduction
------------
First off, thank you for considering contributing to Provee! Most likely that means that you came across some limitations of other systems or you
just want to play around with the coolest newest technology (like we do 😎).
BUT why should I read this!??!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Our contribution guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
Which kind of contributions we are searching for.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PROVEE is an open source project with academic background. We love to receive contributions from our community — you! Generally, all contributions are more than welcome. Ideas for non-conventional contributions can be writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into Provee itself.
.. raw:: html
<!-- ### Explain contributions you are NOT looking for (if any).
Again, defining this up front means less work for you. If someone ignores your guide and submits something you don’t want, you can simply close it and point to your policy.
> Please, don't use the issue tracker for [support questions]. Check whether the #pocoo IRC channel on Freenode can help with your issue. If your problem is not strictly Werkzeug or Flask specific, #python is generally more active. Stack Overflow is also worth considering.
[source: [Flask](https://github.com/pallets/flask/blob/master/CONTRIBUTING.rst)] **Need more inspiration?** [1] [cucumber-ruby](https://github.com/cucumber/cucumber-ruby/blob/master/CONTRIBUTING.md#about-to-create-a-new-github-issue) [2] [Read the Docs](http://read-the-docs.readthedocs.org/en/latest/open-source-philosophy.html#unsupported) -->
Code of Conducts
----------------
Please find our Code of Conduct here. We that this serious! `Code of Conduct for more fun and happiness in PROVEE <../CODE_OF_CONDUCT.md>`_
Your First Contribution
-----------------------
..
Unsure where to begin contributing to Atom? You can start by looking through ``beginner`` and ``help-wanted`` issues:
.. code-block::
Beginner issues - issues which should only require a few lines of code, and a test or two.
Help wanted issues - issues which should be a bit more involved than beginner issues.
Issue lists can be sorted by total number of comments. While not perfect, number of comments is a reasonable proxy for impact a given change will have.
Never contributed to open source before? No problemo
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Here are a couple of friendly tutorials: http://makeapullrequest.com/ and http://www.firsttimersonly.com/ or use this *free* series, `How to Contribute to an Open Source Project on GitHub <https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github>`_.
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first :smile_cat:
If a maintainer asks you to ``rebase`` your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
Getting started
---------------
For something that is bigger than a one or two line fix:
#. Create your own fork of the code
#. Do the changes in your fork
#. If you like the change and think the project could use it:
* Be sure you have followed the code style for the project.
.. raw:: html
<!-- * Sign the Contributor License Agreement, CLA, with the jQuery Foundation. -->
* Note the Provee Code of Conduct.
* Send a pull request.
.. raw:: html
<!-- [source: [Requirejs](http://requirejs.org/docs/contributing.html)] **Need more inspiration?** [1] [Active Admin](https://github.com/activeadmin/activeadmin/blob/master/CONTRIBUTING.md#1-where-do-i-go-from-here) [2] [Node.js](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#code-contributions) [3] [Ember.js](https://github.com/emberjs/ember.js/blob/master/CONTRIBUTING.md#pull-requests) -->
Small contributions such as fixing spelling errors, where the content is small enough to not be considered intellectual property, can be submitted by a contributor as a patch.\ :raw-html-m2r:`<br>`
As a rule of thumb, changes are obvious fixes if they do not introduce any new functionality or creative thinking. As long as the change does not affect functionality, some likely examples include the following:
* Spelling / grammar fixes
* Typo correction, white space and formatting changes
* Comment clean up
* Bug fixes that change default return values or error codes stored in constants
* Adding logging messages or debugging output
* Changes to ‘metadata’ files like Gemfile, .gitignore, build scripts, etc.
* Moving source files from one directory or package to another
Code, commit message and labeling conventions
---------------------------------------------
These sections should streamline the contributions you make to PROVEE.
Preferred style for code.
-------------------------
TDB
Commit message conventions.
---------------------------
We are using semantic versioning `semver <semver.org>`_ and particularly `semantic-release <https://github.com/semantic-release/semantic-release#readme>`_ in this project. Release Notes and Changelogs are automatically generated. It is important that you obey the `Angular Commit Message Conventions <https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines>`_
.. code-block::
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
**Type** must be one of the following:
* feat: A new feature
* fix: A bug fix
* docs: Documentation only changes
* style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
* refactor: A code change that neither fixes a bug nor adds a feature
* perf: A code change that improves performance
* test: Adding missing or correcting existing tests
* chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
Labeling conventions for issues.
--------------------------------
We try to follow the `StandardIssueLabels <https://github.com/wagenet/StandardIssueLabels#standardissuelabels>`_ for open source projects
How to report a bug
-------------------
Security FIRST!
^^^^^^^^^^^^^^^
Any security issues should be submitted directly to m.behrisch at uu.nl\ :raw-html-m2r:`<br>`
In order to determine whether you are dealing with a security issue, ask yourself these two questions:
* Can I access something that's not mine, or something I shouldn't have access to?
* Can I disable something for other people?
If the answer to either of those two questions are "yes", then you're probably dealing with a security issue. Note that even if you answer "no" to both questions, you may still be dealing with a security issue, so if you're unsure, just email us at m.behrisch at uu.nl.
How to file a bug report.
^^^^^^^^^^^^^^^^^^^^^^^^^
When filing an issue, make sure to answer these five questions:
#. What version of PROVEE are you using (VERSION.txt file)?
#. What operating system and browser are you using?
#. What did you do?
#. What did you expect to see?
#. What did you see instead?
General questions should go to the provee mailing list instead of the issue tracker. The provee-community will directly answer or ask you to file an issue if you've tripped over a bug.
How to suggest a feature or enhancement
---------------------------------------
If you find yourself wishing for a feature that doesn't exist in PROVEE, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that PROVEE has today have been added because our users saw the need. Open an issue on our issues list on GitLAB which describes the feature you would like to see, why you need it, and how it should work.
Code review process
-------------------
The core team looks at Pull Requests on a regular basis in a weekly triage meeting that we hold in a public Teams meeting (link in the `README <../README.md>`_ under contributing).\ :raw-html-m2r:`<br>`
After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.
.. raw:: html
<!-- # Community
You can chat with the core team on https://gitter.im/cucumber/cucumber. We try to have office hours on Fridays.
[source: [cucumber-ruby](https://github.com/cucumber/cucumber-ruby/blob/master/CONTRIBUTING.md#talking-with-other-devs)] **Need more inspiration?**
[1] [Chef](https://github.com/chef/chef/blob/master/CONTRIBUTING.md#-developer-office-hours) [2] [Cookiecutter](https://github.com/audreyr/cookiecutter#community)
-->
.. role:: raw-html-m2r(raw)
:format: html
Deployment Guide
================
.. raw:: html
<p align="center">
<a href="" rel="noopener">
<img width=200px height=200px src="https://i.imgur.com/6wj0hh6.jpg" alt="Project logo"></a>
</p>
.. raw:: html
<h3 align="center">PROVEE - PROgressiVe Explainable Embeddings</h3>
----
.. raw:: html
<p align="center">
Deep Neural Networks (DNNs), and their resulting **latent or embedding data spaces, are key to analyzing big data** in various domains such as vision, speech recognition, and natural language processing (NLP). However, embedding spaces are high-dimensional and abstract, thus not directly understandable. We aim to develop a software framework to visually explore and explain how embeddings relate to the actual data fed to the DNN. This enables both DNN developers and end-users to understand the currently black-box working of DNNs, leading to better-engineered networks, and explainable, transparent DNN systems whose behavior can be trusted by their end-users.
Our central aim is to open DNN black-boxes, making complex data understandable for data science novices, and raising trust/transparency are core topics in VA and NLP research. PROVEE will advertise and apply VA in a wider scope with impact across sciences (medicine, engineering, biology, physics) where researchers use big data and deep learning.
</p>
📝 Table of Contents
--------------------
* `Deployment Guide <#guide>`_
* `Hardware <#hardware>`_
* `Software <#software>`_
🧐 Deployment Guide :raw-html-m2r:`<a name = "guide"></a>`
--------------------------------------------------------------
empty for now
🧰 Hardware Requirements :raw-html-m2r:`<a name = "hardware"></a>`
----------------------------------------------------------------------
empty for now
💾 Software Requirements :raw-html-m2r:`<a name = "software"></a>`
----------------------------------------------------------------------
empty for now
README
======
.. role:: raw-html-m2r(raw)
:format: html
.. raw:: html
<p align="center">
<a href="" rel="noopener">
<img width=200px height=200px src="https://i.imgur.com/6wj0hh6.jpg" alt="Project logo"></a>
</p>
.. raw:: html
<h3 align="center">PROVEE - PROgressiVe Explainable Embeddings</h3>
----
.. raw:: html
<p align="center">
Deep Neural Networks (DNNs), and their resulting **latent or embedding data spaces, are key to analyzing big data** in various domains such as vision, speech recognition, and natural language processing (NLP). However, embedding spaces are high-dimensional and abstract, thus not directly understandable. We aim to develop a software framework to visually explore and explain how embeddings relate to the actual data fed to the DNN. This enables both DNN developers and end-users to understand the currently black-box working of DNNs, leading to better-engineered networks, and explainable, transparent DNN systems whose behavior can be trusted by their end-users.
Our central aim is to open DNN black-boxes, making complex data understandable for data science novices, and raising trust/transparency are core topics in VA and NLP research. PROVEE will advertise and apply VA in a wider scope with impact across sciences (medicine, engineering, biology, physics) where researchers use big data and deep learning.
</p>
📝 Table of Contents
--------------------
* `About <#about>`_
* `Getting Started <#getting_started>`_
* `Feature/Performance Comparison <../COMPARISON.md>`_
* `Deployment <#deployment>`_
* `Usage <#usage>`_
* `Built Using <#built_using>`_
* `TODO <../TODO.md>`_
* `Contributing <../CONTRIBUTING.md>`_
* `Authors <#authors>`_
* `Acknowledgments <#acknowledgement>`_
🧐 About :raw-html-m2r:`<a name = "about"></a>`
---------------------------------------------------
In this repository you will find PROVEE, short for Progressive Explainable Embeddings, a visual-interactive system for representing the embedding data spaces in a user-friendly 2D projection. The idea behind `Progressive Analytics <https://arxiv.org/abs/1607.05162>`_\ , such as described e.g. by Fekete and Primet, is to provide a rapid data exploration pipeline with a feedback loop from the system to the analyst with a latency below about 10 seconds. Research has shown that when performing exploratory analysis humans need a latency below about 10 seconds to remain focused and use their short-term memory efficiently. Therefore, PROVEE's goals are (1) to provide increasingly meaningful partial results as the algorithms execute, (2) provide visualizations that minimize distractions by not changing views excessively, (3) will provide cues to indicate where new results have been found by analytics, (4) should provide an interface for users to specify where analytics should focus, as well as the portions of the problem space that should be ignored. *Note that these goals are adapted from the aforementioned publication.*
PROVEE's architecture includes (1) back-end analysis algorithms (particularly, incremental projection algoritms), (2) intuitive, web-based user interfaces/visualizations and (3) intermediate data storage and transfer. Core to our system is an innovative, progressive analysis workflow targeting a human-algorithm feedback-loop with a latency under ~10 seconds to maintain the user's efficiency during exploration tasks. PROVEE will be scalable to big data; generic (handle data from many application domains); and easy to use (requires no specialist programming from the user). Please also refer to our `Performance and feature comparison <../COMPARISON.md>`_ to available (visualization and analysis) tools
🏁 Getting Started :raw-html-m2r:`<a name = "getting_started"></a>`
-----------------------------------------------------------------------
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See `deployment <#deployment>`_ for notes on how to deploy the project on a live system.
Prerequisites
^^^^^^^^^^^^^
.. raw:: html
<!-- What things you need to install the software and how to install them. -->
.. code-block::
Docker, Kubernetes
Installing
^^^^^^^^^^
To install the backend please refer to the `backend README <backend/README.md>`_ and for the frontend to the `frontend README <frontend/README.md>`_.
Generate gRPC service classes whenever `protos <protos/README.md>`_ change.
clone the latest Provee directory from Gitlab
.. code-block::
git clone https://git.science.uu.nl/vig/provee/dummy-vue-grpc
cd to the cloned provee backend directory
.. code-block::
cd dummy-vue-grpc/backend
run docker-compose to start all backend services
.. code-block::
docker-compose up
cd to the cloned provee frontend directory
.. code-block::
cd dummy-vue-grpc/frondent
ensure Node.js and yarn are installed
build the frontend
.. code-block::
yarn install
yarn build
.. raw:: html
<!-- A step by step series of examples that tell you how to get a development env running.
Say what the step will be
```
Give the example
```
And repeat
```
until finished
```
End with an example of getting some data out of the system or using it for a little demo.
-->
🔧 Running the tests :raw-html-m2r:`<a name = "tests"></a>`
---------------------------------------------------------------
Explain how to run the automated tests for this system.
Break down into end to end tests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Explain what these tests test and why
.. code-block::
Give an example
Basic Unit Tests
^^^^^^^^^^^^^^^^
We use `Jest <https://jestjs.io/>`_ for JavaScript based Unit Tests,
.. code-block::
npm run tests
🎈 Usage :raw-html-m2r:`<a name="usage"></a>`
-------------------------------------------------
Notes about how to use the system are TBD, Video coming soon.
🚀 Deployment :raw-html-m2r:`<a name = "deployment"></a>`
-------------------------------------------------------------
If you want to deploy a live system refer to the `Deployment Guide <../DEPLOYMENTGUIDE.md>`_.
⛏️ Built Using :raw-html-m2r:`<a name = "built_using"></a>`
---------------------------------------------------------------
* `VueJs <https://vuejs.org/>`_ - Web Framework
* `NodeJs <https://nodejs.org/en/>`_ - Server Environment
* `PixiJS <https://www.pixijs.com/>`_ - Visualization
* `D3js <https://www.d3js.org/>`_ - Visualization
✍️ Authors :raw-html-m2r:`<a name = "authors"></a>`
-------------------------------------------------------
* `Michael Behrisch <https://michael.behrisch.info>`_ - Idea & Initial work
* `Simen van Herpt <https://github.com/IsolatedSushi>`_ - Backend & Infrastructure
* `Jan Zak <https://zakjan.cz/>`_ - Vis coding
See also the list of `contributors <https://git.science.uu.nl/vig/provee/dummy-vue-grpc/-/graphs/master>`_ who participated in this project.
🎉 Acknowledgements :raw-html-m2r:`<a name = "acknowledgement"></a>`
------------------------------------------------------------------------
* Hat tip to anyone whose code was used
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join('..', '..')))
# -- Project information -----------------------------------------------------
project = 'PROVEE'
copyright = '2021, Michael Behrisch, Simen van Herpt, Dennis Owolabi, Sinie van der Ben'
author = 'Michael Behrisch, Simen van Herpt, Dennis Owolabi, Sinie van der Ben'
# The full version, including alpha/beta/rc tags
release = '0.0.1'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.napoleon'
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
.. PROVEE documentation master file, created by
sphinx-quickstart on Wed Mar 17 14:08:34 2021.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to PROVEE's documentation!
==================================
.. toctree::
:maxdepth: 2
:caption: Contents:
modules
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
======
PROVEE
======
.. toctree::
:maxdepth: 2
:caption: README:
README
.. toctree::
:maxdepth: 4
:caption: Source code:
src
.. toctree::
:maxdepth: 2
:caption: Code of Conduct:
CODE_OF_CONDUCT
.. toctree::
:maxdepth: 2
:caption: Comparison:
COMPARISON
.. toctree::
:maxdepth: 2
:caption: Contributing:
CONTRIBUTING
.. toctree::
:maxdepth: 2
:caption: Deployment Guide:
DEPLOYMENTGUIDE
src.KNN package
===============
Submodules
----------
src.KNN.faissKNN module
-----------------------
.. automodule:: src.KNN.faissKNN
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: src.KNN
:members:
:undoc-members:
:show-inheritance:
src.Projections.CPP package
===========================
Module contents
---------------
.. automodule:: src.Projections.CPP
:members:
:undoc-members:
:show-inheritance:
src.Projections.Python.PCA package
==================================
Submodules
----------
src.Projections.Python.PCA.PCAProjector module
----------------------------------------------
.. automodule:: src.Projections.Python.PCA.PCAProjector
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: src.Projections.Python.PCA
:members:
:undoc-members:
:show-inheritance:
src.Projections.Python package
==============================
Subpackages
-----------
.. toctree::
:maxdepth: 4
src.Projections.Python.PCA
Submodules
----------
src.Projections.Python.ProjectionTransformer module
---------------------------------------------------
.. automodule:: src.Projections.Python.ProjectionTransformer
:members:
:undoc-members:
:show-inheritance:
src.Projections.Python.Projector module
---------------------------------------
.. automodule:: src.Projections.Python.Projector
:members:
:undoc-members:
:show-inheritance:
src.Projections.Python.Transformer module
-----------------------------------------
.. automodule:: src.Projections.Python.Transformer
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: src.Projections.Python
:members:
:undoc-members:
:show-inheritance:
src.Projections package
=======================
Subpackages
-----------
.. toctree::
:maxdepth: 4
src.Projections.CPP
src.Projections.Python
Module contents
---------------
.. automodule:: src.Projections
:members:
:undoc-members:
:show-inheritance:
src.UI package
==============
Submodules
----------
src.UI.Renderer module
----------------------
.. automodule:: src.UI.Renderer
:members:
:undoc-members:
:show-inheritance:
src.UI.Renderer2D module
------------------------
.. automodule:: src.UI.Renderer2D
:members:
:undoc-members:
:show-inheritance:
src.UI.Renderer3D module
------------------------
.. automodule:: src.UI.Renderer3D
:members:
:undoc-members:
:show-inheritance:
src.UI.SideGrip module
----------------------
.. automodule:: src.UI.SideGrip
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: src.UI
:members:
:undoc-members:
:show-inheritance:
Source code
===========
Subpackages
-----------
.. toctree::
:maxdepth: 4
src.KNN
src.Projections
src.UI
src.utils
Submodules
----------
src.constants module
--------------------
.. automodule:: src.constants
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: src
:members:
:undoc-members:
:show-inheritance:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment