> For the complete documentation index, see [llms.txt](https://edissyum.gitbook.io/open-capture/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edissyum.gitbook.io/open-capture/technique/developpement-custom.md).

# Développement custom

Si, pour les besoins de votre projet, vous avez besoin de customiser certaines parties du code, nous avons rendu cette opération-là plus simple possible. Pour arriver à cela, nous avons rendu possible le code custom. Cela vous permettra de développer du code spécifique sans tout perdre à chaque mise à jour.

{% hint style="warning" %}
Seuls les fichiers au niveau du backend sont modifiable. En effet, depuis la version 2.0 la partie frontend est gérée par Angular. Ce dernier nécessitant une compilation après chaque modification, la personnalisation n'est donc pas gérable.
{% endhint %}

## Ajout d'un nouveau custom

Voir la page spécifique : [Création d'instances supplémentaires](/open-capture/technique/installation/creation-dinstances-supplementaires.md)

## Création de l'arborescence

Après avoir activé le custom voulu, comme montré précédemment, il ne vous reste plus qu'à choisir les fichiers à modifier et à recréer leur arborescence. Pour la suite, nous allons nous baser sur l'exemple du custom `[votre_custom]`. Si jamais vous souhaitez modifier, par exemple, le fichier gérant les web services liés aux utilisateurs, vous devrez recréer l'arborescence dans le dossier `custom`, comme suit :

{% code title="Arborescence simplifié d" %}

```
├── bin
├── custom
   └── votre_custom
        └── src
           └── backend
               └── rest
                  └── user.py
├── dist
├── instance
└── src
    ├── assets
    ├── backend
       ├── classes
       ├── controllers
       ├── invoice_classification
       ├── models
       ├── process
       └── rest
    └── frontend
```

{% endcode %}

Après avoir rajouté vos fichiers customs, il est nécessaire de redémarrer différents services :

```
systemctl restart OCVerifier-worker_CUSTOMID
systemctl restart OCSplitter-worker_CUSTOMID
systemctl restart apache2
```

{% hint style="info" %}
À noter que tout développement custom peut éventuellement être intégré au code source d'**Open-Capture**, si celui-ci répond à une problématique générique et peut répondre à une demande de la communauté. Dans ce cas là, n'hésitez pas à créer un Pull Request sur le[ dépôt officiel d'**Open-Capture**](https://kutt.it/GithubPR).
{% endhint %}
