Skip to content

Commit

Permalink
refactor: rename to publicodes-voiture
Browse files Browse the repository at this point in the history
  • Loading branch information
EmileRolley committed Jul 30, 2024
1 parent a70406f commit ad8f2ec
Show file tree
Hide file tree
Showing 8 changed files with 229 additions and 22 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
<big>Simulateur Changer de voiture</big>
</h3>
<p align="center">
<a href="https://github.com/betagouv/agir-voiture-publicodes/issues">Report Bug</a>
<a href="https://github.com/betagouv/publicodes-voiture/issues">Report Bug</a>
<a href="https://betagouv.github.io/agir-voiture-publicodes/">API docs</a>
<a href="https://betagouv.github.io/publicodes-voiture/">API docs</a>
<a href="https://github.com/betagouv/agir-voiture-publicodes/blob/master/CONTRIBUTING.md">Contribute</a>
<a href="https://github.com/betagouv/publicodes-voiture/blob/master/CONTRIBUTING.md">Contribute</a>
<a href="https://publi.codes">Publicodes</a>
</p>
Expand All @@ -26,14 +26,14 @@ Modèle de calcul pour le simulateur d'aide au changement de voiture d'Agir.
Ajouter le paquet à vos dépendances :

```
yarn add agir-voiture-publicodes
yarn add publicodes-voiture
```

Instancier un nouveau moteur Publicode :

```typescript
import Engine from "publicodes"
import rules from "agir-voiture-publicodes"
import rules from "publicodes-voiture"

const engine = new Engine(rules)

Expand All @@ -45,7 +45,7 @@ engine.evaluate("empreinte carbone . voiture . essence")
#### Compiler le modèle

> Les règles publicodes du modèle sont disponible dans le workspace
> [`rules/`](https://github.com/betagouv/agir-voiture-publicodes/tree/main/rules).
> [`rules/`](https://github.com/betagouv/publicodes-voiture/tree/main/rules).
Pour installer les dépendances et compiler tous les fichiers `.publicodes` en
un seul fichier JSON, il suffit d'exécuter la commande suivante :
Expand All @@ -59,7 +59,7 @@ yarn build
#### Lancer la documentation

> Le code de la documentation est disponible dans le workspace
> [`doc/`](https://github.com/betagouv/agir-voiture-publicodes/tree/main/doc).
> [`doc/`](https://github.com/betagouv/publicodes-voiture/tree/main/doc).
Pour lancer l'app React en local permettant de parcourir la documentation du
modèle, il suffit d'exécuter la commande suivante :
Expand Down
4 changes: 2 additions & 2 deletions build.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import getUI from "./scripts/compile-ui.js"
import getPersonas from "./scripts/compile-personas.js"

const srcFiles = "rules/**/*.publicodes"
const modelDestPath = "agir-voiture-publicodes.model.json"
const personasDestPath = "agir-voiture-publicodes.personas.json"
const modelDestPath = "voiture-publicodes.model.json"
const personasDestPath = "voiture-publicodes.personas.json"

const model = getModelFromSource(srcFiles, { verbose: true })
let engine
Expand Down
4 changes: 2 additions & 2 deletions doc/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Documentation for the publicodes modèle : agir-voiture-publicodes"
content="Documentation for the publicodes modèle : publicodes-voiture"
/>
<!-- Start Single Page Apps for GitHub Pages -->
<script type="text/javascript">
Expand Down Expand Up @@ -38,7 +38,7 @@
window.location
})
</script>
<title>agir-voiture-publicodes - Documentation</title>
<title>publicodes-voiture - Documentation</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
4 changes: 2 additions & 2 deletions doc/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "agir-voiture-publicodes",
"name": "publicodes-voiture",
"type": "module",
"version": "0.1.0",
"private": true,
"homepage": "https://betagouv.github.io/agir-voiture-publicodes",
"homepage": "https://betagouv.github.io/publicodes-voiture",
"scripts": {
"dev": "vite",
"build": "vite build",
Expand Down
4 changes: 2 additions & 2 deletions doc/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const engine = new Engine(model)
// The base URL of the application (in production, the app is served from a subdirectory of
// the github pages repository, so we need to prefix all the URLs with the subdirectory)
const baseUrl =
process.env.NODE_ENV === "development" ? "" : "/agir-voiture-publicodes"
process.env.NODE_ENV === "development" ? "" : "/publicodes-voiture"

// The default rule to display when the user lands on the documentation
const defaultRule = "voiture"
Expand All @@ -35,7 +35,7 @@ function Documentation() {
engine={engine}
renderers={renderers}
language={"fr"}
npmPackage="agir-voiture-publicodes"
npmPackage="publicodes-voiture"
/>
</div>
)
Expand Down
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"name": "agir-voiture-publicodes",
"name": "publicodes-voiture",
"version": "1.0.3",
"repository": "[email protected]:betagouv/agir-voiture-publicodes.git",
"homepage": "https://github.com/betagouv/agir-voiture-publicodes#readme",
"description": "Modèle de calcul de l'impact environnemental et monétaire de la voiture",
"repository": "[email protected]:betagouv/publicodes-voiture.git",
"homepage": "https://github.com/betagouv/publicodes-voiture#readme",
"description": "Modèle de calcul de l'impact environnemental et du coût de la voiture",
"authors": [
"Emile Rolley <[email protected]>"
],
"bugs": {
"url": "https://github.com/betagouv/agir-voiture-publicodes/issues"
"url": "https://github.com/betagouv/publicodes-voiture/issues"
},
"files": [
"agir-voiture-publicodes.model.json",
"publicodes-voiture.model.json",
"index.js",
"index.d.ts"
],
Expand All @@ -20,7 +20,7 @@
"type": "module",
"types": "index.d.ts",
"scripts": {
"clean": "rm -r agir-voiture-publicodes.model.json index.d.ts index.js",
"clean": "rm -r publicodes-voiture.model.json index.d.ts index.js",
"build": "node build.js",
"doc": "yarn run build && cd doc && yarn run dev",
"doc:build": "yarn run build && cd doc && yarn run build",
Expand Down
161 changes: 161 additions & 0 deletions voiture-publicodes.model.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
{
"ngc . transport . voiture . motorisation": {
"question": "Quel type de voiture utilisez-vous ?",
"applicable si": {
"toutes ces conditions": [
{
"est défini": "utilisateur"
},
{
"une de ces conditions": [
"utilisateur = 'propriétaire'",
"utilisateur = 'régulier non propriétaire'"
]
},
"km > 0"
]
},
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\n💡 **Si vous utilisez plusieurs voitures (par exemple dans le cas où vous n'en possédez pas une), choisissez la réponse la plus représentative de votre usage.**",
"par défaut": "'thermique'",
"formule": {
"une possibilité": {
"choix obligatoire": "oui",
"possibilités": [
"thermique",
"hybride",
"électrique"
]
}
}
},
"ngc . transport . voiture . motorisation . thermique": {
"titre": "Thermique (diesel/essence/GPL)",
"description": "> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat)."
},
"ngc . transport . voiture . motorisation . hybride": {
"titre": "Hybride",
"description": "> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat)."
},
"ngc . transport . voiture . motorisation . électrique": {
"titre": "Électrique",
"description": "> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat)."
},
"ngc . transport . voiture . utilisateur": {
"question": "Utilisez-vous majoritairement la même voiture pour vous déplacer ?",
"applicable si": "km > 0",
"formule": {
"une possibilité": {
"choix obligatoire": "oui",
"possibilités": [
"propriétaire",
"régulier non propriétaire",
"non régulier"
]
}
},
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\nDeux données sont importantes dans le cadre du calcul de l'empreinte liée à la construction : \n\n- L'usage ou non d'un même véhicule pour tous les kilomètres parcourus (si non : on vous attribue un véhicule \"moyen\")\n- La propriété ou non dudit véhicule s'il s'agit toujours du même\n\nNous avons fait le choix d'attribuer l'empreinte de construction au pro-rata des kilomètres parcourus. Mais cette approche avait deux défauts :\n\n- Elle était extrêmement avantageuse pour les petits rouleurs, alors que leur véhicule qui roule moins peut s'user plus vite (un moteur a besoin de tourner régulièrement) et donc avoir une durée de vie inférieure.\n- Elle ne permettait pas de valoriser l'engagement de ne pas disposer de son propre véhicule, et de pratiquer à la place l'autopartage, ou la location ponctuelle (car l'empreinte de construction était la même, que l'on soit propriétaire ou non).\n\n> Pour pallier ces deux problèmes, et mieux représenter qu'un véhicule possédé mais sous-utilisé s'use plus vite et mérite une empreinte de construction plus importante, **nous appliquons un seuil pour la partie construction de l'empreinte, pour les propriétaires**.\n"
},
"ngc . transport . voiture . km": {
"titre": "Km en voiture",
"question": "Quelle distance parcourez-vous à l'année en voiture ?",
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\nNe comptez que les kilomètres de déplacement personnel (courses, loisirs, famille, etc.) et de déplacement domicile travail pour rejoindre votre lieu de travail habituel.\n\nPar exemple, si vous êtes en mission professionnelle dans un autre département ou un autre pays, cela rentre dans la comptabilité de votre entreprise : ne le comptez pas ici.\n",
"par défaut": 8210,
"unité": "km",
"plancher": 0,
"suggestions": {
"zéro": 0,
"vacances": 2000,
"10km / jour": 3600,
"1000km / mois": 12000,
"20 000km / an": 20000
}
},
"ngc . transport . voiture . utilisateur . propriétaire": {
"titre": "Oui et j'en suis propriétaire",
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\nVous faites la grande majorité de vos trajets avec un même véhicule que vous possédez."
},
"ngc . transport . voiture . utilisateur . régulier non propriétaire": {
"titre": "Oui mais ce n'est pas la mienne",
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\nVous utilisez presque systématiquement la voiture d'un ami, de votre grand-mère, ou le même véhicule en autopartage."
},
"ngc . transport . voiture . utilisateur . non régulier": {
"titre": "Non, je change souvent (autopartage, proches, taxi...)",
"description": "\n> ℹ️ Cette règle provient du modèle [`@incubateur-ademe/nosgestesclimat`](https://github.com/incubateur-ademe/nosgestesclimat).\n\n\nVous ne disposez pas de votre propre véhicule et les usages sont tous différents."
},
"voiture": {
"titre": "Informations sur la voiture (type de moteur, consommation, etc...)\n"
},
"voiture . motorisation": {
"question": "Quel type de voiture possédez-vous ?",
"par défaut": "'thermique'",
"formule": {
"une possibilité": {
"choix obligatoire": "oui",
"possibilités": [
"thermique",
"hybride",
"électrique"
]
}
},
"avec": {
"thermique": {
"titre": "Thermique (diesel/essence/GPL)"
},
"électrique": {
"titre": "Électrique"
},
"hybride": {
"titre": "Hybride"
}
}
},
"empreinte": {
"somme": [
"fabrication",
"utilisation"
],
"unité": "kgCO2e/an"
},
"empreinte . fabrication": {
"par défaut": 1000
},
"empreinte . utilisation": {
"par défaut": 20
},
"voiture . coût": {
"somme": [
"achat lissé",
"entretien",
"carburant",
"extras"
]
},
"voiture . coût . achat lissé": {
"par défaut": "voiture . coût . achat / voiture . durée de vie",
"unité": "€/an"
},
"voiture . coût . achat": {
"par défaut": 25000,
"unité": ""
},
"voiture . durée de vie": {
"par défaut": 15,
"unité": "an"
},
"voiture . coût . entretien": {
"par défaut": 600,
"unité": "€/an"
},
"voiture . coût . carburant": {
"par défaut": 300,
"unité": "€/mois"
},
"voiture . coût . extras": {
"par défaut": 50,
"unité": "€/mois"
},
"ngc": null,
"ngc . transport . voiture": null,
"ngc . transport": null
}
46 changes: 46 additions & 0 deletions voiture-publicodes.personas.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"grand festival urbain": {
"titre": "Grand festival en centre-ville",
"description": "Grand festival (100 000 personnes) en centre-ville\n",
"situation": {
"informations . nombre de festivaliers": 100000,
"informations . nombre de jours": 3,
"transport . public . accessible en transports en commun": "oui",
"infrastructures . scénographie . nombre petites scènes": 2,
"infrastructures . scénographie . nombre grandes scènes": 4
}
},
"petit festival urbain": {
"titre": "Petit festival en centre-ville",
"description": "Petit festival (moins de 3 000 personnes) en centre-ville\n",
"situation": {
"informations . nombre de festivaliers": 3000,
"informations . nombre de jours": 3,
"transport . public . accessible en transports en commun": "oui",
"infrastructures . scénographie . nombre petites scènes": 1,
"infrastructures . scénographie . nombre grandes scènes": 0
}
},
"grand festival rural": {
"titre": "Grand festival en périphérie",
"description": "Grand festival (250 000 personnes) en périphérie\n",
"situation": {
"informations . nombre de festivaliers": 250000,
"informations . nombre de jours": 4,
"transport . public . accessible en transports en commun": "non",
"infrastructures . scénographie . nombre petites scènes": 4,
"infrastructures . scénographie . nombre grandes scènes": 4
}
},
"petit festival rural": {
"titre": "Petit festival en périphérie",
"description": "Petit festival (moins de 3 000 personnes) en périphérie\n",
"situation": {
"informations . nombre de festivaliers": 3000,
"informations . nombre de jours": 3,
"transport . public . accessible en transports en commun": "non",
"infrastructures . scénographie . nombre petites scènes": 0,
"infrastructures . scénographie . nombre grandes scènes": 1
}
}
}

0 comments on commit ad8f2ec

Please sign in to comment.