Skip to content
Snippets Groups Projects
Commit b6eca7a4 authored by sandcha's avatar sandcha
Browse files

Say that the DB exists before installation steps

Move PLF section as last documentation section
parent 1c80f55d
No related branches found
No related tags found
1 merge request!74Retrait du PLF 2022
......@@ -18,7 +18,8 @@ Pour en savoir plus sur les débuts de LexImpact, vous pouvez consulter son hist
`leximpact-server` est le calculateur dédié aux simulations de l'[interface d'impôt sur le revenu (IR)](https://leximpact.an.fr/ir) et de l'[interface de dotations](https://leximpact.an.fr/dotations) de LexImpact.
L'architecture mise en place est constituée de deux parties :
- [leximpact-server](https://git.leximpact.dev/leximpact/leximpact-server/) : interface en python utilisant le modèle de micro-simulation [openfisca](https://openfisca.org/fr/) et contenant une API web répondant à des questions sur l'impact de modifications de la loi de finances (IR, dotations),
- [leximpact-server](https://git.leximpact.dev/leximpact/leximpact-server/) : interface en python utilisant le modèle de micro-simulation [openfisca](https://openfisca.org/fr/) et contenant une API web répondant à des questions sur l'impact de modifications de la loi de finances (IR, dotations)
- Optionnellement, une base de données [PostgreSQL](https://www.postgresql.org) : base où sont stockées les données de population. Elle permet d'étendre les fonctionnalités de l'[application IR](https://leximpact.an.fr/ir) en ajoutant aux calculs sur cas types, des estimations d'impact budgétaire.
- [leximpact-client](https://git.leximpact.dev/leximpact/leximpact-client/) : interface web communiquant avec l'API web et mettant à disposition des usagers un site web permettant de visulaliser les résultats des calculs de l'API.
## Installation
......@@ -32,11 +33,11 @@ Plateformes supportées :
- Mac OS X ;
- Windows;
Pour les autres OS : si vous pouvez exécuter Python et Numpy, l'installation de LexImpact-Server devrait fonctionner.
Pour les autres OS : si vous pouvez exécuter `Python` et `Numpy`, l'installation de LexImpact-Server devrait fonctionner.
### Pré-requis
Le serveur d'API nécessite libyaml, dhf5 et PostgreSQL, d'autres moteurs de bases de données peuvent théoriquement être utilisés sans modification.
Le serveur d'API nécessite `libyaml`, `dhf5` et `PostgreSQL`, d'autres moteurs de bases de données peuvent théoriquement être utilisés sans modification.
#### Installation pour MacOS
......@@ -105,7 +106,7 @@ server {
certbot --nginx -d <VOTRE NOM DE DOMAINE>
```
### Installez un environnement virtuel
### Installer un environnement virtuel
Nous recommandons l'utilisation d'un [environnement virtuel](https://virtualenv.pypa.io/en/stable/) (_virtualenv_) avec un gestionnaire de _virtualenv_ tel que [Pyenv](https://github.com/pyenv/pyenv).
......@@ -135,7 +136,7 @@ Le  _virtualenv_ **leximpact-server** sera alors activé, c'est-à-dire que les
🎉 Bravo, vous êtes prêt·e à installer LexImpact-Server !
### Installez LexImpact-Server
### Installer LexImpact-Server
Pour installer LexImpact-Server, dans votre fenêtre de terminal :
......@@ -151,9 +152,9 @@ pip install --editable .[dev]
🎉 Félicitations LexImpact-Server est prêt à être utilisé !
## Lancez l'API Web LexImpact
## Lancer l'API Web LexImpact
### Fichier de configuration `.env`
### Configurer le fichier `.env`
Pour lancer LexImpact-Server, vous devez tout d'abord créer un fichier de configuration `.env`. Le fichier `.env.example` contient un exemple de fichier de configuration `.env` qui fonctionne par défaut, les champs y apparaissant sont :
......@@ -171,9 +172,15 @@ DATABASE_URL et SCALINGO_POSTGRESQL_URL.
Variable optionnelle :
- `ASSETS_PATH` : Par défaut, le folder /assets/ contient toutes les données publiques utiles au calcul des simulations. Il est toutefois possible pour l'usager de déclarer sa propre adresse de fichier dans cette variable d'environnement, qui doit être un chemin de répertoire valide.
### Base de données et migrations
### Installer une base de données et configurer son contenu
Pour créer la base de données, et exécuter toutes les migrations, dans votre fenêtre de terminal :
Uniquement nécessaire dans le cas où les données sur la population sont utilisées (fonctionnalité simpop). En l'absence d'utilisation de ces données (i.e. les endpoints auth et simpop), il devrait être possible de faire tourner `leximpact-server` sans base de données ni fichier `.env` .
`leximpact-server` conserve l'ensemble des données qu'il utilise et qui ne sont pas ouvertes dans une base de données sécurisée en `PostgreSQL`. Cette partie décrit les différentes tables nécessaire au fonctionnement du site, et la manière de les créer.
Une base de données [PostgreSQL](https://www.postgresql.org/) doit être installée afin de stocker les données de population, d'améliorer les temps de calcul et d'assurer la sécurité des requêtes effectuées.
Pour créer la base de données, et exécuter toutes les migrations de contenu, dans votre fenêtre de terminal :
```sh
make migrate
......@@ -197,17 +204,16 @@ Pour s'assurer que tout marche bien :
Pour en savoir plus sur les endpoints de l'API Web IR et dotations, consulter [ce README_API complémentaire](./README_API.md).
## Base de données
## Tables de la base de données
Uniquement nécessaire dans le cas où les données sur la population sont utilisées (fonctionnalité simpop). En l'absence d'utilisation de ces données (i.e. les endpoints auth et simpop), il devrait être possible de faire tourner `leximpact-server` sans base de données ni fichier `.env` .
Leximpact-server conserve l'ensemble des données qu'il utilise et qui ne sont pas ouvertes dans une base de données sécurisée en postgresql. Cette partie décrit les différentes tables nécessaire au fonctionnement du site, et la manière de les créer.
Une base de données [PostgreSQL](https://www.postgresql.org/) doit être installée afin de remplir les différentes fonctions suivantes :
La base de données assure les différentes fonctions suivantes :
- Stockage de la population (extrait de l'enquête `ERFS-FPR` adapté aux besoins de l'application IR)
- Stockage de la liste des utilisateurs autorisés
- Stockage des requêtes effectuées (pour éviter une surcharge provenant d'un utilisateur unique)
- Stockage des résultats de base préprocessés pour économiser du temps de calcul (utile si la population est grande)
Elle contient des tables dédiées à ces différentes données.
### **users**
Cette table contient les emails des usagers valides. Elle contient une colonne, "email", qui représente l'email de l'usager.
......@@ -267,7 +273,7 @@ Création / remplissage de la table : la table est créée automatiquement au la
### **data_erfs**
Fichier contenant les données agrégées de la population française, construites, par exemple, à partir des données de l'ERFS FPR au format openfisca. C'est l'output de la phase transform_data (insérer lien vers la doc de la transformation des données).
Fichier contenant les données agrégées de la population française, construites, par exemple, à partir des données de l'ERFS FPR au format [openfisca-france](https://github.com/openfisca/openfisca-france). C'est l'output de la phase transform_data (insérer lien vers la doc de la transformation des données).
Le fichier est uploadé dans la base de données, par exemple via preload.py. Le nom de la table dans la base postgresql doit correspondre avec la variable d'environnement nommée `POPULATION_TABLE_PATH`.
......@@ -277,11 +283,6 @@ Table contenant les résultats sur la population du code existant et du code
Remplie et créée en lançant le script ./scripts/generate_base_results.py via l'interface Scalingo. Le nom de la table doit correspondre avec la variable d'environnement nommée NAME_TABLE_BASE_RESULT
## Activation & désactivation du PLF
`leximpact-server` permet de comparer une loi et un amendement usager mais aussi, une réforme de type PLF pour l'IR et les dotations.
Pour activer ou désactiver le mode PLF, voir [ce README_PLF complémentaire](./README_PLF.md).
## Testing
Pour faire tourner les tests de LexImpact-Server, exécutez la commande suivante :
......@@ -331,3 +332,9 @@ tee -a .git/hooks/pre-commit << END
exec make format-style
END
```
## Activation & désactivation du PLF
`leximpact-server` permet de comparer une loi et un amendement défini par un usager mais aussi, une réforme de type Projet de Loi de Finances (PLF) pour l'IR et les dotations.
Pour activer ou désactiver le mode PLF, voir [ce README_PLF complémentaire](./README_PLF.md).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment