/Climbdex

Search engine for training board climbs

Primary LanguageJavaScriptMIT LicenseMIT

Climbdex

Climbdex is a search engine for "standardized interactive climbing training boards" (SICTBs) designed with the goal of adding missing functionality to boards that utilize Aurora Climbing's software, such as Kilter, Tension, and Decoy. The primary missing feature provided by this engine is a "filter by hold" feature to find climbs with specific sets of holds. There are some additional improvements to other options for filtering and sorting through climbs as well.

Try it out here.

This app was partially inspired by Tim Parkin's excellent Moonboard Search Engine.

The climb databases are downloaded and synchronized using the BoardLib Python library.

Features

These are the features that Climbdex provides which are currently not supported by the official apps:

  • Hold filtering
    • Select holds to require them to be present in the resulting climbs.
    • Click multiple times on a hold to change the color.
    • If "strict" color matching is selected, the color of the hold must be an exact match. If "any" color matching is selected, the color of the holds will be ignored. If "only hands" color matching is selected, the color of the hold must match one of the hand hold colors (start, middle, or finish).
    • On mirrored board layouts, the mirror image of the filtered hold sequence will also be included in the search results.
  • Precise quality and difficulty ratings
    • The exact average (to the hundredths place) of the grade and star ratings are displayed to give a better sense of the true difficulty and quality of a climb.
    • There is a "difficulty accuracy" filter which can be used in combination with minimum ascents to help find benchmark climbs of a grade.
  • Bookmarking
  • Web access
    • No mobile app required to search for climbs
    • To light up the climbs, the mobile app is needed, but if app links are setup correctly, you can click on the climb name in Climbdex and be taken directly to the climb on the app.
    • Climbdex is a PWA which means the app can be installed on almost any platform and behave similarly to a native mobile or desktop app.
  • All of the supported boards on one app.

Development

To run Climbdex locally, clone the repository and install the Python dependencies (venv reccommended):

python3 -m pip install -r requirements.txt

After the dependencies are installed, start a server:

gunicorn wsgi:app

To actually use most of the features of Climbdex, at least one of the local SQLite databases are required. To download a database, use the sync_db script:

bin/sync_db.sh <board_name>

where <board_name> is one of decoy, grasshopper, kilter, tension or touchstone.