MOVE is a data platform for viewing, requesting, and analyzing data related to City of Toronto rights-of-way. This includes:
- CRASH collision data;
- FLOW counts;
- other types of counts not previously captured in FLOW;
- GCC centreline data.
To contact the MOVE team:
If... | Contact: | Who? |
---|---|---|
You have a question about development, deployment, security, or other technical aspects of MOVE's web application | Web Application Developer | 404 Not Found |
You have a question about development, deployment, security, or other technical aspects of MOVE's data infrastructure | Civic Data Engineer | Peter Lyons |
You have a question related to MOVE user testing, upcoming launches, or roadmaps | Product Manager | Maddy Ewins |
Your question isn't captured above, or you're not sure who to contact | Team Inbox | MOVE Team |
We will try to respond to any questions within 48 hours. However, given the small size of our team, please understand if it takes us a bit longer to respond sometimes.
See the MOVE Developer Handbook. This guide will help you:
- request the necessary permissions from City of Toronto IT and the Big Data Innovation Team;
- install MOVE prerequisites on your City of Toronto computer;
- configure and run MOVE inside a virtual machine using Vagrant;
- understand team practices around communication, source control, code editing, and code style.
Working on MOVE development? Help improve our documentation! If you come across something you'd like to see documented, first submit a bug report with the documentation label.
Once the bug report has been submitted, you can either submit a pull request, or assign it to whoever's best suited to follow up.
This repository consists of:
lib
: libraries used throughout MOVE;reporter
: MOVE Reporter, which provides a RESTful API to fetch data-driven reports in various formats;scheduler
: MOVE Scheduler, which provides a RESTful API to create and monitor background jobs such as bulk report generation;web
: the MOVE web application;web/main.js
: entry point to the MOVE web frontend, written as an SPA (Single-Page Application) using Vue.js;web/web.js
: the MOVE web backend, which provides a REST API layer to access data from PostgreSQL and City of Toronto geospatial REST services;
scripts
: development, deployment, and automation scripts;tests
: tests.
These scripts are listed in package.json, as per the npm-run-script
documentation.
backend
: runs the REST API server atweb/web.js
on port 8100;backend:inspect
: runsweb/web.js
, but also opens debugging on port 9100;backend:inspect-brk
: likebackend:inspect
, but waits for a debugger to attach before running (in case you need to debug something that happens during startup);backend:test-api
: runsweb/web.js
in headless testing mode on port 8080, for use during REST API tests;
ci:jest-coverage
: run alljest
tests and compute coverage;ci:npm-audit
: runnpm audit
to scan for known vulnerabilities in ournpm
dependencies;ci:npm-outdated
: runnpm outdated
to scan for outdated dependency versions;ci:test-unit
: run unitjest
tests, as required for our CodeBuild pipeline;
frontend
: runswebpack-dev-server
to serve frontend static resources on port 8080, with hot-reloading for changes, and withwebpack-bundle-analyzer
running on port 9080;frontend:build
: builds a production-ready version of our frontend static resources;
pre-commit:lint-staged
: run linters on any files changed in the current commit;pre-commit:test-unit-staged
: run unit tests for any files changed since latestmaster
.
reporter
: runs the REST API server atreporter/reporter.js
on port 8200;reporter:inspect
: runsreporter/reporter.js
, but also opens debugging on port 9200;reporter:inspect-brk
: likereporter:inspect
, but waits for a debugger to attach before running (in case you need to debug something that happens during startup);reporter:test-api
: runsreporter/reporter.js
in testing mode on port 8200, for use during REST API tests;
scheduler
: runs the REST API server atscheduler/scheduler.js
on port 8300;scheduler:inspect
: runsscheduler/scheduler.js
, but also opens debugging on port 9300;scheduler:inspect-brk
: likescheduler:inspect
, but waits for a debugger to attach before running (in case you need to debug something that happens during startup);scheduler:test-api
: runsscheduler/scheduler.js
in testing mode on port 8300, for use during REST API tests;
test:db-shutdown
: tears down in-memory MOVE database testing harness;test:db-startup
: starts an in-memory MOVE database testing harness;test:test-api
: runs all REST API tests;test:test-db
: runs all DAO tests;test:test-unit
: runs all unit tests;
Note that test:db-startup
must be run before test:test-api
or test:test-db
, as those tests depend on the MOVE database testing harness being operational.
This web application was originally generated from the following Vue CLI preset:
{
"useConfigFiles": true,
"plugins": {
"@vue/cli-plugin-babel": {},
"@vue/cli-plugin-eslint": {
"config": "airbnb",
"lintOn": [
"save",
"commit"
]
},
"@vue/cli-plugin-unit-jest": {},
},
"router": true,
"routerHistoryMode": true,
"vuex": true,
"cssPreprocessor": "sass"
}
For more information on configuring Vue CLI-based projects, see the Vue CLI Configuration Reference.
These files configure some of the various tools used in MOVE:
.editorconfig
: enforces simple code conventions for all VSCode users;.eslintrc.js
: ESLint rules for style-checking JavaScript;.gitignore
: files ignored duringgit
operations;.gitlab-ci.yml
: GitLab CI / CD configuration;.ncurc.json
:npm-check-updates
configuration, used during release to ensure all dependencies are either up-to-date or explicitly recorded as exceptions;.nvmrc
: target version of node.js;.stylelintrc
:stylelint
rules for style-checking CSS / SASS frontend styles;appspec.yml
: used in conjunction withdeploy_scripts
for AWS CodeDeploy-managed deployments of MOVE;audit-resolve.json
: generated bycheck-audit
, used during release to ensure MOVE is free ofnpm audit
-identified vulnerabilities, other than those explicitly recorded here as temporary exceptions (e.g. if a dependency cannot yet be updated to resolve a vulnerability);babel.config.js
: Babel configuration for transpiling JavaScript;bdit-flashcrow.code-workspace
: VSCode workspace configuration;jest.config.js
: Jest configuration for unit, database, and REST API tests;LICENSE
: open-source license that MOVE is released under;package.json
:npm
package configuration and dependencies;vue.config.js
: Vue project configuration, including webpack configuration forwebpack-dev-server
in development.