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
This means turning human-readable websites such as:
...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"
},
- Find gear description in data directory
- Read about the data model in product.ts
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
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
See CONTRIBUTE.md