florian_briand
345190dfeb
Reviewed-on: #67 Reviewed-by: kosssi <simon@p4pillon.org> ### Détails - Ajout d'une interface "de base", avec une navbar (supprimée par la #65) - Ajout d'un bouton de connexion, ouvrant une modale - Sélection de l'utilisateur⋅ice au click ou par raccourci clavier - Usage réactif d'un état partagé entre les composants, pour stocker l'information de l'utilisateur⋅ice connecté⋅e - Menu dropdown de "profil" & Déconnexion ![Peek 24-09-2024 01-03](/attachments/4ceda5b3-26d9-4022-8923-e65a08da8dcd) # Compatibilité Les choix d'implémentation des éléments "dynamiques" de l'interface (modale, dropdown), encouragés par la documentation de DaisyUI, s'appuient sur les dernières évolutions de la norme HTML : il n'y a donc aucun javascript pour les gérer, c'est fait nativement par le navigateur. Il faudrait vérifier si les librairies et framework qu'on utilise implémentent ces fonctionnements en "polyfill" pour les anciens navigateurs. Si ce n'est pas le cas, il faudra définir si : - on cherche des polyfills adaptés - on laisse comme ça sans rétro-compatibilité (pas très "numérique responsable") - on fallback sur des implémentations plus "traditionnelles" mais rétro-compatibles Closes #61 |
||
---|---|---|
.gitea | ||
crates | ||
docs | ||
frontend | ||
scripts | ||
.env.linux.example | ||
.env.win.example | ||
.gitignore | ||
.ignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
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