Skip to content

App Structure

Samuel SIKATI KENMOGNE edited this page Dec 5, 2024 · 3 revisions

The iPhyloGeo_plus_plus application is designed to provide advanced phylogeographic analysis tools. This document outlines the structure of the application, detailing the organization of its components and the relationships between them. Understanding the app structure is crucial for developers and contributors who wish to navigate the codebase efficiently and contribute effectively. Below, you will find an overview of the folder structure, key files, and a UML class diagram that illustrates the architecture of the UI components.

Main Components

  1. aPhyloGeo Library:

    • Provides the core functionalities for phylogeographic analysis.
    • Includes various algorithms for data processing and analysis.
    • Designed to be extensible, allowing for the addition of new algorithms and tools.
  2. Qt/PyQt5 UI:

    • Utilizes PyQt5 to create the graphical user interface.
    • Includes multiple .ui files that define the layout and components of different windows and dialogs.
    • Provides a responsive and user-friendly interface for interacting with the core functionalities.

Folder Structure

This is a detailed folder structure of the iPhyloGeo_plus_plus project:

└── 📁iPhyloGeo_plus_plus
    └── 📁.github                        Contains GitHub-specific configurations and templates.
    └── 📁.idea                          Contains project-specific settings for the IntelliJ IDEA IDE.
    └── 📁datasets                       Includes sample data for testing purposes.
    └── 📁img                            Contains images used by the README and the application.
    └── 📁results                        Directory for storing results generated by the application.
    └── 📁Qt                             Contains UI files for the application.
        └── 📄help.ui
        └── 📄loading.ui
        └── 📄main.ui
        └── 📄parameters.ui
        └── 📄wait.ui
    └── 📁utils                          Contains utility scripts and configuration files.
        └── 📄__init__.py
        └── 📄genetic_params_dialog.py
        └── 📄help.py
        └── 📄params_default.yaml
        └── 📄params.yaml
        └── 📄PreferencesDialog.py
        └── 📄resources_rc.py
        └── 📄settings.py
        └── 📄__init__.py
    └── 📄main.py                        The main entry point of the application.
    └── 📄.gitignore                     Specifies files and directories to be ignored by Git.
    └── 📄.isort.cfg                     Configuration file for the isort tool.
    └── 📄.pre-commit-config.yaml        Configuration file for pre-commit hooks.
    └── 📄black.toml                     Configuration file for the Black code formatter.
    └── 📄README.md                      The main README file for the project.
    └── 📄requirements-dev.txt           List of development dependencies.
    └── 📄requirements.txt               List of dependencies.
    └── 📄ruff.toml                      Configuration file for the Ruff linter.

UML Class Diagram

The following diagram provides a visual representation of the class implementation for the UI components of the iPhyloGeo_plus_plus application. It adheres to the UML 2.5 specification, detailing the relationships and interactions between different classes and their specific responsibilities.

iPhyloGeo_plus_plus_ui_implementation_class_diagram_revised

For more detailed information on UML elements, you can refer to the UML Core Reference.

Clone this wiki locally