@geoalgeria/formation-professionnelle
v1.1.0
Published
Algeria's 1,932 vocational training establishments — CFPA, INSFP, IFEP, IEP, DFEPs and private accredited centers across 58 wilayas, with type, capacity, boarding, contacts and GPS coordinates. Sourced from takwin.dz (MFEP). JSON, CSV, GeoJSON, TypeScript
Downloads
239
Maintainers
Readme
@geoalgeria/formation-professionnelle
Every vocational training establishment in Algeria — as data you can install.
1,932 vocational training establishments across Algeria — CFPA, INSFP, IFEP, IEP, DFEP and private accredited centers — each with its official name (Arabic, with French where available), establishment type, capacity, boarding info, rich contact details (phone, fax, email, website, Facebook), and GPS coordinates. Sourced from the Ministere de la Formation et de l'Enseignement Professionnels (MFEP) via takwin.dz, shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.
npm install @geoalgeria/formation-professionnelleimport fp from "@geoalgeria/formation-professionnelle";
const all = fp.establishments(); // 1,932
const byWilaya = fp.establishmentsByWilaya(16); // establishments in wilaya 16
const cfpas = fp.establishmentsByType("cfpa"); // every CFPA
const one = fp.establishmentById(1); // single record by id
// 1,375 records have lat/lng — distance-sort, map, or nearest center in a few lines.What you can build
- "Nearest training center" lookups — 1,375 geocoded records, ready for distance sorting.
- Vocational training directories — bilingual names, type, capacity and full contact info on every record.
- Maps — drop-in GeoJSON point layer for the vocational training network (71% geocoded).
- Capacity planning — theoretical and realized capacities, boarding availability and surface area.
- Sector analysis — 1,209 public vs 723 private establishments across 58 wilayas.
What's inside
| Type | Code | Count |
| --- | --- | --- |
| Centre de Formation Professionnelle et de l'Apprentissage | cfpa | 856 |
| Centre privé accrédité | prive | 723 |
| Institut National Spécialisé de Formation Professionnelle | insfp | 182 |
| Annexe CFPA | annexe_cfpa | 70 |
| Direction de la Formation et de l'Enseignement Professionnels | dfep | 58 |
| Institut d'Enseignement Professionnel | iep | 18 |
| Annexe CNFEPD | annexe_cnfepd | 9 |
| Annexe INSFP | annexe_insfp | 9 |
| Institut de Formation et d'Enseignement Professionnel | ifep | 6 |
| Institut National de la Formation et de l'Enseignement Professionnels | infep | 1 |
| Total | | 1,932 |
Spanning 58 wilayas (pre-reform scheme). 1,375 of 1,932 establishments are geocoded
(71%) — lat/lng is null for the remaining 557. wilaya_code uses the 58-wilaya
scheme as published by the source.
Formats
The npm package ships the JSON (importable directly):
import establishments from "@geoalgeria/formation-professionnelle/data/establishments.json" with { type: "json" };
// or via CDN, no install:
// https://cdn.jsdelivr.net/npm/@geoalgeria/formation-professionnelle/data/establishments.jsonThe loaders and record shapes are fully typed — TypeScript definitions ship in the package:
import fp, { type Establishment } from "@geoalgeria/formation-professionnelle";
const all: Establishment[] = fp.establishments();CSV and GeoJSON are in the repo under data/ and bundled in every
GitHub Release:
data/
establishments.json # 1,932 establishments (array)
metadata.json # source, counts, by_type, by_secteur, geocoded, generated_at
csv/ # CSV export (repo + Release bundle, not in npm tarball)
geojson/ # GeoJSON features (1,375 geocoded points)Record shape
{
"id": 1,
"name": "مديرية التكوينو التعليم المهنيينأدرار",
"name_fr": "DFEPADRAR",
"type": "dfep",
"type_label": "مديرية التكوين والتعليم المهنيين",
"abreviation": "DFEP ADRAR",
"code": "0100",
"secteur": "public",
"commune": "أدرار",
"wilaya_code": "01",
"lat": null,
"lng": null,
"adresse": "حي 103مسكن أدرار",
"adresse_fr": "Cité 103 logtAdrar",
"telephone": "049364333",
"fax": "049364332",
"email": "[email protected]",
"site_web": null,
"facebook": "www.facebook.com/profile.php?id=100057469388259",
"capacite": null,
"capacite_reelle": null,
"surface_m2": 2443.42,
"internat": false,
"capacite_internat": null,
"vocations": null,
"source": "takwin.dz (MFEP)"
}id is a stable 1-based integer. Names are bilingual — name is Arabic (always present),
name_fr is French (may be null). type is a slug matching one of the ten establishment
types listed above. secteur is "public" or "prive". wilaya_code is zero-padded to two
digits in the 58-wilaya scheme. lat/lng are null for the 29% of records that are not yet
geocoded. capacite (theoretical) and capacite_reelle (realized) are seat counts; internat
flags boarding availability with an optional capacite_internat. vocations is an array of
specialization strings when available.
Need the administrative divisions too?
If you also need wilayas, dairas, and communes to join against, use the main
geoalgeria package — it ships the full
69-wilaya division dataset. Use @geoalgeria/formation-professionnelle when you only
need vocational training data.
Source
Data comes from the MFEP — Ministere de la Formation et de l'Enseignement Professionnels,
via takwin.dz. The source uses the pre-reform 58-wilaya scheme.
Run npm run fetch to regenerate every output from the live site. Names, types, contacts,
capacities and coordinates are as published by the ministry.
License & attribution
Code is MIT. The underlying data is © MFEP, redistributed for reference and to power GeoAlgeria. Verify against the ministry for authoritative, real-time information.
API docs & field reference → · Browse all packages →
Made by Yasser's Studio · LinkedIn · X · [email protected]
