This open-source project was started to bring a simple climbing tracker to the community. It is not meant to replace apps that keep track of specific outdoor climbs--instead, it is more workout-focused and geared toward those who climb many times in a single session and want to monitor his or her progress over time. The web app currently supports tracking boulder, top-rope, lead climbs in both indoor gyms and outdoors, with options for specifying different ascent types (attempts, redpoint, flash, onsight).
This repository contains the source code for www.trackyourclimb.com, which is built with PHP, MySQL, Javascript, CSS, and HTML.
We welcome community contributions, and we've tried to make it very easy to get started.
(Windows instructions)
- Download and install the latest version of XAMPP (https://www.apachefriends.org/download.html), which is a free software package consisting of a web server, MySQL database, and PHP. The installation directory (e.g. C:\xampp) will be referred to as
${XAMPP}
) - From the command prompt, navigate to
${XAMPP}\htdocs
- Clone the repo. In the command prompt, enter:
git clone https://github.com/shimizust/trackyourclimb.git trackyourclimb
- Note: Replace "trackyourclimb" with any name you want for your root folder. The root of the local git repo will be referred to as
${REPO}
- Start the XAMPP control panel (
${XAMPP}\xampp-control.exe
) - From the control panel, start Apache and MySQL
- Click "Admin" for MySQL or navigate to
localhost/phpmyadmin
in your browser - Click "New" on the left
- Enter a name for the database (e.g. "trackyourclimb_db") and choose the collation to be
utf8_unicode_ci
. Click Create. - Import the database schema by clicking "Import" from the top menu bar and choosing
${REPO}\database_init\trackyourclimb_db_schema.sql
.
- From the local git repo, make a copy of
${REPO}\siteproperties-TEMPLATE.ini
and rename to${REPO}\siteproperties.ini
- In
siteproperties.ini
, fill in the following parameters:db_name = "trackyourclimb_db"
[or whatever you named the database]db_username = "root"
[or another username to access the database, "root" is the default]db_password = ""
[or whatever password you set, blank "" is the default]- You can leave the Mailchimp details blank for now.
- Create the following directory
${REPO}\userimages
. This is used to store user profile pictures.
- Follow these instructions to install Composer, a PHP package manager (see Installation - Windows: Using the Installer): https://getcomposer.org/doc/00-intro.md
- Navigate to
${REPO}
from the command prompt. Entercomposer install
to install PHP packages, which will reside in the${REPO}\vendor
folder.
- Download and install Node.js (https://nodejs.org/)
- Use the Node Package Manager (npm), to install Bower (client-side package manager)
- Open a command prompt anywhere, and enter:
npm install -g bower
- Open a command prompt anywhere, and enter:
- From the command prompt, navigate to
${REPO}
and runbower install
, which will install dependencies in the${REPO}\bower_components
folder.
- In your browser, navigate to
localhost/trackyourclimb
(use whatever you named the root folder). You should see the trackyourclimb website with no data. - This is a local version of the website you can play around with and test out your changes, although it requires internet access for some libraries delivered from CDNs.
- Install PHPUnit using these instructions: https://phpunit.de/getting-started.html
- All tests are contained under /tests/ with the filename format: *Test.php
- From project root, run the command
phpunit tests
to determine if tests pass.
The project uses SCSS, which adds better functionality to the existing CSS syntax. All of the site's custom CSS is written in ${REPO}\css\scss\mycss.scss
.
- If you have a bug fix, feature, design change, etc., post an issue in the Github repository.
- If we decide that this change makes sense, someone will be assigned the fix.
- After forking the repository and implementing the change, issue a pull request. If approved, the change will be merged. Shortly thereafter, the website will be manually synced with the Github repo.
Here are some areas of contribution:
- bug fixes
- refactoring code
- making the design better
- adding new features
- improving the build process
- writing tests
- documentation
- Repo owner: Steven Shimizu ([email protected])