Skip to content

Repository Structure

FR-SON edited this page May 24, 2024 · 6 revisions

General

TracEX is developed using Django, adhering to the framework's conventions as detailed in the Django Documentation. The root directory of the project is tracex_project, which is accompanied by various configuration files and a /docs directory that includes guidelines on commit message conventions and branch naming conventions. For more details, see the branch naming guidelines and commit message guidelines.

The project is organized into five applications: extraction, db_results, patient_journey_generator, trace_comparator, and tracex. Each application encapsulates specific functionalities, encompassing both the user interface code and the logic execution.

All apps feature Django specific files:

  • forms.py: defines the input options for the users and the validation for that input
  • views.py: defines the content that is displayed for the user and executes the logic of TracEX.
  • apps.py: defines initialization for the app.
  • urls.py: defines the url paths, that are used in the app and connects a view to each of them.

Some of the apps additionally share the following directories:

  • /tests: contains unit tests for the specific app
  • /static: contains all static files for the specific app, including images, CSS and JavaScript
  • /templates: contains html files that serve as templates, which the views fill with variables. These html files define how the UI looks in the browser.
  • /migrations: contains the migration files created by django. They log all changes made to the database schema.
  • /logic: contains all source code that defines logic for the specific app in addition to that, which is defined in the views
  • /fixtures: contains json files that populate the test database used in /tests

This outlines to content and purpose of all the apps. For a more detailed description please see Pipelines.

tracex

This app contains all functionality that is shared between multiple apps including settings.py that defines all basic settings for the project.

extraction

This app contains everything that is related to the extraction process itself. This includes the /modules as well as views and forms needed to display the tool to the user and handle user input. /modules is a python package that groups all modules that can be used in the extraction. Each module is specified in a separate file. The extraction app also contains the modules.py file, which defines the database schema.

db_results

This app contains all functionality, that is required to scrutinize the content of the database. This includes the metrics dashboard and the evaluation view.

patient_journey_generator

This app contains all functionality, that is required to create synthetic patient journeys.

Clone this wiki locally