Code structure
The OpenTera project is logically organized into folders based on the architecture of the platform.
Root
At the root of the project:
docker
containing the docker files used to deploy in a docker environmentteraserver
containing the OpenTera source filesdocs
containing this doc (yes, this is a recursive link!)
Source folder
The base source folder contains the following folders:
easyrtc
containing the video rehab service web files used by the WebRTC subsystemlinux
containing sample services files to be used when deploying on a serverpython
containing the main OpenTera source code (see below)
TeraServer folder
alembic
containing the Alembic versions used when upgrading the database structurecertificates
used to store signing certificates for devices and, optionally, external certificates used by NGINXconfig
containing the NGINX config filesdocker
containing the docker files used to deploy in a docker environmentenv
containing therequirements.txt
file used to generate the python environment. Will also holds the generated environment.examples
containing some python client examplesmodules
containing the source codes of each of the various modules part of the OpenTera platform.opentera
containing the common classes that can be needed for the various services and useful when creating new services. This folder contains the database models, the internal communication module and the communication messages structure.services
containing the various system services of the OpenTera platform.static
andtemplates
containing the static assets and templates to display the server information page (“about”) and API documentation page.tests
containing the unit tests used in the development process.tools
containing stand-alone scripts that can be used as various tools (such as importing data from another system)translations
containing the translations files of the system