/RocoLib

Web App to create and share bouldering routes of a climbing gym.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

RocoLib

Simple Web App to create and share boulders & routes for any climbing wall.

Check it out at:

We also offer a public API. Its documentation can be found at:

Also, if you have signed up and are a registered user you can check your stats at (login with the same credentials used for the main app):

Powered by Flask, Python 3.9.13 and Bootstrap. API docs are generated with Swagger. Also using MongoDB Atlas and being hosted on Heroku.

Features

  • Create problems on any climbing wall, just from an image.
  • Explore and climb problems created by other users.
  • Create your own ticklist, save problems that you want to climb and log your sends.
  • Sort problems by difficulty, rating, creation date or setter and find your ideal climb or project.
  • Rate problems so that other users can get feedback and find the best climbs.

Would like to contribute? PRs and feature requests are welcome!

Check the issue tracker or project board to see what features are being worked on or submit your request.

Some of the features on our TODO list are
  • Public API WIP
  • Localize app Thanks to Pan6ora
  • Include a map to locate registered gyms
  • Show the number of repetitions of each problem PR #133
  • For registered users: Include a stats page
  • Enable setting routes as well as problems
  • Enable setting routes that span multiple images
  • Enable to configure each gym independently (difficulties, colors, problem styles, etc.)
  • Enable logging a climb more than once PR #75
  • Add a comments section for each problem
  • Enable users to suggest a difficulty after climbing a problem

Screenshots

Home


Home

Explore problems


Explore Boulders

Create problems


Create Boulders

Load problems


Load Boulders

Development

Run from Docker image

A docker image to run the app locally can be found here. To run it execute in a terminal:

docker pull juangallostra/rocolib
docker run -p 9090:80 juangallostra/rocolib

Once the container is up and running, the app can be accessed at http://localhost:9090. Note that you can replace 9090 by the port of your choice.

Run locally

  1. Clone the repository and, optionally, create a virtual environment -recommended but not shown here-.
    git clone https://github.com/javigallostra/RocoLib.git
    
  2. Install dependencies
    pip install -r requirements.txt
    
  3. Set up MongoDB. This can either be a local instance of MongoDB or an instance running on the cloud. We are currently using MongoDB Atlas free tier.
  4. Configure MongoDB connection so that the application code can talk with the DDBB.
  5. Run
    python application.py
    

Links of interest