{"id":28281188,"url":"https://github.com/louis-heraut/card","last_synced_at":"2026-03-09T13:05:29.875Z","repository":{"id":65355499,"uuid":"569808144","full_name":"louis-heraut/CARD","owner":"louis-heraut","description":"🎴 Card of Analyse and Diagnostic in R for a user-friendly experience of data aggregation with parametrisation file.","archived":false,"fork":false,"pushed_at":"2025-06-16T23:09:48.000Z","size":2165,"stargazers_count":4,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-27T07:57:31.035Z","etag":null,"topics":["aggregation","climate-change","climate-data","climate-science","data-analysis","data-science","diagnostic","environment","environment-variables","hydrology","hydrology-statistical","inrae","r","statistics","tools","user-friendly"],"latest_commit_sha":null,"homepage":"https://louis-heraut.github.io/CARD","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/louis-heraut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2022-11-23T16:55:17.000Z","updated_at":"2025-07-22T12:34:38.000Z","dependencies_parsed_at":"2024-01-16T15:44:50.552Z","dependency_job_id":"475fd391-cb01-4f49-b524-c7e164711454","html_url":"https://github.com/louis-heraut/CARD","commit_stats":{"total_commits":134,"total_committers":1,"mean_commits":134.0,"dds":0.0,"last_synced_commit":"d7d08112b1eb4fd8670bc21372bedb3981345711"},"previous_names":["super-lou/exstat-card","super-lou/exstat_card","louis-heraut/exstat.card","louis-heraut/card","super-lou/card"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/louis-heraut/CARD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-heraut%2FCARD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-heraut%2FCARD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-heraut%2FCARD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-heraut%2FCARD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/louis-heraut","download_url":"https://codeload.github.com/louis-heraut/CARD/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-heraut%2FCARD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30297111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregation","climate-change","climate-data","climate-science","data-analysis","data-science","diagnostic","environment","environment-variables","hydrology","hydrology-statistical","inrae","r","statistics","tools","user-friendly"],"created_at":"2025-05-21T11:15:51.883Z","updated_at":"2026-03-09T13:05:29.849Z","avatar_url":"https://github.com/louis-heraut.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CARD [\u003cimg src=\"figures/flower_alt_hex.png\" align=\"right\" width=160 height=160 alt=\"\"/\u003e](https://github.com/louis-heraut/EXstat/)\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/louis-heraut/CARD/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/louis-heraut/CARD/actions/workflows/R-CMD-check.yaml)\n[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-green)](https://lifecycle.r-lib.org/articles/stages.html)\n![](https://img.shields.io/github/last-commit/louis-heraut/CARD)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md) \n\u003c!-- badges: end --\u003e\n\n**CARD** is an efficient and user-friendly solution for aggregating daily hydroclimatological time series data in R, made possible through the use of parameterization files.\n\nMore precisely, this package aims at regroup all relevant aggregated hydroclimatological variable procedures into a CARD and serves as an interface to the core aggregation process carried out by the [EXstat](https://github.com/louis-heraut/EXstat) package.\n\nThis project was carried out for National Research Institute for Agriculture, Food and the Environment (Institut National de Recherche pour l’Agriculture, l’Alimentation et l’Environnement, [INRAE](https://agriculture.gouv.fr/inrae-linstitut-national-de-recherche-pour-lagriculture-lalimentation-et-lenvironnement) in french) and is at the core of [MAKAHO](https://github.com/louis-heraut/MAKAHO) which won the [2024 Open Science Research Data Award](https://www.enseignementsup-recherche.gouv.fr/fr/remise-des-prix-science-ouverte-des-donnees-de-la-recherche-2024-98045) in the “Creating the Conditions for Reuse” category.\n\n\n## Installation\nFor latest development version in R\n``` R\nremotes::install_github(\"louis-heraut/CARD\")\n```\n\n\n## How to use CARD ?\nFor a more user-friendly aggregation process, this package regroup predefined parameterisation files called CARD. Each CARD represent one hydroclimatological aggregated variable.\n\nThat way you don't have to define complex parameters yourself to extract hydroclimatological variables. What's more, if the CARD you want doesn't exist, it's easy to [create one]() based on the others.\n\n\n### Basic workflow\nFor example, in hydrology, if you want to extract the annual mean daily discharge QA from hydrometric data\n``` R\ninstall.packages(\"airGRdatasets\")\nlibrary(dplyr)\n\ndata = tibble(airGRdatasets::A273011002$TS) %\u003e%\n    mutate(code=\"A273011002\",\n           Date=as.Date(Date)) %\u003e%\n    rename(Q=Qls)\n```\t\t     \n\nyou can simply run\n``` R\nres = CARD_extraction(data, CARD_name=\"QA\")\n```\n\nwhich will return\n``` R\n\u003e res\n$metaEX\n# A tibble: 1 × 19\n  variable_en unit_en      name_en description_en method_en sampling_period_en\n  \u003cchr\u003e       \u003cchr\u003e        \u003cchr\u003e   \u003cchr\u003e          \u003cchr\u003e     \u003cchr\u003e             \n1 QA          m^{3}.s^{-1} Annual… \"\"             1. annua… 09-01, 08-31      \n# ℹ 13 more variables: topic_en \u003cchr\u003e, variable_fr \u003cchr\u003e, unit_fr \u003cchr\u003e,\n#   name_fr \u003cchr\u003e, description_fr \u003cchr\u003e, method_fr \u003cchr\u003e,\n#   sampling_period_fr \u003cchr\u003e, topic_fr \u003cchr\u003e,\n#   preferred_hydrological_month \u003cdbl\u003e, is_date \u003clgl\u003e, to_normalise \u003clgl\u003e,\n#   palette \u003cchr\u003e, script_path \u003cchr\u003e\n\n$dataEX\n$dataEX$QA\n# A tibble: 21 × 3\n   code       Date          QA\n   \u003cchr\u003e      \u003cdate\u003e     \u003cdbl\u003e\n 1 A273011002 1998-09-01   NA \n 2 A273011002 1999-09-01 7048.\n 3 A273011002 2000-09-01 6409.\n 4 A273011002 2001-09-01 6403.\n 5 A273011002 2002-09-01 4850.\n 6 A273011002 2003-09-01 3768.\n 7 A273011002 2004-09-01 5044.\n 8 A273011002 2005-09-01 4805.\n 9 A273011002 2006-09-01 7095.\n10 A273011002 2007-09-01 5575.\n# ℹ 11 more rows\n# ℹ Use `print(n = ...)` to see more rows\n```\n\nSo the result is a list of the metadata of the extraction in the `metaEX` tibble and the result of the extraction in the `dataEX` tibble.\n\nMany CARDs are available. If you want to have a look of every current possibilities, use the `CARD_list_all()` function\n``` R\nmetaEX_all = CARD_list_all()\n```\nwhich gives\n``` R\n\u003e metaEX_all\n# A tibble: 565 × 20\n   variable_en     unit_en name_en description_en method_en sampling_period_en\n   \u003cchr\u003e           \u003cchr\u003e   \u003cchr\u003e   \u003cchr\u003e          \u003cchr\u003e     \u003cchr\u003e             \n 1 ETPA            mm      Cumula… \"\"             \"\"        09-01, 08-31      \n 2 BFI_Wal         withou… Basefl… \"Ratio betwe…\" \"1. no …\" NA                \n 3 BFM             withou… Basefl… \"\"             \"1. no …\" NA                \n 4 delta{BFI}_LH_… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n 5 delta{BFI}_LH_… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n 6 delta{BFI}_LH_… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n 7 delta{BFI}_Wal… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n 8 delta{BFI}_Wal… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n 9 delta{BFI}_Wal… withou… Change… \"Ratio betwe…\" \"1. no …\" NA                \n10 delta{centerBF… day     Averag… \"Date when 5…\" \"1. ann…\" 09-01, 08-31      \n# ℹ 555 more rows\n# ℹ 14 more variables: topic_en \u003cchr\u003e, variable_fr \u003cchr\u003e, unit_fr \u003cchr\u003e,\n#   name_fr \u003cchr\u003e, description_fr \u003cchr\u003e, method_fr \u003cchr\u003e,\n#   sampling_period_fr \u003cchr\u003e, topic_fr \u003cchr\u003e, source \u003cchr\u003e,\n#   preferred_hydrological_month \u003cint\u003e, is_date \u003clgl\u003e, to_normalise \u003clgl\u003e,\n#   palette \u003cchr\u003e, script_path \u003cchr\u003e\n# ℹ Use `print(n = ...)` to see more rows\n```\n\nBased on that, you can for example filter variables by their topic with\n``` R\nmetaEX_low_flow = dplyr::filter(metaEX_all, grepl(\"Low Flow\", topic_en))\n```\nand get the name of all those available CARDs with  \n``` R\nmetaEX_low_flow$variable_en\n```\n\n\n### Complex workflow\nIn a similar, more complex way, you can extract multiple variables at a time with more than one discharge series,\n``` R\n# For one station\ndata1 = tibble(airGRdatasets::A273011002$TS) %\u003e%\n    mutate(code=\"A273011002\",\n           Date=as.Date(Date)) %\u003e%\n    rename(Q_obs=Qls)\n\n# and an other\ndata2 = tibble(airGRdatasets::H622101001$TS) %\u003e%\n    mutate(code=\"H622101001\",\n           Date=as.Date(Date)) %\u003e%\n    rename(Q_obs=Qls)\n# make one tibble\ndata = bind_rows(data1, data2)\n\n# add some noise for mock simulation data\ndata$Q_sim = data$Q_obs + rnorm(nrow(data), mean=0, sd=100)\n\n# and perfom an extraction\nres = CARD_extraction(data,\n                      CARD_name=c(\"QA\", \"QMNA\", \"VCN10-5\"),\n                      suffix=c(\"obs\", \"sim\"))\n```\n\nwhich will return\n``` R\n\u003e res\n$metaEX\n# A tibble: 3 × 19\n  variable_en unit_en      name_en description_en method_en sampling_period_en\n  \u003cchr\u003e       \u003cchr\u003e        \u003cchr\u003e   \u003cchr\u003e          \u003cchr\u003e     \u003cchr\u003e             \n1 VCN10-5     m^{3}.s^{-1} Annual… \"\"             \"1. no t…\" \"Month of maximum …\"\n2 QMNA        m^{3}.s^{-1} Annual… \"\"             \"1. mont…\" \"Month of maximum …\"\n3 QA          m^{3}.s^{-1} Annual… \"\"             \"1. annu…\" 09-01, 08-31      \n# ℹ 13 more variables: topic_en \u003cchr\u003e, variable_fr \u003cchr\u003e, unit_fr \u003cchr\u003e,\n#   name_fr \u003cchr\u003e, description_fr \u003cchr\u003e, method_fr \u003cchr\u003e,\n#   sampling_period_fr \u003cchr\u003e, topic_fr \u003cchr\u003e,\n#   preferred_hydrological_month \u003cdbl\u003e, is_date \u003clgl\u003e, to_normalise \u003clgl\u003e,\n#   script_path \u003cchr\u003e, palette \u003cchr\u003e\n\n$dataEX\n$dataEX$`VCN10-5`\n# A tibble: 2 × 3\n  code       `VCN10-5_obs` `VCN10-5_sim`\n  \u003cchr\u003e              \u003cdbl\u003e         \u003cdbl\u003e\n1 A273011002          914.          901.\n2 H622101001         2770.         2769.\n\n$dataEX$QMNA\n# A tibble: 40 × 4\n   code       Date       QMNA_obs QMNA_sim\n   \u003cchr\u003e      \u003cdate\u003e        \u003cdbl\u003e    \u003cdbl\u003e\n 1 A273011002 1999-01-01    1050.    1070.\n 2 A273011002 2000-01-01    2586.    2569.\n 3 A273011002 2001-01-01    1401.    1408.\n 4 A273011002 2002-01-01    1463.    1454.\n 5 A273011002 2003-01-01    1182.    1167.\n 6 A273011002 2004-01-01    1362.    1354.\n 7 A273011002 2005-01-01    1245.    1264.\n 8 A273011002 2006-01-01    1770     1778.\n 9 A273011002 2007-01-01    1889.    1875.\n10 A273011002 2008-01-01    1669.    1659.\n# ℹ 30 more rows\n# ℹ Use `print(n = ...)` to see more rows\n\n$dataEX$QA\n# A tibble: 42 × 4\n   code       Date       QA_obs QA_sim\n   \u003cchr\u003e      \u003cdate\u003e      \u003cdbl\u003e  \u003cdbl\u003e\n 1 A273011002 1998-09-01    NA     NA \n 2 A273011002 1999-09-01  7048.  7049.\n 3 A273011002 2000-09-01  6409.  6419.\n 4 A273011002 2001-09-01  6403.  6407.\n 5 A273011002 2002-09-01  4850.  4842.\n 6 A273011002 2003-09-01  3768.  3763.\n 7 A273011002 2004-09-01  5044.  5045.\n 8 A273011002 2005-09-01  4805.  4805.\n 9 A273011002 2006-09-01  7095.  7093.\n10 A273011002 2007-09-01  5575.  5562.\n# ℹ 32 more rows\n# ℹ Use `print(n = ...)` to see more rows\n```\n\n\n### Custom workflow\nMaybe you can't find the CARD that you want so you want to try to customize one or even create a new one based on another example. To do so, get the example CARD you want in a local directory by running\n```R  \nCARD_management(CARD_name = c(\"VCN10-5\"), CARD_path = \"CARD-WIP\")  \n```  \nThis will create the `VCN10-5.R` CARD in the `\"CARD-WIP\"` directory of your working directory.\n\nFrom there, you can open this R file and, for example, change the metadata and the return period parameter from `5` to `10` to get the `VCN10-10` CARD, which represents the annual minimum of 10-day mean daily discharge with a return period of 10 years instead of 5.\n\nFor the extraction, simply run  \n```R  \nres = CARD_extraction(data, CARD_name = NULL,  \n                      CARD_path = \"CARD-WIP\")  \n```  \nThis will perform the extraction of all the CARDs in the `CARD_path` directory.\n\nIf you want to select specific variables to extract from your custom CARD directory, just use the `CARD_name` variable as seen in the [basic workflow](#basic-workflow) section.\n\n\n## What is a CARD ?\n\n### [inst/\\_\\_all\\_\\_](https://github.com/louis-heraut/CARD/blob/main/inst/__all__) directory\nIn this directory, you can find all the different CARDs available, organized by topic and type of aggregation: serie or criteria. In the [EXstat](https://github.com/louis-heraut/EXstat) terminology, a criterion is an aggregated variable that does not retain any temporal extension, unlike a serie variable, which maintains a temporal extension even after the aggregation process.\n\nAll CARDs have the same structure, as exemplified by the annual average daily flow [`QA`](https://github.com/louis-heraut/CARD/blob/main/inst/__all__/Flow/Mean_Flows/serie/QA.R) in [`__all__/Flow/Mean_Flows/serie`](https://github.com/louis-heraut/CARD/tree/main/inst/__all__/Flow/Mean_Flows/serie):\n``` R\n#   ___                _ \n#  / __| __ _  _ _  __| |\n# | (__ / _` || '_|/ _` |\n#  \\___|\\__,_||_|  \\__,_|\n# Copyright 2022-2025 Louis Héraut (louis.heraut@inrae.fr)*1\n#\n# *1   INRAE, France\n#\n# This file is part of CARD R package.\n#\n# CARD R package is free software: you can redistribute it\n# and/or modify it under the terms of the GNU General Public License\n# as published by the Free Software Foundation, either version 3 of\n# the License, or (at your option) any later version.\n#\n# CARD R package is distributed in the hope that it will be\n# useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See the GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with CARD R package.\n# If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n\n## INFO ______________________________________________________________\n### English __________________________________________________________\nCARD$P.variable_en = \"QA\"\nCARD$P.unit_en = \"m^{3}.s^{-1}\"\nCARD$P.name_en = \"Annual mean daily discharge\"\nCARD$P.description_en = \"\"\nCARD$P.method_en = \"1. annual aggregation [09-01, 08-31] - mean\"\nCARD$P.sampling_period_en = \"09-01, 08-31\"\nCARD$P.topic_en = \"Flow, Mean Flows, Intensity\"\n\n### French ___________________________________________________________\nCARD$P.variable_fr = \"QA\"\nCARD$P.unit_fr = \"m^{3}.s^{-1}\"\nCARD$P.name_fr = \"Moyenne annuelle du débit journalier\"\nCARD$P.description_fr = \"\"\nCARD$P.method_fr = \"1. agrégation annuelle [01-09, 31-08] - moyenne\"\nCARD$P.sampling_period_fr = \"01-09, 31-08\"\nCARD$P.topic_fr = \"Débit, Moyennes Eaux, Intensité\"\n\n### Global ___________________________________________________________\nCARD$P.preferred_hydrological_month = 9\nCARD$P.is_date = FALSE\nCARD$P.to_normalise = TRUE\nCARD$P.palette = \"#452C1A #7F4A23 #B3762A #D4B86A #EFE0B0 #BCE6DB #7ACEB9 #449C93 #2A6863 #193830\"\n\n\n## PROCESS ___________________________________________________________\n### P1 _______________________________________________________________\nCARD$P1.funct = list(QA=mean)\nCARD$P1.funct_args = list(\"Q\", na.rm=TRUE)\nCARD$P1.time_step = \"year\"\nCARD$P1.sampling_period = \"09-01\"\nCARD$P1.NApct_lim = 3\nCARD$P1.NAyear_lim = 10\n```\n\nCARDs are separated into 2 main parts: `INFO` and `PROCESS`.\n\n##### INFO\nIn this part, you can find all the necessary information about the variable represented by this CARD. There are English and French versions for parameters such as the unit, the name, and the description. Global info are general info that do not need translation.\n\nThis information is not merely informational; it serves as metadata for [EXstat](https://github.com/louis-heraut/EXstat).\n\nAll of these parameters are optional because each of them has a default value based on the [`__default__.R`](https://github.com/louis-heraut/CARD/blob/main/inst/__default__.R) CARD, which you can find in the [inst](https://github.com/louis-heraut/CARD/blob/main/inst) directory. However, you are definitely encouraged to fill out most of them.\n\n##### PROCESS\nIn the PROCESS part, you will find steps needed to extract the desired variable. The parameters listed here are parameters that you can use in [EXstat](https://github.com/louis-heraut/EXstat)'s [`process_extraction()`](https://github.com/louis-heraut/EXstat/blob/main/R/process_extraction.R) function. Here, there is only one step because we only need to calculate a yearly mean and no other type of aggregation. However, for example, we can add another step like:\n\n``` R\n### P2 _______________________________________________________________\nCARD$P2.funct = list(\"meanQA\"=mean)\nCARD$P2.funct_args = list(\"QA\", na.rm=TRUE)\nCARD$P2.time_step = \"none\"\n```\n\nAnd that will now be the modulus of the flow, which is the average of the annual average daily flow, labeled as `meanQA`.\n\n### [R/](https://github.com/louis-heraut/CARD/tree/main/R) directory\nIn this directory, you can find all the different functions needed for the aggregation process in CARDs. They are ordered by type of application, but it may take some time to search and understand what is available or not. This is where you can modify or add your own function.\n\nThis directory also contains the core functions for [CARD management](https://github.com/louis-heraut/CARD/blob/main/R/CARD_management.R) and [CARD extraction](https://github.com/louis-heraut/CARD/blob/main/R/CARD_process.R), which allow users to interact with the CARD formatting in connection with the [EXstat](https://github.com/louis-heraut/EXstat) package.\n\n\n### You need a new CARD ?\n- **Good Solution** : Search existing request in the issue list and if no one has asked for it, create a new issue.\n- **Better Solution** : Along with the issue submission, provide a minimal CARD file with informative metadata filled out.\n- **Best Solution** : Create and test a CARD by your own and submit a pull request. This is the fastest way to get a new CARD.\n\n\n## FAQ\n📬 — **I would like an upgrade / I have a question / Need to reach me**  \nFeel free to [open an issue](https://github.com/louis-heraut/CARD/issues) ! I’m actively maintaining this project, so I’ll do my best to respond quickly.  \nI’m also reachable on my institutional INRAE [email](mailto:louis.heraut@inrae.fr?subject=%5BCARD%5D) for more in-depth discussions.\n\n🛠️ — **I found a bug**  \n- *Good Solution* : Search the existing issue list, and if no one has reported it, create a new issue !  \n- *Better Solution* : Along with the issue submission, provide a minimal reproducible code sample.  \n- *Best Solution* : Fix the issue and submit a pull request. This is the fastest way to get a bug fixed.\n\n🚀 — **Want to contribute ?**  \nIf you don't know where to start, [open an issue](https://github.com/louis-heraut/CARD/issues).\n\nIf you want to try by yourself, why not start by also [opening an issue](https://github.com/louis-heraut/CARD/issues) to let me know you're working on something ? Then:\n\n- Fork this repository  \n- Clone your fork locally and make changes (or even better, create a new branch for your modifications)\n- Push to your fork and verify everything works as expected\n- Open a Pull Request on GitHub and describe what you did and why\n- Wait for review\n- For future development, keep your fork updated using the GitHub “Sync fork” functionality or by pulling changes from the original repo (or even via remote upstream if you're comfortable with Git). Otherwise, feel free to delete your fork to keep things tidy ! \n\nIf we’re connected through work, why not reach out via email to see if we can collaborate more closely on this repo by adding you as a collaborator !\n\nRefer to the [CONTRIBUTING file](.github/CONTRIBUTING.md) for contribution guidelines and help.\n\n\n## Code of Conduct\nPlease note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouis-heraut%2Fcard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flouis-heraut%2Fcard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouis-heraut%2Fcard/lists"}