Logiciel de pharmacie
Go to file
2024-09-24 13:05:27 +02:00
.gitea fix: update module options in BUG_REPORT.yaml template 2024-08-26 22:36:53 +02:00
crates feat: migrate utils::config from anyhow to thiserror and handle a "single config init" mechanism 2024-09-24 13:05:27 +02:00
docs feat: add documentation about errors handling in docs/errors.md 2024-08-20 22:33:57 +02:00
frontend feat: Add a client-side only user selection interface 2024-09-24 12:56:50 +02:00
scripts chore: setup sesam-vitale lib with crossplatform ssv usage 2024-07-26 22:50:27 +02:00
.env.linux.example feat: initialize a utils lib with config functions handling config files in local and standard OS directories 2024-08-30 18:28:29 +02:00
.env.win.example feat: initialize a utils lib with config functions handling config files in local and standard OS directories 2024-08-30 18:28:29 +02:00
.gitignore feat: initialize a utils lib with config functions handling config files in local and standard OS directories 2024-08-30 18:28:29 +02:00
.ignore feat: Add auto-reload on development environment 2024-08-08 22:18:26 +02:00
Cargo.lock feat: migrate utils::config from anyhow to thiserror and handle a "single config init" mechanism 2024-09-24 13:05:27 +02:00
Cargo.toml feat: setup a backend server with axum 2024-09-23 18:56:16 +02:00
README.md feat: improve README 2024-09-23 18:56:16 +02:00

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)

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