diff --git a/README.md b/README.md
index 81a256d70..c5c7406b7 100644
--- a/README.md
+++ b/README.md
@@ -160,13 +160,69 @@ trainer = Trainer(solver, max_epochs=1000, accelerator='gpu')
trainer.train()
```
-## Application Programming Interface
+## PINA Modules Structure
Here's a quick look at PINA's main module. For a better experience and full details, check out the [documentation](https://mathlab.github.io/PINA/).
-
-
-
+```mermaid
+flowchart TB
+ PINA["
pina
The basic module including `Condition`, LabelTensor, `Graph` and `Trainer` API"]
+
+ subgraph R1[" "]
+ direction LR
+ PROB["pina.problem
Module for defining problems via base class inheritance"]
+ MODEL["pina.model
Module for built-in PyTorch models full architectures"]
+ SOLVER["pina.solver
Module for built-in solvers and abstract interfaces"]
+ CALLBACK["pina.callback
Module for built-in callbacks to integrate training pipelines"]
+ end
+
+ subgraph R2[" "]
+ direction LR
+ DOMAIN["pina.domain
Module for defining geometries and set operations"]
+ BLOCK["pina.block
Module for built-in PyTorch models layers only"]
+ OPTIM["pina.optim
Module for build or import optimizers and schedulers"]
+ DATA["pina.data
Module for DataModules for data processing"]
+ end
+
+ subgraph R3[" "]
+ direction LR
+ OPERATOR["pina.operator
Module for differential operators"]
+ ADAPT["pina.adaptive_function
Module for PyTorch learnable activations"]
+ LOSS["pina.loss
Module for losses and weighting strategies"]
+ CONDITION["pina.condition
Module for model training constraints"]
+ end
+
+ PINA --> PROB
+ PINA --> MODEL
+ PINA --> SOLVER
+ PINA --> CALLBACK
+
+ PROB --> DOMAIN
+ MODEL --> BLOCK
+ SOLVER --> OPTIM
+ CALLBACK --> DATA
+
+ DOMAIN --> OPERATOR
+ BLOCK --> ADAPT
+ OPTIM --> LOSS
+ DATA --> CONDITION
+```
+### Steps to Follow
+
+```mermaid
+flowchart LR
+ STEP1["Problem and Data
Define the mathematical problem
Identify constraints or import data"]
+ STEP2["Model Design
Build a PyTorch module Choose or customize a model"]
+ STEP3["Solver Selection
Use available solvers or define your own strategy"]
+ STEP4["Training
Optimize the model with PyTorch Lightning"]
+
+ STEP1 e1@--> STEP2
+ STEP2 e2@--> STEP3
+ STEP3 e3@--> STEP4
+ e1@{ animate: true }
+ e2@{ animate: true }
+ e3@{ animate: true }
+```
## Contributing and Community
We would love to develop PINA together with our community! Best way to get started is to select any issue from the [`good-first-issue` label](https://github.com/mathLab/PINA/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). If you would like to contribute, please review our [Contributing Guide](CONTRIBUTING.md) for all relevant details.