Code Monkey home page Code Monkey logo

climbmapper's People

Contributors

brendonakay avatar justinlewis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

climbmapper's Issues

Add area symbols as point clouds by type

A point cloud would be a single point for each route placed in a circular cloud colored by type. Andy Woodruff provided an basic example of how he did this:

////  Incomplet. For example only.
var g = symbols.append("g"),
statePath = d3.select( /* selector for the state polygon */ ),
centroid = path.centroid( statePath.datum() );

var total = // whatever the total number of dots is
  dotDiameter = 4,
  dist = 0,
  circumference = 0,
  canFit = 1,
  count = 0,
  angleDelta = 0;
for ( var i=0; i<total; i++ ){
  count++;
  if ( count > canFit ){
    dist += dotDiameter;
    circumference = 2 * dist * Math.PI;
    canFit = Math.floor( circumference / dotDiameter ),
    angleDelta = 2 * Math.PI / canFit;
    count = 0;
  }
  var currentAngle = angleDelta * count;
  var x = Math.cos(currentAngle) * dist,
      y = Math.sin(currentAngle) * dist;

  g.append( "circle" )
    .attr("cx",x+dotDiameter/2)
    .attr("cy",y+dotDiameter/2)
    .attr("r",dotDiameter/2)
    .attr("fill","#ccc")
    .attr("stroke","#666");
}
g.attr("transform","translate(" + centroid.toString() + ")");

Create generic data import interface

A generic interface for data import endpoints would be useful for data integration with multiple sites. Ultimately it would be best to integrate with more than just Mountain Project.

Add better area click behavior

currently clicking on a ToDo area opens up a panel on the bottom and populates it with an un-ordered list of ToDo routes with preview images. This whole thing is kinda weird and could be much better.

Location algorithm for routes needs better precision

The issue is that data from Mountain Project comes with only an array of location names in hierarchical order. This is a terrible way to store location and it poses a challenge to mapping routes against areas stored in climb mapper for a number of reasons. Probably the biggest issue is that of uniqueness for areas. When relating a route to an area we simply use the first name match for a location in the routes location array with all of the areas in Climb Mapper. Since area names are not unique this could create lots of false relationships as more areas with duplicate names are added to the system. One easy way to filter this down is to look for routes within a specific geographic context (i.e. a state, region, etc..).

Port front-end to React

We want to port from basic Node templates and JQuery to better facilitate:

  1. Readability to better support contributors
  2. Test-ability
  3. Modularity
  4. Re-usability

The MVP passing criteria for this ticket should be a replication of existing functionality with minimal deviation from the current behavior. Improvements on UI/UX can be considered but might necessitate a separate ticket if design work is significant enough to warrant lengthy consideration by the team contributors. That new ticket would be considered a new enhancement.

Master Feature Port List:

  • Basic main map page layout
  • Welcome modal
  • Data issues modal
  • Profile modal
  • Log in modal
  • About modal
  • Initial map render (with defalut initial data load)
  • Map feature hover events
  • Map feature click events
  • Area/crag click response panel
  • Area/crag hover charts - IN-PROGRESS by @justinlewis
  • Map layer toggle
  • Time slider & associated time slider ticks over time chart - IN-PROGRESS by @justinlewis
  • Route type filter selector
  • Crag/area search bar
    ...

Improve Ticks time slider

The time slider is hokey and boring. Make it more interesting! Additional indicators like hardest climb up to the current position on the slider and tick marks to indicate dates along the line would be a good starting point.

Improve charts

All the charts where done with basic styling. Get creative!

Create comprehensive Ticks chart

Initial thoughts:

Display a chart hooked into the time slider that showed number of ticks as a line chart and hardest/average difficulty rating as additional lines. The point would be to visualize number of climbs compared to how hard someone is climbing at that point in time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.