aides-jeunes
Un simulateur global des prestations sociales françaises pour les jeunes.
Stars: 79
The user interface (and the main server) of the simulator of aids and social benefits for young people. It is based on the free socio-fiscal simulator Openfisca.
README:
Cette documentation est technique. Pour plus d'informations sur le simulateur d'aides pour les jeunes, regardez notre wiki.
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
- Netlify
- Deloy previews
- SMTP server
- Matomo (stats.beta.gouv.fr)
- Sentry
If you want to play with the UI, you can be set up very quickly:
npm ci
npm run front
Cf. package.json
for more on the underlying commands.
The application should be accessible at localhost:8080
.
Make sure node
18.x is installed on your machine:
And also build-essential
, mongodb
are installed on your machine:
sudo apt-get install build-essential
sudo apt-get install mongodb
And also brew
is installed on your machine:
brew tap mongodb/brew # Download official homebrew formula for MongoDb
brew update # Update Homebrew and all existing formulae
brew install [email protected] # Install MongoDb
The runtime is Node 18.x for the web application, and Python >= 3.9 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
npm ci
There are 2 ways to run Openfisca:
- either by installing its dependencies in a Python virual environment locally on your machine
- or by using Docker to pull and build an image with the required 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 want to run Openfisca without having to install a specific version of Python or create a virtual environment you can use the docker file provided to run Openfisca in a container. From the root of the project run the following command to build the docker image:
docker build -f openfisca/Dockerfile ./openfisca -t openfisca
If you are working on openfisca-france
and want to use your local version:
cd (...)/openfisca-france
pip install --editable .
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 need to start openfisca. If you installed it locally activate the virtual environment (run source .venv/bin/activate
) and start the Openfisca server:
OPENFISCA_WORKERS=1 npm run openfisca
If instead you want to run Openfisca in a docker container run:
docker run -d -p 2000:2000 openfisca
(note that in that case Openfisca will run in the background and you will have to run docker ps
and docker stop XXXXX
where XXXXX is the container ID to stop 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
npm test
. - 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.
In Cypress tests, we verify that email functionality works. To check this locally, you need to copy and paste the environmental variables from .env.e2e to your .env file (and create the .env file if you don't already have one).
We use the framework MJML to design and integrate the templates. Tipimail is our service to send emails.
The development server for emails can be easily start with: npm run tools:serve-mail
If you want to verify the email sending process, you can generate a set of the required SMTP_*
environment variables by running ts-node tools/create-temp-smtp-server.ts
to generate a test account on https://ethereal.email
.
We use ESLint as a linter and Prettier to format the codebase. We also utilize some ESLint plugins, such as vue-eslint and eslint-plugin-cypress, to provide a support for tests and framework.
SSHs keys were generated to run scripts on the production server.
The main
and dev
branches are automatically deployed on the production server when they are updated using a continuous deployment script.
Note that it is also possible to re-trigger a deployment manually by clicking on Run workflow
button on the continuous deployment's page and selecting either the main
or dev
branch.
To access the applications server it is possible to connect to it with a registered public key using ssh:
In order to use those tools you need to build the server at least once using the command npm run build:server
.
-
npm run husky
installs git hooks used to facilitate development and reduce the CI running time. We use Talisman to to ensure that potential secrets or sensitive information do not leave the developer's workstation. You need to install Talisman before : https://github.com/thoughtworks/talisman/releases orbrew install talisman
. To skip talisman, you can use -n when you commit. -
npm run tools:check-links-validity
validates links to 3rd parties in benefits files. -
npm run tools:cleaner
cleans simulations data older than 31 days. -
npm run tools:evaluate-benefits <simulationId>
evaluates benefits linked to a simulation id. -
npm run tools:generate-missing-institutions-aides-velo
generates missing institutions for the packageaides-velo
. -
npm run tools:download-incitations-covoiturage-generate-missing-institutions
download new carpooling incentives and generates missing epci for the Open DataRegistre de Preuve de Covoiturage
. -
npm run tools:geographical-benefits-details
gets the relevant benefits for each commune. -
npm run tools:get-all-steps
gets all the steps and substeps of a simulation. -
npm run tools:serve-mail
generates emails which contain the result of a simulation or a survey. -
npm run tools:test-benefits-geographical-constraint-consistency
validates geographical constraint consistency of benefits. -
npm run tools:test-definition-periods
validates the periods of openfisca requested variables. -
Locally or on production, it is possible to visualize all the available benefits of the simulator. It is done by adding
debug
as a parameter. It is also possible to setdebug=ppa,rsa
to choose which benefits are listed. -
Adding
debug=parcours
as a parameter, show a debug version of all the steps in the simulator, locally and production. -
OpenFisca tracer allows you to debug OpenFisca computations. (source)
It is possible to generate simulation statistics from the database running the commande npm run tools:generate-mongo-stats
.
This will generate 3 csv files in the dist/documents
folder:
-
monthly_activite.csv
that lists the number of simulations per activity for each month -
monthly_age.csv
that lists the number of simulations per age for each month -
monthly_geo.csv
that lists the number of simulations per epci, departement and regions for each month
It is possible to locally debug changes in Decap CMS configuration.
-
npm ci
andnpm run dev
should be ran fromcontribuer
. - Decap CMS should now be accessible at
http://localhost:3000/admin/index.html
If you want changes to be made locally instead of generating pull requests in production:
- First, contribuer/public/admin/config.yml#L19 (
local_backend: true
) must be uncommented; -
npx netlify-cms-proxy-server
should be ran from.
and
Some parameters can be use to debug the command
-
--dry-run
: this command is useful to not send update/new row to Grist -
--no-priority
: without getting priority from analytic data -
--only [slug benefit]
: work on specific benefit
Here is an example of how using this parameters
npm run tools:check-links-validity -- --dry-run
The data source comes from this : https://www.data.gouv.fr/fr/datasets/conditions-des-campagnes-dincitation-financiere-au-covoiturage/ We use Grist to add custom informations like, if a benefit is link to an institution or epci, ... One parameter can be use to debug the command
-
--no-download
: avoid download new data from Grist
Here is an example of how using this parameters
npm run tools:download-incitations-covoiturage-generate-missing-institutions -- --no-download
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for aides-jeunes
Similar Open Source Tools
aides-jeunes
The user interface (and the main server) of the simulator of aids and social benefits for young people. It is based on the free socio-fiscal simulator Openfisca.
ai-town
AI Town is a virtual town where AI characters live, chat, and socialize. This project provides a deployable starter kit for building and customizing your own version of AI Town. It features a game engine, database, vector search, auth, text model, deployment, pixel art generation, background music generation, and local inference. You can customize your own simulation by creating characters and stories, updating spritesheets, changing the background, and modifying the background music.
opencommit
OpenCommit is a tool that auto-generates meaningful commits using AI, allowing users to quickly create commit messages for their staged changes. It provides a CLI interface for easy usage and supports customization of commit descriptions, emojis, and AI models. Users can configure local and global settings, switch between different AI providers, and set up Git hooks for integration with IDE Source Control. Additionally, OpenCommit can be used as a GitHub Action to automatically improve commit messages on push events, ensuring all commits are meaningful and not generic. Payments for OpenAI API requests are handled by the user, with the tool storing API keys locally.
chat-ollama
ChatOllama is an open-source chatbot based on LLMs (Large Language Models). It supports a wide range of language models, including Ollama served models, OpenAI, Azure OpenAI, and Anthropic. ChatOllama supports multiple types of chat, including free chat with LLMs and chat with LLMs based on a knowledge base. Key features of ChatOllama include Ollama models management, knowledge bases management, chat, and commercial LLMs API keys management.
dir-assistant
Dir-assistant is a tool that allows users to interact with their current directory's files using local or API Language Models (LLMs). It supports various platforms and provides API support for major LLM APIs. Users can configure and customize their local LLMs and API LLMs using the tool. Dir-assistant also supports model downloads and configurations for efficient usage. It is designed to enhance file interaction and retrieval using advanced language models.
qb
QANTA is a system and dataset for question answering tasks. It provides a script to download datasets, preprocesses questions, and matches them with Wikipedia pages. The system includes various datasets, training, dev, and test data in JSON and SQLite formats. Dependencies include Python 3.6, `click`, and NLTK models. Elastic Search 5.6 is needed for the Guesser component. Configuration is managed through environment variables and YAML files. QANTA supports multiple guesser implementations that can be enabled/disabled. Running QANTA involves using `cli.py` and Luigi pipelines. The system accesses raw Wikipedia dumps for data processing. The QANTA ID numbering scheme categorizes datasets based on events and competitions.
unstructured
The `unstructured` library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. The use cases of `unstructured` revolve around streamlining and optimizing the data processing workflow for LLMs. `unstructured` modular functions and connectors form a cohesive system that simplifies data ingestion and pre-processing, making it adaptable to different platforms and efficient in transforming unstructured data into structured outputs.
TypeGPT
TypeGPT is a Python application that enables users to interact with ChatGPT or Google Gemini from any text field in their operating system using keyboard shortcuts. It provides global accessibility, keyboard shortcuts for communication, and clipboard integration for larger text inputs. Users need to have Python 3.x installed along with specific packages and API keys from OpenAI for ChatGPT access. The tool allows users to run the program normally or in the background, manage processes, and stop the program. Users can use keyboard shortcuts like `/ask`, `/see`, `/stop`, `/chatgpt`, `/gemini`, `/check`, and `Shift + Cmd + Enter` to interact with the application in any text field. Customization options are available by modifying files like `keys.txt` and `system_prompt.txt`. Contributions are welcome, and future plans include adding support for other APIs and a user-friendly GUI.
ChatGPT-OpenAI-Smart-Speaker
ChatGPT Smart Speaker is a project that enables speech recognition and text-to-speech functionalities using OpenAI and Google Speech Recognition. It provides scripts for running on PC/Mac and Raspberry Pi, allowing users to interact with a smart speaker setup. The project includes detailed instructions for setting up the required hardware and software dependencies, along with customization options for the OpenAI model engine, language settings, and response randomness control. The Raspberry Pi setup involves utilizing the ReSpeaker hardware for voice feedback and light shows. The project aims to offer an advanced smart speaker experience with features like wake word detection and response generation using AI models.
aioli
Aioli is a library for running genomics command-line tools in the browser using WebAssembly. It creates a single WebWorker to run all WebAssembly tools, shares a filesystem across modules, and efficiently mounts local files. The tool encapsulates each module for loading, does WebAssembly feature detection, and communicates with the WebWorker using the Comlink library. Users can deploy new releases and versions, and benefit from code reuse by porting existing C/C++/Rust/etc tools to WebAssembly for browser use.
oterm
Oterm is a text-based terminal client for Ollama, a large language model. It provides an intuitive and simple terminal UI, allowing users to interact with Ollama without running servers or frontends. Oterm supports multiple persistent chat sessions, which are stored along with context embeddings and system prompt customizations in a SQLite database. Users can easily customize the model's system prompt and parameters, and select from any of the models they have pulled in Ollama or their own custom models. Oterm also supports keyboard shortcuts for creating new chat sessions, editing existing sessions, renaming sessions, exporting sessions as markdown, deleting sessions, toggling between dark and light themes, quitting the application, switching to multiline input mode, selecting images to include with messages, and navigating through the history of previous prompts. Oterm is licensed under the MIT License.
ai-models
The `ai-models` command is a tool used to run AI-based weather forecasting models. It provides functionalities to install, run, and manage different AI models for weather forecasting. Users can easily install and run various models, customize model settings, download assets, and manage input data from different sources such as ECMWF, CDS, and GRIB files. The tool is designed to optimize performance by running on GPUs and provides options for better organization of assets and output files. It offers a range of command line options for users to interact with the models and customize their forecasting tasks.
reader
Reader is a tool that converts any URL to an LLM-friendly input with a simple prefix `https://r.jina.ai/`. It improves the output for your agent and RAG systems at no cost. Reader supports image reading, captioning all images at the specified URL and adding `Image [idx]: [caption]` as an alt tag. This enables downstream LLMs to interact with the images in reasoning, summarizing, etc. Reader offers a streaming mode, useful when the standard mode provides an incomplete result. In streaming mode, Reader waits a bit longer until the page is fully rendered, providing more complete information. Reader also supports a JSON mode, which contains three fields: `url`, `title`, and `content`. Reader is backed by Jina AI and licensed under Apache-2.0.
telemetry-airflow
This repository codifies the Airflow cluster that is deployed at workflow.telemetry.mozilla.org (behind SSO) and commonly referred to as "WTMO" or simply "Airflow". Some links relevant to users and developers of WTMO: * The `dags` directory in this repository contains some custom DAG definitions * Many of the DAGs registered with WTMO don't live in this repository, but are instead generated from ETL task definitions in bigquery-etl * The Data SRE team maintains a WTMO Developer Guide (behind SSO)
sage
Sage is a tool that allows users to chat with any codebase, providing a chat interface for code understanding and integration. It simplifies the process of learning how a codebase works by offering heavily documented answers sourced directly from the code. Users can set up Sage locally or on the cloud with minimal effort. The tool is designed to be easily customizable, allowing users to swap components of the pipeline and improve the algorithms powering code understanding and generation.
code2prompt
code2prompt is a command-line tool that converts your codebase into a single LLM prompt with a source tree, prompt templating, and token counting. It automates generating LLM prompts from codebases of any size, customizing prompt generation with Handlebars templates, respecting .gitignore, filtering and excluding files using glob patterns, displaying token count, including Git diff output, copying prompt to clipboard, saving prompt to an output file, excluding files and folders, adding line numbers to source code blocks, and more. It helps streamline the process of creating LLM prompts for code analysis, generation, and other tasks.
For similar tasks
aides-jeunes
The user interface (and the main server) of the simulator of aids and social benefits for young people. It is based on the free socio-fiscal simulator Openfisca.
claim-ai-phone-bot
AI-powered call center solution with Azure and OpenAI GPT. The bot can answer calls, understand the customer's request, and provide relevant information or assistance. It can also create a todo list of tasks to complete the claim, and send a report after the call. The bot is customizable, and can be used in multiple languages.
Discord-AI-Chatbot
Discord AI Chatbot is a versatile tool that seamlessly integrates into your Discord server, offering a wide range of capabilities to enhance your communication and engagement. With its advanced language model, the bot excels at imaginative generation, providing endless possibilities for creative expression. Additionally, it offers secure credential management, ensuring the privacy of your data. The bot's hybrid command system combines the best of slash and normal commands, providing flexibility and ease of use. It also features mention recognition, ensuring prompt responses whenever you mention it or use its name. The bot's message handling capabilities prevent confusion by recognizing when you're replying to others. You can customize the bot's behavior by selecting from a range of pre-existing personalities or creating your own. The bot's web access feature unlocks a new level of convenience, allowing you to interact with it from anywhere. With its open-source nature, you have the freedom to modify and adapt the bot to your specific needs.
java-ai-playground
This AI-powered customer support application has access to terms and conditions (retrieval augmented generation, RAG), can access tools (Java methods) to perform actions, and uses an LLM to interact with the user. The application includes implementations for LangChain4j in the `main` branch and Spring AI in the `spring-ai` branch. The UI is built using Vaadin Hilla and the backend is built using Spring Boot.
emohaa-free-api
Emohaa AI Free API is a free API that allows you to access the Emohaa AI chatbot. Emohaa AI is a powerful chatbot that can understand and respond to a wide range of natural language queries. It can be used for a variety of purposes, such as customer service, information retrieval, and language translation. The Emohaa AI Free API is easy to use and can be integrated into any application. It is a great way to add AI capabilities to your projects without having to build your own chatbot from scratch.
For similar jobs
advisingapp
**Advising App™** is a software solution created by Canyon GBS™ that includes a robust personal assistant designed to support student service professionals in their day-to-day roles. The assistant can help with research tasks, draft communication, language translation, content creation, student profile analysis, project planning, ideation, and much more. The software also includes a student service CRM designed to support the management of prospective and enrolled students. Key features of the CRM include record management, email and SMS, service management, caseload management, task management, interaction tracking, files and documents, and much more.
aides-jeunes
The user interface (and the main server) of the simulator of aids and social benefits for young people. It is based on the free socio-fiscal simulator Openfisca.
GPT-Jobhunter
GPT-Jobhunter is an AI-powered job analysis tool that utilizes GPT to analyze job postings and offer personalized job recommendations to job seekers based on their resume. The tool allows users to upload their resume for AI analysis, conduct highly configurable job searches, and automate the job search pipeline. It also provides AI-based job-to-resume similarity scores to help users find suitable job opportunities.
AI-Powered-Resume-Analyzer-and-LinkedIn-Scraper-with-Selenium
Resume Analyzer AI is an advanced Streamlit application that specializes in thorough resume analysis. It excels at summarizing resumes, evaluating strengths, identifying weaknesses, and offering personalized improvement suggestions. It also recommends job titles and uses Selenium to extract vital LinkedIn data. The tool simplifies the job-seeking journey by providing comprehensive insights to elevate career opportunities.
x-hiring
X-Hiring is a job search tool that uses Google AI to extract summaries of the latest job postings. It is easy to install and run, and can be used to find jobs in a variety of fields. X-Hiring is also open source, so you can contribute to its development or create your own custom version.
vidur
Vidur is an open-source next-gen Recruiting OS that offers an intuitive and modern interface for forward-thinking companies to efficiently manage their recruitment processes. It combines advanced candidate profiles, team workspace, plugins, and one-click apply features. The project is under active development, and contributors are welcome to join by addressing open issues. To ensure privacy, security issues should be reported via email to [email protected].
linkedIn_auto_jobs_applier_with_AI
LinkedIn_AIHawk is an automated tool designed to revolutionize the job search and application process on LinkedIn. It leverages automation and artificial intelligence to efficiently apply to relevant positions, personalize responses, manage application volume, filter listings, generate dynamic resumes, and handle sensitive information securely. The tool aims to save time, increase application relevance, and enhance job search effectiveness in today's competitive landscape.
linkedin-api
The Linkedin API for Python allows users to programmatically search profiles, send messages, and find jobs using a regular Linkedin user account. It does not require 'official' API access, just a valid Linkedin account. However, it is important to note that this library is not officially supported by LinkedIn and using it may violate LinkedIn's Terms of Service. Users can authenticate using any Linkedin account credentials and access features like getting profiles, profile contact info, and connections. The library also provides commercial alternatives for extracting data, scraping public profiles, and accessing a full LinkedIn API. It is not endorsed or supported by LinkedIn and is intended for educational purposes and personal use only.