Giter VIP home page Giter VIP logo

modeify's Introduction

Modeify

Build status Test coverage Code Climate Dependency Status

Modeify is an open-source platform for multimodal commuter engagement. Utilizing the latest advances in open transportation technology, Modeify uses personalized outreach to promote commuter behavior change and improve outcomes for travelers, employers, and transportation demand management (TDM) providers.

Development of Modeify is supported by the Mobility Lab Transit Tech Initiative.

Development quick start

Clone to your local directory to begin.

$ git clone [email protected]:conveyal/modeify.git
$ cd modeify

Requirements

Configuration

An example configuration can be found in configurations/default. Copy that directory and edit the settings.yml and env.yml files. Add your

  1. MONGODB_URL to env.yml.
  2. Mapbox access_token and map_id to settings.yml.
  3. Mapzen Search api_key to settings.yml.
  4. R5 url endpoint to settings.yml.
  5. Auth0 AUTH0_CLIENT_ID, AUTH0_DOMAIN, AUTH0_NON_INTERACTIVE_CLIENT_ID, AUTH0_NON_INTERACTIVE_CLIENT_SECRET, and AUTH0_SECRET to env.yml.
  6. Auth0 logo and primary color in lock > theme in settings.yml.

If you have configuration specific images run ./bin/set-deployment ../path/to/your/configuration/directory to use them.

Running

If Modeify is configured correctly (above) then you will be able to run with npm start. This will

  1. Install all of the dependencies.
  2. Run the node server with automatic restarts using nodemon. It watches for changes in the /lib directory.
  3. Build the client/planner-app and client/manager-app and rebuilds on changes.

Once it starts, you will be able to find the planner at http://localhost:5000 and the manager at http://localhost:5000/manager.

To point it at a different configuration directory run:

$ npm start -- ../path/to/configuration/directory

Deployment

This repository is setup to deploy automatically to Heroku. All commits to the dev branch will be deployed to staging and all commits to master will be deployed to production. Pull requests will create review apps that run on Heroku Hobby Dynos. The review apps will build their client side files locally while the staging and production apps retrieve their assets from AWS and they need to be deployed manually.

Heroku will run the node server with

$ node lib/server.js

Heroku Environment Variables

All variables in env.yml must be set manually as Heroku environment variables. They can be set via the command line with:

$ heroku config:set VARIABLE_NAME=value --app heroku-app-name

The settings.yml is retrieved from Heroku apps via the MODEIFY_CONFIG environment variable. To set that value you can run the bin/push-settings-to-heroku script:

$ ./bin/push-settings-to-heroku ../path/to/configuration/settings.yml heroku-app-name

AWS Assets Deployment

Deployment is done with mastarm. See mastarm#deploy for more info on configuration.

$ mastarm deploy --minify --env production --config ../configurations/modeify

modeify's People

Contributors

abyrd avatar buma avatar demory avatar evansiroky avatar greenkeeperio-bot avatar hbruch avatar kchanba avatar mattwigway avatar trevorgerhardt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

modeify's Issues

Flag need to re-query OTP after travel speeds are edited in option calculator

When editing parameters like bike and walk speed in the options cost calculators there's a need to re-query OTP to update options based on adjusted travel times. The options calculator needs to highlight the when a re-query needs to be trigger (and offer a button?) but can't automatically re-query, otherwise option itself will disappear.

Uncaught TypeError: Cannot read property 'offsetTop' of null

View.prototype.scrolled = function(e) {
var lastOption = document.querySelector('.option:last-of-type');
var visibleHeight = lastOption.offsetTop - this.scrollable.clientHeight;
if (this.scrollable.scrollTop < visibleHeight) {
this.moreOptions.classList.remove('hidden');
} else {
this.moreOptions.classList.add('hidden');
}
};

Results not showing the best options

Both of the following trips from the NW down to the office don't pull up the obvious option (Red line to Green/Yellow Line):

http://www.carfreeatoz.com/planner?from=3204%20Porter%20St%20NW,%20Washington,%20District%20of%20Columbia,%20USA&to=641%20S%20St%20NW,%20Washington,%20District%20of%20Columbia,%20USA

http://www.carfreeatoz.com/planner?from=5249%20Nebraska%20Ave%20NW,%20Washington,%20District%20of%20Columbia,%20USA&to=641%20S%20St%20NW,%20Washington,%20District%20of%20Columbia,%20USA

Also, on the first one, it shows two options, one taking the train to U Street and transferring to the Florida Ave bus which stops further from the office than the metro.

Intro Guide

  1. Welcome

Welcome to CarFreeAtoZ! Arlington's next generation multi-modal planning tool.
How do you get to work?
I drive
I walk
etc.

[on selection, show second page]

  1. How we're going to help you
  • Compare
  • Save time
  • Save money
  • Be healthier
  • Save energy
  • Show you rainy day options
  1. All we need is...

Where you live
Where you work

[Find my options!]

  1. Find your options...

[ Beta tag ]

Description...We're building a comparison of all of your choices for your daily commute!

[ Show me my choices! ]

If there's room, show a "register email" form

img_0930 2

Mode Buttons Modificiations

Buttons need to look more clickable and look more like they're on or off.

Check boxes? Check marks? "Lights?"

Compare versus cars

Remove the current top right "costs" on each option. We want to highlight the best part of each journey versus solo driving, and also highlight how much more expensive driving the entire way is versus other options.

improve traffic time calculations

Two phase approach:

  1. Come up with a uniform offset for showing average/worst case travel times (could be as simple as increasing by 25-30% and stating the value as a worst case and without traffic figure).

  2. Investigate creating a traffic offset coverage from loop detector data (per RPA project).

Information Button + Modal

Add in information button to the top bar that shows a modal that displays more information about the application.

Uncaught TypeError: Cannot read property 'stops' of undefined

if (option.transit.length > segmentIndex + 1) {
var currentFirstPattern = segment.segmentPatterns[0];
var alightStop = getPattern(currentFirstPattern.patternId).stops[
currentFirstPattern.toIndex];
var nextSegment = option.transit[segmentIndex + 1];
var nextFirstPattern = nextSegment.segmentPatterns[0];

   var boardStop = getPattern(nextFirstPattern.patternId).stops[
      nextFirstPattern.fromIndex];

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.