Climbr
A utility to log, visualize, and highlight climbing strengths, weaknesses, and trends. Built using Python, ElasticSearch, Kibana, and Docker
Install / Use
/learn @Peter-Lam/ClimbrREADME
About
Climbr is a utility that allows users to visualize and highlight their climbing strengths, weaknesses, and trends. From professionals to beginners, trad climbers to indoor boulderers, users can log climbing sessions from a selection of templates and instantly view their trends, patterns, and statistics with pre-configured Kibana dashboards.
In addition, Climbr provides booking insights on local gyms (Altitude Kanata, Altitude Gatineau, Coyote Rock Gym), to help users find the most optimal climbing time according to location, time of day, and time of week. Climbers can utilize this information to make socially responsible decisions. Those looking to minimize their risk whilst still staying active can easily find the off-peak hours of their local gym.
Technologies
<p float="left"> <a href="https://www.python.org/"> <img src="images\misc\python.png" alt="python logo" width="100"> </a> <a href="https://www.docker.com/"> <img src="images\misc\docker.png" alt="docker logo" width="100"> </a> <a href="https://www.elastic.co/"> <img src="images\misc\elasticsearch.png" alt="elastic logo" width="100"> </a> <a href="https://www.elastic.co/kibana"> <img src="images\misc\kibana.png" alt="kibana logo" width="100"> </a> </p>Contributors
Peter Lam
Features
- Log your climbing sessions and projects using yaml files
- Visualize climbing trends, patterns, and statistics with dashboards
- Climbing Stats and Metrics
- Map of visited locations
- Most common climbing discipline (Lead, Bouldering, Trad)
- Grade counter
- Climbing Trends and Progression
- Progression in grades over time
- What's your flash grade? project grade?
- Strongest/Weakest climbing style? What areas should I improve?
- Bookings
- Busiest time to climb
- Best time to climb to avoid crowds
- Average bookings based on gym
- Climbing Stats and Metrics
- Use data to influence your training regime and pinpoint weaknesses
- Make responsible decisions based on booking data
Host Requirements
- Docker 19+
- Python 3.6+ (Optional)
- Linux:
sudo apt-get install python3 && python3 -m pip install -U pip - Windows: Ensure 'Add Python to PATH' is selected
- Linux:
Note: Climbr can be run without Docker. The following must be running on your host machine:
Quick Start
Climbr
- Open Command Prompt/Terminal
- Change directories to this the root of this repository
- Build and start up ElasticSearch, Kibana, and Climbr containers with:
Note: This process may take a while to builddocker-compose up -d --build - Confirm that all containers are running
- Run
docker ps, the containers climbr_cli, climbr_kibana, and climbr_es should be running - You should be able to establish a connection to http://localhost:5601
- If the link is not reachable, wait a couple minutes and try again
- Run
- Run the demo visualizations and data
- If python is installed:
- Run the command
python ./climbr.py demo
- Run the command
- Otherwise:
- Copy the
CONTAINER IDinto your clipboard for the docker container of nameclimber_cli - Run the following command to initialize the demo
docker exec <CONTAINER_ID> bash -c "python ./climbr.py demo"
- Copy the
- If python is installed:
- View Climbr visualizations at: http://localhost:5601/app/dashboard
Bookings
- Open Command Prompt/Terminal
- Change directories
<PATH_TO_REPO>/web_scraper - Run webscraper
- Automated: start up bookings container by running
Note: Confirm that the containerdocker-compose up -d --buildclimbr_bookingsis running with the commanddocker ps - Manually: with Python
python bookings.py ./bookings.py -l Altitude_Gatineau
- Automated: start up bookings container by running
- View Climbr visualizations at: http://localhost:5601/app/dashboard
Getting Started
Please visit the wiki for more information regarding system requirements, set-up, and usage.
