.gitea | ||
crates | ||
docs | ||
entity | ||
migration | ||
scripts | ||
.env.linux.example | ||
.env.win.example | ||
.gitignore | ||
.ignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
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 clientdesktop
desktop
: Client desktop propulsé par Tauri, encapsulant le serveur webapp
sesam-vitale
: Bibliothèque de gestion des services SESAM-Vitale (Lecture des cartes CPS et Vitale, téléservices ...)utils
: Bibliothèque de fonctions utilitaires
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
Tauri CLI
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-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
SeaORM CLI
SeaORM est notre ORM. Le CLI SeaORM est nécessaire pour la génération des modèles de la base de données et des migrations associées. Elle peut être installée via Cargo :
cargo install sea-orm-cli
L'applicatif va chercher les informations de connexion à la base de données dans la variable DATABASE_URL
importée depuis les fichiers de configuration.
DATABASE_URL=sqlite://p4pillon.sqlite?mode=rwc
Toutefois, l'usage de la CLI de SeaORM nécessite de renseigner les informations de connexion à la base de données dans un fichier .env
situé à la racine du projet.
Astuce : utilisé un lien symbolique pour éviter de dupliquer le fichier
.env
.
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
.
Lancement
Le logiciel dans sa globalité peut être lancé via la commande suivante :
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 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.
Rechargement automatique
Pour permettre de développer plus rapidement, il existe une librairie qui recompile automatiquement nos modifications en cours : 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 :
cargo add cargo-watch --dev --package app
Le fichier .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
cargo tauri build
Gestion de la base de données
Création d'une migration
sea-orm-cli migrate generate <nom_de_la_migration>
Cette commande génère un fichier de migration à adapter dans le dossier migration/src
.
Appliquer les migrations
sea-orm-cli migrate up
Génération des entitées
sea-orm-cli generate entity -o entity/src/entities