# Krys4lide Logiciel de Pharmacie libre et open-source. ## Crates - `app`: Interface du logiciel, servie par un serveur web propulsé par Axum. Utilisable en mode endpoint ou encapsulé dans le client `desktop` - `desktop`: Client desktop propulsé par Tauri, encapsulant le serveur web `app` - `sesam-vitale`: Bibliothèque de gestion des services SESAM-Vitale (Lecture des cartes CPS et Vitale, téléservices ...) ## Development ### Pré-requis #### Tauri CLI La CLI Tauri est nécessaire au lancement du client `desktop`. Elle peut être installée via Cargo : ```bash cargo install tauri-cli --version "^2.0.0-beta" ``` #### Tailwindcss CLI Le CLI Tailwindcss est nécessaire pour la génération du fichier `crates/app/assets/css/style.css`. La documentation d'installation est disponible sur le site officiel de Tailwindcss : https://tailwindcss.com/blog/standalone-cli La version actuellement utilisée est la [`v3.4.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.7) #### SESAM-Vitale La crate `sesam-vitale` nécessite la présence des librairies dynamiques fournies par le package FSV et la CryptolibCPS. Les instructions d'installation sont disponibles dans le [README](crates/sesam-vitale/README.md) de la crate `sesam-vitale`. ### Lancement Le logiciel dans sa globalité peut être lancé via la commande suivante : ```bash cargo tauri dev ``` /!\ Attention, le lancement du client `desktop` ne génère pas le fichier `crates/app/assets/css/style.css` automatiquement pour le moment. En cas de modification des interfaces web, il est donc nécessaire de procéder à sa génération comme indiqué dans le [README](crates/app/README.md) de la crate `app`. Si vous souhaitez lancer les composants séparément, les indications de lancement sont disponibles dans les README des différents crates. - [app](crates/app/README.md) - [sesam-vitale](crates/sesam-vitale/README.md) ## Rechargement automatique Pour permettre de développer plus rapidement, il existe une librairie qui recompile automatiquement nos modifications en cours : [`cargo-watch`](https://github.com/watchexec/cargo-watch) permet de relancer une commande `cargo` lorsqu'un fichier est modifié (example: `cargo run` --> `cargo watch -x run`). Voici la commande pour l'installer dans un _package_ : ```bash cargo add cargo-watch --dev --package app ``` Le fichier [`.ignore`](./ignore) permet d'ignorer certains fichiers pour éviter de relancer la recompilation inutilement. ⚠️ La librairie n'est pas compatible avec _Windows 7_ et les versions antérieurs de _Windows_. ## Build Packager le client desktop ```bash cargo tauri build ```