Library, Web API & site to browse Légifrance legal open data from French Direction de l'information légale et administrative (Dila)
Find a file
2025-04-18 16:14:20 +02:00
.forgejo/workflows Add OpenTelemetry to action 2025-04-02 14:36:19 +02:00
.vscode Improve configuration & README. Add license. 2022-08-09 11:15:42 +02:00
doc Add architecture schema 2025-03-21 07:23:47 +01:00
src Add missing type 2025-04-18 16:10:13 +02:00
static Add Version types to JSON Schema 2025-04-08 22:21:58 +02:00
tests Upgrade packages 2023-08-05 21:50:39 +02:00
.gitignore Fix .gitignore 2025-03-21 07:20:59 +01:00
.gitlab-ci.yml Remove obsolete configuration 2023-02-24 06:40:32 +01:00
.npmrc Migrate to ESLint 9 2024-09-16 11:14:06 +02:00
.prettierignore Don't prettify bits-ui files 2024-12-22 23:40:52 +01:00
.prettierrc Upgrade packages 2024-11-25 18:41:42 +01:00
components.json Migrate from DaisyUI to Shadcn (WIP) 2024-12-01 23:55:52 +01:00
eslint.config.js Migrate from DaisyUI to Shadcn (WIP) 2024-12-01 23:55:52 +01:00
example.env Add links to references 2025-01-19 09:58:49 +01:00
LICENSE.md Improve description 2025-03-21 07:20:59 +01:00
package-lock.json Upgrade packages 2025-04-18 16:14:20 +02:00
package.json Upgrade packages 2025-04-18 16:14:20 +02:00
playwright.config.ts Upgrade packages, update configuration 2023-07-19 11:45:22 +02:00
postcss.config.js Migrate to ESLint 9 2024-09-16 11:14:06 +02:00
README.md Update license URL 2025-03-21 21:30:52 +01:00
svelte.config.js Migrate to ESLint 9 2024-09-16 11:14:06 +02:00
tailwind.config.ts Migrate from DaisyUI to Shadcn (WIP) 2024-12-01 23:55:52 +01:00
tsconfig.json Modify module & moduleResolution to nodenext to force local import to end with .js 2025-03-26 01:37:50 +01:00
vite.config.ts Upgrade SvelteKit 2023-05-19 14:26:43 +02:00

Tricoteuses Légifrance

Tricoteuses Légifrance is free and open source software.

Architecture

Legal data sources:

Main definitions used by these data: https://www.legifrance.gouv.fr/contenu/Media/files/lexique-api-lgf.docx Some documentation and the DTD of the XML files: https://echanges.dila.gouv.fr/OPENDATA/DTD_LEGIFRANCE/

Installation

Create database

Using Debian GNU/Linux, install PostgreSQL, then:

sudo su - postgres
createuser legi -P # and enter the password
createdb -O legi legi
psql legi
  CREATE EXTENSION IF NOT EXISTS pg_trgm;
\q
exit

Install dependencies

npm install

Server Configuration

Create a .env file to set configuration variables (you can use example.env as a template). Then:

npm run configure

Datasets Initialization

mkdir -p ../dila-data/dole
cd ../dila-data/dole
git init
cd -

mkdir -p ../dila-data/jorf
cd ../dila-data/jorf
git init
cd -

mkdir -p ../dila-data/kali
cd ../dila-data/kali
git init
cd -

mkdir -p ../dila-data/legi
cd ../dila-data/legi
git init
cd -

Datasets Update

npx tsx src/scripts/download_dila_dataset.ts dole ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts jorf ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts kali ../dila-data/
npx tsx src/scripts/download_dila_dataset.ts legi ../dila-data/

Database Update

npx tsx src/scripts/import_dole.ts ../dila-data/
npx tsx src/scripts/import_jorf.ts ../dila-data/
npx tsx src/scripts/import_kali.ts ../dila-data/
npx tsx src/scripts/import_legi.ts ../dila-data/

# Note: Assemblee database must be updated before launching this script:
npx tsx src/scripts/associate_dossiers_legislatifs_with_assemblee.ts

Server Launch

In development mode:

npm run dev

In production mode:

npm run build
npm run preview

Development

JSON Schemas Generation

npx tsx src/scripts/generate_legifrance_json_schemas.ts
# Prettify generated JSON file.
npm run format

Note: JSON schemas are generated in file static/schemas.json

Package Generation & Publishing

npm version patch # or major or minor
npm run package
npm publish