All Projects → azavea → cac-tripplanner

azavea / cac-tripplanner

Licence: other
Clean Air Council Circuit Trip Planner and Travelshed

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
HTML
75241 projects
SCSS
7915 projects
Jinja
831 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to cac-tripplanner

nepomuk
A public transit router for GTFS feeds (currently only static) written in modern c++
Stars: ✭ 22 (+83.33%)
Mutual labels:  transit, routing
Peering Manager
Peering sessions management tool
Stars: ✭ 189 (+1475%)
Mutual labels:  transit, routing
otp-tutorial
Introductory tutorial (approx. 3 hours) covering the setup and querying of an OpenTripPlanner instance
Stars: ✭ 85 (+608.33%)
Mutual labels:  routing, opentripplanner
bbbike
BBBike
Stars: ✭ 56 (+366.67%)
Mutual labels:  routing, bicycling
journey
A conductor routing helper library
Stars: ✭ 35 (+191.67%)
Mutual labels:  routing
organicmaps
🍃 Organic Maps is a free Android & iOS offline maps app for travelers, tourists, hikers, and cyclists. It uses crowd-sourced OpenStreetMap data and is developed with love by MapsWithMe (MapsMe) founders and our community. No ads, no tracking, no data collection, no crapware. Your donations and positive reviews motivate and inspire our small team!
Stars: ✭ 3,689 (+30641.67%)
Mutual labels:  routing
GTFS
.NET implementation of a General Transit Feed Specification (GTFS) feed parser.
Stars: ✭ 55 (+358.33%)
Mutual labels:  routing
app
Aplus Framework App Project
Stars: ✭ 338 (+2716.67%)
Mutual labels:  routing
nycbikemap
A web-based, unified, interactive bike map for NYC that combines information from NYC OpenData, Citi Bike and other sources.
Stars: ✭ 15 (+25%)
Mutual labels:  bikeshare
angular-ssr
Angular 14 Example SSR (Server side rendering)
Stars: ✭ 92 (+666.67%)
Mutual labels:  routing
es6-router
🌐 Simple client side router built in ES6
Stars: ✭ 16 (+33.33%)
Mutual labels:  routing
public-transit-tools
Tools for working with GTFS public transit data in ArcGIS
Stars: ✭ 126 (+950%)
Mutual labels:  transit
routex.js
🔼 Alternative library to manage dynamic routes in Next.js
Stars: ✭ 38 (+216.67%)
Mutual labels:  routing
citylines
Citylines.co is a collaborative platform for mapping the transit systems of the world!
Stars: ✭ 53 (+341.67%)
Mutual labels:  transit
open-bus
🚌 Analysing Israel's public transport data
Stars: ✭ 65 (+441.67%)
Mutual labels:  transit
svelte-hash-router
tienpv222.github.io/svelte-hash-router
Stars: ✭ 37 (+208.33%)
Mutual labels:  routing
swagger routerl
Routing library that generate the routing table from swagger.yaml.
Stars: ✭ 14 (+16.67%)
Mutual labels:  routing
retro-gtfs
Collect real-time transit data and process it into a retroactive GTFS 'schedule' which can be used for routing/analysis
Stars: ✭ 45 (+275%)
Mutual labels:  transit
demo-ionic-tab-routing
An Ionic project which shows different kinds of route definition for a tab based layout.
Stars: ✭ 34 (+183.33%)
Mutual labels:  routing
syncify
🤝 Shopify theme upload, download and watch development tool.
Stars: ✭ 50 (+316.67%)
Mutual labels:  transit

Clean Air Council Circuit Trip Planner and Travelshed

Development Dependencies

Development Installation

  1. Make sure you have the development dependencies installed
  2. Place GTFS .zip files, OSM files, and elevation .tif files (optional) in the root of the otp_data folder
  3. Generate a graph file with (takes approx 3 hours) docker-compose run --rm otp otp --build /var/otp in the deployment/graph directory.
  4. Copy deployment/ansible/group_vars/development_template to deployment/ansible/group_vars/development
  5. Change into the src/ folder and run npm install to install the node modules on the host machine
  6. Run vagrant up
  7. See the app at http://localhost:8024! See OpenTripPlanner at http://localhost:9090.
  8. Running ./scripts/serve-js-dev.sh on the host will rebuild the front-end app on file change (the browser must be reloaded manually to pick up the change). Alternatively, cd /opt/app/src && npm run gulp-development can be run manually in the VM to pick up changes to the static files.

Note that if there is an existing build Graph.obj in otp_data, vagrant provisioning in development mode will not attempt to rebuild the graph, but will use the one already present.

Building AMIs

  1. Make a production group_vars file (similarly to how is described above with development). Make sure production is set to true, and also specify an app_username, which should be set to: ubuntu
  2. If building the otp machine, make sure the latest GTFS are in otp_data, then build a graph when them in the development environment provisioning. This will result in a new Graph.obj file being written to otp_data.
  3. In the project directory within the app VM, run: deployment/cac-stack.py create-ami --aws-access-key-id YOUR_ACCESS_KEY --aws-secret-access-key YOUR_SECRET_KEY --aws-role-arn YOUR_ASSUMED_ROLE_ARN
  4. The previous command builds all AMIs. To only build a single AMI, run the same command, but also specify the --machine-type parameter, which may be set to one of: bastion, otp, or app.

Launching AWS Stacks

  1. Copy deployment/default_template.yaml to deployment/default.yaml and edit variables
  2. In the project directory, for a set of Blue stacks in the Production environment, run: deployment/cac-stack.py launch-stacks --stack-type prod --stack-color blue --aws-access-key-id YOUR_ACCESS_KEY --aws-secret-access-key YOUR_SECRET_KEY --aws-role-arn YOUR_ASSUMED_ROLE_ARN
  3. The previous command will do the following:
  • Ensure the VPC stack is up in Production -- it will be launched if it isn't already running
  • Ensure the DataPlane stack is up in Production -- it will be launched if it isn't already running
  • Ensure the OtpServer Blue stack is up in Production -- it will be launched if it isn't already running
  • Ensure the WebServer Blue stack is up in Production -- it will be launched if it isn't already running
  1. Note that database migrations are not automatically run. When the DataPlane is first brought up, it is necessary to manually create the app user/db and run migrations.
  2. Launching a set of Production stacks with the other color (Green), will use the same VPC and DataPlane stacks, but will create different OtpServer and WebServer stacks (if they don't already exist).

Production Blue/Green deployment

  1. Note which color is currently running in production. Use the opposite color in the following steps.
  2. Set otp_host in production group_vars to the CloudFront distribution with the desired color.
  3. Run create_ami command to build new AMIs.
  4. Update default.yaml with new AMI ids.
  5. Run launch_stacks command to launch stacks with the desired color.
  6. Test new stacks thoroughly.
  7. Switch the public DNS record of the site to point to the new WebServer ELB DNS.
  8. The stacks of the previous color may be deleted when ready.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].