Code structure
The OpenTera project is logically organized into folders based on the architecture of the platform.
Root
At the root of the project:
dockercontaining the docker files used to deploy in a docker environmentteraservercontaining the OpenTera source filesdocscontaining this doc (yes, this is a recursive link!)
Source folder
The base source folder contains the following folders:
easyrtccontaining the video rehab service web files used by the WebRTC subsystemlinuxcontaining sample services files to be used when deploying on a serverpythoncontaining the main OpenTera source code (see below)
TeraServer folder
alembiccontaining the Alembic versions used when upgrading the database structurecertificatesused to store signing certificates for devices and, optionally, external certificates used by NGINXconfigcontaining the NGINX config filesdockercontaining the docker files used to deploy in a docker environmentenvcontaining therequirements.txtfile used to generate the python environment. Will also holds the generated environment.examplescontaining some python client examplesmodulescontaining the source codes of each of the various modules part of the OpenTera platform.openteracontaining 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.servicescontaining the various system services of the OpenTera platform.staticandtemplatescontaining the static assets and templates to display the server information page (“about”) and API documentation page.testscontaining the unit tests used in the development process.toolscontaining stand-alone scripts that can be used as various tools (such as importing data from another system)translationscontaining the translations files of the system