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
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. * 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 timeNOTE: 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)
- Install PostgreSQL if you don't have it installed already.
- Create 'climbmapper' database with PostGIS installed.
- Create a new login user called 'app_user' who is a read only user.
- **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.
- Populate the database by restoring climbmapper/project_setup/climbmapper.backup.
- Install Node.js if you don't have it installed already.
- Pull the repo to your local webserver root (typically /var/www on Linux using Apache HTTPD).
- CD into the climbmapper root directory.
- Type 'npm install' in your terminal when cd'd into the cimbmapper root directory.
- Type 'webpack' in your terminal when cd'd into the cimbmapper root directory.
- Type 'npm start' in your terminal when cd'd into the cimbmapper root directory.
- Access the site at http://localhost:8080/climbmapper
- Make a branch
- When you make changes run webpack in your terminal to compile your changes (simply type webpack)
- Refresh your browser
- Use the 'issues' tab in GitHub for reporting or accepting tickets.
-
- [ ] 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