RFAS (Routesetting Feedback Analysis Software) is a bit of code I wrote for CityROCK Climbing gym while I worked there as Assistant Director of Routesetting back in 2013/2014.
The purpose of RFAS is to allow routesetting teams to track and visualize customer provided feedback for performance reviews. It graphs data and gives a quantifiable look into how routesetters are doing, both as a individuals and a team. I successfully used this software to to help my fellow setters see where their strengths and weaknesses were.
I wanted to add more features to this program, but ended up leaving my position at the gym to pursue fiction writing full-time. If you can find a way to implement this script for your gym, feel free. I'd be happy to hear if it helps you. :-)
The easiest way to get up and running with RFAS is to run it inside a Docker container.
- In the
includesdirectory, openroute_feedback.sql. Scroll to the bottom, and add your routesetters underDefault, using this format:
INSERT INTO `Setter_Index` (`ID`, `Name`) VALUES
(1, 'Default'),
(2, 'Name 1'),
(3, 'Name 2');
Make sure each entry is separated by a , and that the last line has a ; instead. Note: If you ever need to remove a setter from RFAS, don't delete them from the Setter_Index table. Simply add a # before their name. Otherwise, it will break the program.
2. In the project's root directory, run docker build --build-arg username=ADD_USERNAME --build-arg password=ADD_PASSWORD -t rfas . creating your own username and password so that you'll be able to log in to RFAS later on. (Note that the ending . in the command is needed.) This will build a Docker container with Apache2 and configure RFAS to run inside it.
3. Still in the project's root directory, run docker-compose up -d. This will start RFAS as well as a separate MySQL server container.
4. Log in to your RFAS container, using docker exec -it container-id bash. Replace container-id with the id found from docker ps.
5. Execute ./db-setup.pl from within the container to set up the required MySQL database and tables.
6. In a web browser, navigate to localhost:8080. After clicking Try it out, you will be presented with a log in box. Enter the credentials you created earlier, and you should see the RFAS welcome screen!
For RFAS to run on your system, you'll need the following:
- A web server capable of serving Perl CGI files. Apache2 works well out of the box.
- A MySQL server with root access. See Database Setup below for more info on database configuration.
- The following Perl modules installed on your server:
- CGI
- DateTime
- DBD-mysql
- DBI
- GD-graph
- Complete steps 1 and 2 under Installing below.
- In the
includesdirectory, openroute_feedback.sql. Scroll to the bottom, and add your routesetters underDefault, using this format:
INSERT INTO `Setter_Index` (`ID`, `Name`) VALUES (1, 'Default'), (2, 'Name 1'), (3, 'Name 2');
Make sure each entry is separated by a , and that the last line has a ; instead.
Note: If you ever need to remove a setter from RFAS, don't delete them from the Setter_Index table. Simply add a # before their name. Otherwise, it will break the program.
3. Run db-setup.pl in the includes folder. This will create a route_feedback database in MySQL and create the required structure.
4. Continue with step 3 under Installing.
- Copy the
includes/rfas_config.plto a secure location on your machine. Edit it and change the variables to reflect your MySQL username, password, and sever address. - Open
rfas.cgi,grapher.cgi, andincludes/db-setup.pland edit lines 16, 17, and 10, respectively,open CONFIG, "/usr/config/rfas_config.pl", to point to your config you copied in the previous step. - Now, copy
rfas.cgiandgrapher.cgiinto your web server'scgi-bin. Make sure the file permissions are set to allow execution of the files. - DO NOT leave
rfas.cgiorgrapher.cgiwithout some type of password protection (utilizing a.htaccessfile is the easiest). The program was never intended to be run on a publicly available web sever, and some of the design decisions reflect that, ie. no access control. - Copy
includes/rfas_functions.plto a secure location on your machine. Openrfas.cgiand update line 13,require '/usr/rfas/rfas_functions.pl';, to point to this file. - Navigate to your web server via a browser and open
rfas.cgi. If you did everything correctly, you should see "What would you like to do?"
- Perl - The controller / web framework
- MySQL - The database
- GD::Graph Perl module - The graphing tool
Zach Wahrer - zachtheclimber
RFAS is licensed under the GNU General Public License. Check out the LICENSE for more details.