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 appThanks to Pan6ora- Include a map to locate registered gyms
Show the number of repetitions of each problemPR #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 oncePR #75- Add a comments section for each problem
- Enable users to suggest a difficulty after climbing a problem
Screenshots
Home
Explore problems
Create problems
Load problems
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
- Clone the repository and, optionally, create a virtual environment -recommended but not shown here-.
git clone https://github.com/javigallostra/RocoLib.git
- Install dependencies
pip install -r requirements.txt
- 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.
- Configure MongoDB connection so that the application code can talk with the DDBB.
- Run
python application.py