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/sports

v1.0.0

Published

Algeria's 5,141 sports facilities — stadiums, pools, courts, tracks, halls and more, with type, commune/wilaya linkage, capacity, operational status and GPS coordinates. Sourced from the Ministère de la Jeunesse et des Sports GIS. JSON, CSV, GeoJSON, Type

Readme

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

@geoalgeria/sports

Every sports facility in Algeria — as data you can install.

npm npm downloads License: MIT

5,141 sports facilities across Algeria — proximity fields, stadiums, swimming pools, specialized halls, athletics tracks, tennis courts, equestrian centers, nautical bases and more — each with its name, facility type, address, commune / daïra / wilaya, capacity, operational status, PMR accessibility, built and land area, year of reception, and geographic coordinates. Sourced from the Ministère de la Jeunesse et des Sports GIS (sig.mjs.gov.dz), shipped as JSON, CSV, and GeoJSON. Part of GeoAlgeria.

npm install @geoalgeria/sports
import sports from "@geoalgeria/sports";

const all = sports.facilities();                    // 5,141
const inOran = sports.facilitiesByWilaya(31);       // facilities in wilaya 31
const pools = sports.facilitiesByType("P25");       // every 25 m pool

// Everything has lat/lng — distance-sort, map, or nearest-facility in a few lines.

What you can build

  • "Nearest pool / stadium" lookups — coordinates on every record, ready for distance sorting.
  • Sports & civic apps — map stadiums, pools and courts per wilaya, filter by type or status.
  • Maps — drop-in GeoJSON point layer for the entire sports infrastructure network.
  • Research & planning — facility density by type, capacity analysis, operational status audits.

What's inside

| Type | Code | Count | | --- | --- | --- | | Terrain sportif de proximité | TSP | 3,292 | | Aire de jeux football | AJF | 437 | | Salle OMS | SOMS | 340 | | Salle spécialisée | SS | 191 | | Bassin de natation | BN | 159 | | Piscine 25 m | P25 | 158 | | Piscine de proximité | PP | 103 | | Terrain de football | TF | 83 | | Stade de football | SF | 79 | | Stade OMS | STOMS | 76 | | Piste d'athlétisme | PA | 45 | | Boulodrome | BL | 39 | | Court de tennis | CT | 31 | | Unité d'hébergement et de récupération | UHR | 23 | | Piscine 50 m | P50 | 20 | | Stade d'athlétisme | SA | 16 | | Centre équestre | CE | 11 | | Base nautique | BNA | 8 | | Complexe sportif | CXS | 7 | | Aire de jeux de loisirs | AJL | 5 | | Champ de tir | CDT | 5 | | Centre de regroupement et de préparation | CRP | 4 | | École de jeunes talents | EJT | 3 | | Terrain de réplique | TR | 3 | | Centre de formation régional | CFR | 1 | | Établissement d'éducation physique et sportive | EPS | 1 | | Grand stade | GS | 1 | | Total | | 5,141 |

Spanning 58 wilayas, every facility geocoded. wilaya_code is linked against the geoalgeria wilaya model.

Formats

The npm package ships the JSON (importable directly):

import facilities from "@geoalgeria/sports/data/facilities.json" with { type: "json" };
// or via CDN, no install:
// https://cdn.jsdelivr.net/npm/@geoalgeria/sports/data/facilities.json

The loaders and record shapes are fully typed — TypeScript definitions ship in the package:

import sports, { type Facility } from "@geoalgeria/sports";
const all: Facility[] = sports.facilities();

CSV and GeoJSON are in the repo under data/ and bundled in every GitHub Release:

data/
  facilities.json            # 5,141 facilities (array)
  metadata.json              # source, counts, by_type, generated_at
  csv/facilities.csv         # repo + Release bundle (not in npm tarball)
  geojson/facilities.geojson # Point features (all 5,141 are geocoded)

Record shape

{
  "id": 6,
  "name": "Bassin de natation T'sabit",
  "type_code": "BN",
  "type_fr": "Bassin de natation",
  "address": "Tsabit. Adrar",
  "commune": "TSABIT",
  "daira": "TSABIT",
  "wilaya_code": "01",
  "wilaya_name": "ADRAR",
  "capacity": 80,
  "year": 2005,
  "operational": false,
  "pmr": false,
  "surface_built_m2": 504,
  "surface_land_m2": 504,
  "lat": 28.3057,
  "lng": -0.2446,
  "source": "https://sig.mjs.gov.dz/dashboard/viewer"
}

Names, communes, daïras and wilaya names are French (as published by the ministry's GIS). wilaya_code is zero-padded to two digits. For Arabic wilaya and commune names, join wilaya_code against the geoalgeria dataset.

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 wilaya division dataset that wilaya_code here links to. Use @geoalgeria/sports when you only need sports infrastructure data.

Source

Data comes from the Ministère de la Jeunesse et des Sports, via the public GIS (https://sig.mjs.gov.dz/dashboard/viewer). The ministry maintains a GeoServer with the infrastructures_sportives layer publicly queryable over WMS. Run npm run fetch to regenerate every output from the live GIS. The build resolves wilaya names to codes against the flagship dataset, normalises infrastructure types to stable short codes, and fails loudly if the facility count collapses or an unknown type appears.

License & attribution

Code is MIT. The underlying data is © Ministère de la Jeunesse et des Sports, 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]