/watersport-catalog

Primary LanguageTypeScriptApache License 2.0Apache-2.0

watersport-catalog

This library's goal is to document all available information about water sports gear:

  • windsurfing boards and sails
  • kitesurfing boards and kites
  • wingfoil boards and wings
  • ... more to come
Brands currently supported

This means turning human-readable websites such as:

Gaastra Patrik

...into machine-readable code like:

{
  "dimensions": ["color", "size"],
  "brandName": "Gaastra",
  "year": 2020,
  "name": "Hybrid",
  "type": "sail",
  "infoUrl": "https://ga-windsurfing.com/sails/2020/freeride/hybrid-20",
  "activities": ["windsurf", "windfoil"],
  "programs": ["freeride"],
  "variants": [
    {
      "variant": {
        "size": 3.7
      },
      "surfaceM2": 3.7,
      "mastLengthsCm": [370],
      "mastIMCS": [17],
      "mastExtensionLengthsCm": [0],
      "luffLengthCm": 365,
      "boomLengthCm": 146,
      "battenCount": 4,
      "topType": "vario"
    },
    {
      "variant": {
        "size": 4.2
      },
      "surfaceM2": 4.2,
      "mastLengthsCm": [370, 400],
      "mastIMCS": [17, 19],
      "mastExtensionLengthsCm": [16],
      "luffLengthCm": 386,
      "boomLengthCm": 156,
      "battenCount": 4,
      "topType": "vario"
    },

TL;DR

  • Find gear description in data directory
  • Read about the data model in product.ts

Description

The library

  • defines a common model to describe gear
  • scrapes information from brands' websites
  • generates JSON files representing gear that has been "scrapped"
  • gear can also be manually defined

This project contains both the code to scrape information (in src) and the latest catalog information in JSON format (in products).

The product definition is described in details in product.ts

Use gear information

Data is in JSON format available in the data directory

The project can be imported in other projects to use both data and data model:

# In your own project
npm install watersport-catalog

Contribute

See CONTRIBUTE.md