Fonctionnement général
Le stockage et la restitution des contributions sont assurés en temps réel. Le calcul des contributions estimées est effectué en batch, dans le processus d'agrégation des produits. N'hésitez pas à vous référer aux différents éléments techniques ci-dessous, les codes sont commentés et simples à comprendre.
Détail des composants
Services mis en oeuvre
Nom de la classe Java | Description |
---|
ContributionService.java | Service "temps réel" dédié au stockage et à la restitution des "nudges" (contributions estimées de l'utilisateur, cf. objet ContributionVote) |
PriceAgregationService.java | Ce service "batch" est en charge de l'agrégation des prix. Il intègre également le calcul du montant de contribution estimé. - méthode `computeEstimatedContribution()`
Les ratios permettant d'estimer le montant reversé sont exprimés sous forme de constantes (car non voué à être changés) : - `averageAffiliationRatio` : Ratio moyen de rétrocommission.
- `incomesToBenefitsRatio` : Ratio permettant d'estimer les bénéfices à partir des revenus (chiffre d'affaires).
- `percentBenefitsReversed` : Pourcentage des bénéfices reversés par Nudger.
|
Objets modèles
Repositories
Nom de la classe Java | Description |
---|
ContributionVoteRepository.java | Repository Spring servant à stocker les ContributionVotes dans un index elasticsearch dédié |
Objets de configuration
Nom de la classe Java | Description |
---|
ReversementConfig.java | Cet objet (et les sous classes associées) formalise les propriétés relatives aux contributions (montants reversés, organisations éligibles, etc.). Ces propriétés sont définies depuis le fichiers de configuration du composant UI application.yml. |
Controllers
Nom de la classe Java | Description |
---|
ContributionController.java | Ce controller Spring permet : - de recevoir les contributions des utilisateurs (sous forme de requêtes POST).
- de définir les objets associés à la page de restitution.
|
Templates Thymleaf
Nom du template | Description |
---|
contribution.html | Ce template Thymleaf est utilisé comme "vue" pour la page "contributions". |