Ce repo est le code source pour faire tourner la plateforme Mon Devis Sans Oublis (MDSO) basé sur certains services et outils choisis :
Le projet est encore en tout début de phase de construction et donc sujet à évolutions à travers des cyclse courts.
- Ruby on Rails version 7 comme boîte à outil et socle technique applicatif ;
- le DSFR pour réutiliser les éléments graphiques officiels via la librairie de composants DSFR
- PostgreSQL comme base de données pour stocker les données ;
- des solutions de LLM pour interroger les devis, via la boîte à outils LangChain *** Albert API d'Etalab *** Mistral.ai : données publiques et/ou anonymisées *** Ollama : un modèle Llama local
- l'API Data de l'ADEME pour croiser les données d'entreprises qualifiées ;
- des annuaires officiels de professionnels pour croiser des données ;
Publi.codes pour un moteur de validation basé sur des règles(plus utilisé pour le moment) ;- Sentry pour monitorer et être alerté en cas d'erreur ;
- Matomo pour mesurer et comprendre l'usage via des analytics ;
- RSpec comme framework de tests ;
- Rswag comme outil de documentation au format Swagger/ OpenAPI de l'API à travers des tests ;
- Cucumber et Capybara pour les tests BDD ;
- Rubocop (RSpec et Rails) pour le linting ;
- Docker pour avoir un environnement de développement.
Les fichiers devis sont traités par le QuoteChecksController
qui les envoient aux services:
QuoteReader
lisant le devis brut puis extractant les information du devis de manière naïve en se basant sur le texte du PDF et via solutions LLM avec croisement de données d'annuaires publiques de la rénovation- puis ces attributs de devis sont vérifier par le
QuoteValdiator
qui controlle un ensemble de règles et renvoit les erreurs correspondantes
docker compose exec web rake 'quote_checks:create[tmp/devis_tests/DC004200PAC-Aireau+Chauffe eau thermo.pdf]' | less
- au format REST JSON
- protéger via authentification HTTP Basic avec Bearer hashé
- voir fichier de documentation de l'API au format OpenAPI Swagger et interface bac à sable interractif sur
/api-docs
- regénération et mise à jour de la documentation à partir des spécifications tests via
make doc
docker-compose up
ou si vous l'installez directement (non recommandé)
DATABASE_URL='postgresql://postgres:dummy@localhost:5433' bin/rails server -b 0.0.0.0
Tout l'environnement est configuré pour et depuis Docker. Des commandes utiles sont fournies dans le Makefile.
Un tableau de suivis des devis soumis est disponible sur /mdso/admin sous mot de passe hors développement.
Elles sont listées dans la base de données PostgreSQL via le librairie good_job
.
Un panneau de suivis est disponible sur /mdso_good_job/ sous mot de passe hors développement.
Ils sont envoyés en asynchrones via le service Brevo.
Une cinématique GitHub Action est founie qui lance :
- le linting via Rubocop ;
- les tests unitaires ia RSpec ;
- les tests d'intégration.
Cette cinématique commence d'abord par construire l'image Docker qu'elle transmet ensuite aux trois étapes ci-dessus, ce qui évite de répéter trois fois l'installation et la configuration du projet sans sacrifier le parallèlisme de ces étapes.