npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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

Readme

English | Français | العربية

@geoalgeria/formation-professionnelle

Every vocational training establishment in Algeria — as data you can install.

npm npm downloads License: MIT

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-professionnelle
import 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.json

The 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]