2024-06-14 13:50:41 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-04-19 16:29:04 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:46:16 +02:00
2024-06-14 13:50:41 +02:00
2024-06-14 13:46:16 +02:00
2024-05-14 11:51:19 +02:00

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 :

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 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.

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 :

  • formulaire de quelques champs, avec validation des données
  • récupération de ces données et les injecter dans la base
  • génération PDF du dossier
  • lien vers le dossier pdf
  • 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
Description
No description provided
Readme 361 KiB
Languages
Rust 54%
HTML 41.9%
Shell 2.4%
Dockerfile 1.7%