But : refaire le concours bac+2 en utilisant Rust Avec comme maîtres mots : - KISS : keep it simple, stupid - Less is more - Non bloated - Non over-engineering ## Contraintes techniques : Aller au plus simple : - pas de webapp, mais un site classique - pas de framework JS, voire pas de javascript du tout - un peu de css, mais pas de sass ou autre techno - pas de fonctionnalités inutiles - un framework simple, robuste avec de la documentation : axum (voire blessed.rs) -> voir [projectc-dropped](https://gitea.fery.me/Rust/ProjectC-Dropped) et [suiviconcours-dropped](https://gitea.fery.me/Rust/suivi-concours-Dropped) - [axum doc](https://docs.rs/axum/latest/axum/) et le [github](https://github.com/tokio-rs/axum) - moteur de template : [tera](https://keats.github.io/tera/docs/) -> [suiviconcours-dropped](https://gitea.fery.me/Rust/suivi-concours-Dropped) - pour la partie sql : sqlx -> [suiviconcours-dropped](https://gitea.fery.me/Rust/suivi-concours-Dropped) ## Dossier PDF J'ai cherché fouillé beaucoup de possibilités. Mais, la manipulation du PDF semble très scabreuse. Initialement, je voulais avoir un PDF pré fait avec des tags à remplacer. Mais, je n'ai pas trouvé de bibliothèque permettant ce genre de manipulation. Sauf [lopdf](https://crates.io/crates/lopdf) mais qui s'avérait avoir un bug sur le remplacement de texte. Une possibilité aurait été de coder en Rust l'intégralité du PDF avec notamment la bibliothèque [printpdf](https://crates.io/crates/printpdf). Finalement, je suis parti pour faire le dossier en HTML, qui sera ensuite converti en PDF via pandoc. La solution sera bien plus pérenne, les bibliothèques tournant autours du PDF ont une durée de vie assez limité. La génération du PDF se fait juste après l'insertion des données dans la base de données. Donc le PDF est fait une fois pour toute et est disponible en téléchargement direct via un dossier spécial. ## Todo fonctionnel Poc : - [x] formulaire de quelques champs, avec validation des données - [x] récupération de ces données et les injecter dans la base - [x] génération PDF du dossier - [x] lien vers le dossier pdf - [x] transfert vers la page de paiement au besoin - [ ] s'identifier via ldap, voir le logiciel du magasin pour la configuration - [ ] envoie de mail de confirmation Plus tard : - saisi du mail - validation du mail - gestion des 3 années avec même formulaire - demande du renvoi de mail avec les informations - test fonctionnel sur les requêtes sql - intégrer les tpl au binaire Deuxième étape : - interface admin, évolution statut de la demande - upload des pièces justificative