An experimental app to visualize climbing ToDo and Tick routes on a map based dashboard
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
config
models
node_modules
public
routes
tests/spec
views
README.md
config.js
htpasswd
package.json
server.js

README.md

climbmapper

NOTE: See the Reactify branch for current efforts! Master is way behind.

An experiment built on Node.js using Mountain Project climbing route data and my climbing area data.

You can see the app live at www.climbmapper.com

About

The goal of this app is to provide a better toolset for visualizing where someone wants to climb based on their MountainProject.com ToDos and Ticks. While the initial interest was to leverage Mountain Project there is a general interest to break away from that connection to allow for other integrations and possibly the ability to add routes solely to ClimbMapper. However, none of that is in the works right now.

Current Features

* MountainProject.com user integration * Tick and ToDo downloads from user profiles * Mapping ToDo/Tick density by location (climbing area and partial crag level support) * Charting grade breakdown, route type (trad, sport, boulder, alpine), and height (in # of pitches) on hover of locations * Displaying a list of routes with preview images and supplemental info on click of a location with links to the respective route in MountainProject.com * User profile management * Data issue reports * Ability to filter maps and charts by route types (trad, sport, boulder, alpine) * Ability to search for climbing areas * Ability to add new climbing areas or crags * Ability to edit existing areas or crags * Ability to use a time slider for visualizing user ticks across time * Charting of user ticks by route type and type across time

The future

NOTE: After some interest from the community it was decided that this project is being ported from a Proof of Concept implementation to something we all can be more proud of. The target stack will include:

** See the reactify branch for the work in progress

Basic Front-end

  • React
  • WebPack/Babel
  • Redux
  • Bootstrap

Visualization Specific

  • Leaflet.js
  • D3.js

Backend

  • Node 9.9.1
  • PostgreSQL 9.6.1 (PostGIS 2 >)
  • Python 2.7 (for some data processing)

Want to help out?

Awesome!

1. Dev Database Setup

  1. Install PostgreSQL if you don't have it installed already.
  2. Create 'climbmapper' database with PostGIS installed.
  3. Create a new login user called 'app_user' who is a read only user.
  4. **There is another user used in the production environment which you probably don't need but conatact me if you do end up needing it.
  5. Populate the database by restoring climbmapper/project_setup/climbmapper.backup.

2. Dev Server Env Setup

  1. Install Node.js if you don't have it installed already.
  2. Pull the repo to your local webserver root (typically /var/www on Linux using Apache HTTPD).
  3. CD into the climbmapper root directory.
  4. Type 'npm install' in your terminal when cd'd into the cimbmapper root directory.
  5. Type 'webpack' in your terminal when cd'd into the cimbmapper root directory.
  6. Type 'npm start' in your terminal when cd'd into the cimbmapper root directory.
  7. Access the site at http://localhost:8080/climbmapper

3. Making Changes

  1. Make a branch
  2. When you make changes run webpack in your terminal to compile your changes (simply type webpack)
  3. Refresh your browser
  4. Use the 'issues' tab in GitHub for reporting or accepting tickets.

General Needs

See the issues tab for more details.
    - [ ] Migration from a Proof of Concept to a real app (IN PROGRESS - see reactify branch) - [x] Better security authentication - [ ] UI/UX makeover (especially with editing locations) - [ ] Stronger domain models that help minimize the bridge to Mountain Project - [ ] Connectors to other climbing websites (8a.nu, thecrag.com, etc...) - [ ] Ability to add routes directly to ClimbMapper