2.9 KiB
Krys4lide
Logiciel de Pharmacie libre et open-source.
Modules applicatifs
crates
: Dossier racine des modules Rustcrates/backend
: Serveur backend propulsé par Axum, exposant une API RESTcrates/desktop
: Client desktop propulsé par Tauri, exposant lefrontend
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)
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, 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 :
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 de la crate sesam-vitale
.
Backend Hot-reload
Voir le README 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 :
# Lancement du serveur backend
systemfd --no-pid -s http::3030 -- cargo watch -x 'run --bin backend'
# 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 :
cargo tauri build