> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/3.x/it/guida-per-lo-sviluppatore/developer-guide/getting-started/tech-stack.md).

# Stack tecnologico

Di seguito viene descritto lo stack tecnologico di Chamilo 3.0. Tutte le versioni indicate sono soggette a modifiche con il rilascio di nuove versioni di Chamilo. I numeri di versione utilizzano la [notazione delle versioni di Composer](https://getcomposer.org/doc/articles/versions.md), che definisce regole per consentire una certa flessibilità intorno alle versioni.

Includendo le dipendenze gerarchiche, Chamilo utilizza diverse centinaia di librerie di software libero. Questo elenco comprende solo quelle che utilizziamo di più e che probabilmente influenzeranno il lavoro di uno sviluppatore Chamilo ogni settimana circa. Siamo grati a tutti gli altri sviluppatori di software libero che rendono il nostro lavoro più semplice, più manutenibile e più sicuro.

## Backend

| Technology                          | Version   | Purpose                                              |
| ----------------------------------- | --------- | ---------------------------------------------------- |
| PHP                                 | 8.3 – 8.5 | Runtime                                              |
| Symfony                             | 7.4.\*    | Framework                                            |
| Doctrine ORM                        | ^3.3      | Database abstraction                                 |
| API Platform                        | ^4.2      | REST API framework                                   |
| oneup/flysystem-bundle              | \~4.0     | File storage abstraction                             |
| vich/uploader-bundle                | ^2.8      | File upload handling                                 |
| stof/doctrine-extensions-bundle     | ^1.12     | Doctrine extensions (tree, timestampable, sluggable) |
| lexik/jwt-authentication-bundle     | ^2.20     | JWT authentication                                   |
| nelmio/cors-bundle                  | ^2.2      | CORS headers                                         |
| mpdf/mpdf                           | \~8.0     | PDF generation                                       |
| phpoffice/phpspreadsheet            | \~1.16    | Excel/spreadsheet handling                           |
| firebase/php-jwt                    | ^7.0      | JWT token handling                                   |
| bigbluebutton/bigbluebutton-api-php | ^2.0      | BigBlueButton integration                            |
| packbackbooks/lti-1p3-tool          | ^6.4      | LTI 1.3 implementation                               |

## Frontend

| Technology   | Version | Purpose                   |
| ------------ | ------- | ------------------------- |
| Vue.js       | ^3.5    | UI framework              |
| PrimeVue     | ^4.5    | Component library         |
| Pinia        | ^3.0    | State management          |
| Vue Router   | ^5.1    | Client-side routing       |
| Vue I18n     | ^11.4   | Internationalization      |
| Axios        | ^1.16   | HTTP client               |
| TinyMCE      | ^5.10   | Rich text editor          |
| Chart.js     | ^4.5    | Charts and visualizations |
| FullCalendar | ^6.1    | Calendar component        |
| Uppy         | ^4.5    | File upload widget        |

## Strumenti di build

| Technology             | Version | Purpose                     |
| ---------------------- | ------- | --------------------------- |
| Composer               | ^2.8    | PHP dependency manager      |
| Webpack                | ^5.107  | Module bundler              |
| Symfony Webpack Encore | ^5.3    | Webpack wrapper for Symfony |
| Tailwind CSS           | ^3.4    | Utility-first CSS framework |
| Sass                   | ^1.100  | CSS preprocessor            |
| TypeScript             | ^5.9    | Type-safe JavaScript        |
| ESLint                 | ^10.0   | Linting                     |
| Prettier               | 3.8     | Code formatting             |

## Icone

| Library   | Version | Usage                                           |
| --------- | ------- | ----------------------------------------------- |
| @mdi/font | 7.4.47  | Material Design Icons (CSS classes `mdi mdi-*`) |

## Database

Chamilo supporta:

* MySQL 5.7+
* MariaDB 10.11.2+

## Archiviazione cloud

Tramite adapter Flysystem:

* Filesystem locale (predefinito)
* AWS S3 (`league/flysystem-aws-s3-v3`)
* Azure Blob Storage (`azure-oss/storage-blob-flysystem`)
* Google Cloud Storage (`league/flysystem-google-cloud-storage`)
