# Krys4lide Logiciel de Pharmacie libre et open-source. ## Modules applicatifs - `crates`: Dossier racine des modules Rust - `crates/backend`: Serveur backend propulsé par Axum, exposant une API REST - `crates/desktop`: Client desktop propulsé par Tauri, exposant le `frontend` - `crates/sesam-vitale`: Bibliothèque de gestion des services SESAM-Vitale (Lecture des cartes CPS et Vitale, téléservices ...) - `crates/utils`: Bibliothèque de fonctions utilitaires - `frontend`: Interface web du logiciel, propulsée par Nuxt.js ## Installation ### Fichiers de configuration Certaines librairies nécessitent de définir certaines paramètres de configuration pour fonctionner correctement, en particulier le moteur SESAM-Vitale. Ces paramètres sont définis dans un fichier de configuration `.env` situé dans un des dossiers suivant (par ordre de priorité) : - dans le dossier courant (`./.env`) - dans le dossier du manifeste (par exemple `crates/sesam-vitale/.env`) - dans le dossier de configuration standard de l'OS (par exemple, sur linux, `~/.config/krys4lide/.env` - [plus d'info](https://github.com/dirs-dev/directories-rs?tab=readme-ov-file#projectdirs)) Des exemples de fichiers de configuration sont disponibles à la racine du projet : `.env.linux.example` et `.env.win.example`. ## Development ### Pré-requis #### Frontend (Nuxt + Typescript) Le frontend est propulsé par Nuxt.js, un framework TypeScript pour Vue.js. Pour le développement, il est nécessaire d'installer les dépendances suivantes : - [Bun](https://bun.sh/docs/installation), un gestionnaire de paquets, équivalent à `npm` en plus performant #### Tauri CLI TODO: Tauri CLI, réellement nécessaire ? 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-rc" ``` #### 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`. #### Backend Hot-reload Voir le [README](crates/backend/README.md) de la crate `backend` pour les prérequis de développement du serveur backend. ### Lancement Pour lancer l'application en mode développement, il est nécessaire d'exécuter plusieurs composants simultanément : ```bash # Lancement du serveur backend systemfd --no-pid -s http::3030 -- cargo watch -x 'run --bin backend' ``` ```bash # Lancement de l'interface utilisateur (frontend ou desktop) # - frontend (serveur web, accessible via navigateur) bun run --cwd frontend/ dev # - desktop (client desktop, basé sur Tauri) cargo tauri dev ``` ## Build Pour packager le client `desktop`, il est nécessaire de faire appel à la CLI Tauri, qui se charge de gérer le build du `frontend` et son intégration au bundle : ```bash cargo tauri build ```