simulateur d'aides pour les jeunes, regardez notre wiki.Cette documentation est technique. Pour plus d'informations sur le
L'interface utilisateur (et le serveur principal) du simulateur d'aides et de prestations sociales pour les jeunes. Il est basé sur simulateur socio-fiscal libre Openfisca.
- Github Actions (config)
- Continuous integration and deployment
- Deloy previews
- Matomo (stats.data.gouv.fr)
Front only install
If you want to play with the UI, you can be set up very quickly:
npm ci npm run front
package.json for more on the underlying commands.
The application should be accessible at
node 16.x are installed on your machine:
sudo apt-get install build-essential sudo apt-get install mongodb
For all platforms
The runtime is Node 16.x for the web application, and Python 3.7 for Openfisca.
You can for example use
nvm to install this specific version.
You will need
pip to install Openfisca.
Run the following from the root of the project to install the dependencies
You should install Python 3 in a virtual environment to prevent yourself from messing with your main python installation. The instructions below rely on the built-in
venv module so that there are no additional external dependencies:
python3 -m venv .venv # create the virtual environment in the .venv folder source .venv/bin/activate # activate the virtual environment pip install pip --upgrade # make sure we're using the latest pip version npm run install-openfisca # install dependencies
Then, to start the OpenFisca server, simply run
source .venv/bin/activate followed by
npm run openfisca.
OpenFisca dependencies are specified in openfisca/requirements.txt, a basic Python requirements file. It is possible to refer to non-production commit hashs but is prefered to use main-merged commits.
If you are working on
openfisca-france and want to use your local version:
cd (...)/openfisca-france pip install --editable .
Test in production mode
If you want to test locally the app in production mode:
npm run build npm run start
First, start a Mongo server:
npm run db
Then, in another shell (you will have to run
source .venv/bin/activate), start the Openfisca server:
OPENFISCA_WORKERS=1 npm run openfisca
Finally, in a third shell, start the server:
npm run serve
There are several levels of tests:
- Unit tests are executed by Jest and run with
- End-to-end test are executed with Cypress with
npm run cypress
You can safely use
npm test && npm run cypress to drive your developments.
The development server for emails can be easily start with:
node tools/mjml.js or
npm run serve-mail
If you want to verify the email sending, the variable
SEND_IN_BLUE_PRIVATE_KEY=API_SECRET should be configured in your
You can create a free account here or request one on the mattermost channel.
Linting and format
SSHs keys were generated to run scripts on the production server.
deploy key at hand, linked to the deploment script it is possible kick of a now deployment thanks to:
ssh email@example.com -i deploy
For more, a normal/manual root connection is required.
Other tools scripts & tips
npm run test-benefits-urlsvalidate links to 3rd parties.
npm run huskywill install git hooks used to facilitate development and reduce the CI running time.
Locally or on production, it is possible to visualize all the available benefits of the simulator. It is done by adding
debugas a parameter. It is also possible to set
debug=ppa,rsato choose which benefits are listed.
npm run generate-missing-institutions-aides-veloallows you to generate missing institutions for the package
npm run test-definition-periodsallows you to valid the periods of openfisca requested variables.
npm run evaluate-benefits <simulationId>allows you to evaluate benefits with simulation id.
node tools/geographical-benefits-details.jsallows you to get the relevant benefits for each commune.
node tools/get-all-steps.jsallows you to get all the steps and substeps of a simulation.
node tools/mjms.jsallows you to generate emails which contain the result of a simulation or survey.
It is possible to locally debug changes in NetlifyCMS configuration.
- First, contribuer/public/admin/config.yml#L15 must be uncommented;
npx netlify-cms-proxy-servershould be ran from
npm run devshould be ran from
- Netlify CMS should now be accessible at
Changes made will be reflected locally instead of generating pull requests in production.