All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Numerous changes to the Study Request module including...
- Updated the URL from which ariel-view map tiles are sourced
- Remove Volume ATR from the set of study types that can be requested
- Numerous changes to the Study Request module including...
- A handful of new study types can now be requested:
- Vehicle Classification ATR
- Multi-Modal Count
- Video Observation
- School Crossing Guard Study
- Gap Study
- Study Request statuses and related functionality has been updated in order to...
- clarify what the states mean and how a request can move between them
- make management of the requests more straigtforward for the data collection team
- The layout and functionality of the Study Request form has been reorganized for clarity
- You can now add a study to a request from the form (rather then from the map only)
- Input layout and text were updated to disambiguate requirements and clearly indicate what information is needed for various request types
- A handful of new study types can now be requested:
- Bulk MVCR (Motor Vehicle Collision Report) download has been added to the MOVE app
- Formal distinction drawn between exports and downloads
- Manage Downloads page renamed and restructured as Manage Exports
- UX elements added to clarify export progress and where they can be downloaded from after they are prepared
- Bug report link updated to open an email with a bug report form
- Study Request automated emails updated to reflect accurate request ETAs
- MVCRs (Motor Vehicle Collision Reports) view/download access has been added to Collision Directory Reports
- The speed bucket ranges used to calculate Speed / Volume ATR report statistics are now the same as those indicated in the report itself
- Previews of POIs and centrelines no longer fail to render when the location has multiple streetlights
- Study requests that were linked to updated centreline nodes/segments have been relinked accordingly
- ALL TMC Summary Reports statistics have been updated to conform with their current definitions
- Study requests can now be filtered by those flagged as urgent
- Project / Bulk Study Request aggregate values now correctly reflect their contents after the studies they contain are updated which will resolve a nunmber of reported bugs having to do with the study request search not turning up the expected results
- HTML Reports are no longer truncated at the bottom of the browser window (visual bug)
- Ped delay factors have been updated to their current definitions
- visual bug: map displays when vertical drawer in fully open position
- new release CI/CD milk run
- Update a couple of tests to use
ExpectMatchers
, and fix failures due to new version of dev dataset
studyTypeOther
field now available in Track Requests CSV export, as the "Study Type (Other)" column
- Updated dependencies to latest version after long hiatus due to leave
- Updated developer VM scripts, and made corresponding changes to installation guide
- Ped Delay Summary report!
- Switched over to new
counts2
schema for fetching info on counts / studies
- Triaged TODOs across codebase: cleaned up most of these, and filed several new issues based on remaining TODOs
- Addressed several usability issues in New Request (#962)
- Several usability issues throughout study management flows
- Track Requests bug: non-Data Collection users were seeing all requests on load, instead of only their own
- New Request bug: when adding requests to a new project, "Submit" would break unless the user entered something in "Notes"
- Grouping requests into a new or existing project
- Moving requests between projects
- Removing requests from projects
- Several new REST API endpoints to support above operations
- "Bulk Request" reworded to "Project" in several places
- New Request now a single-page flow that supports:
- both removing and adding studies at locations;
- changing locations of studies;
- requesting multiple studies at the same location;
- adding requested studies to a new or existing project.
- Both single-location and multi-location New Request now use the same flow
- Study request management locations no longer tied to View Data locations
- View Request, Edit Request now support viewing, editing requests with missing or invalid centreline locations
- Usability improvement: can now clear all locations in a multi-location selection
- Report bug:
invage
was always blank (i.e.null
) in Collision Directory reports when exported in CSV format
- Old New Request flow
No changes (except the version number!)
- More contextual help for various collision filters
- Left navbar now includes link to MOVE Help Centre
- School children definition updated to remove time constraints, add active transportation requirement
- Fixed SQL query bug with "MVCR Missing" and "Not Validated" filters
- Fixed SQL query bug with location search queries containing only stopwords (e.g. "and", "the")
- Several small interaction / usability fixes
- Several new collision filters: Vehicle Type, Validated, MVCR, running red light
- New layout for map legend
- Small tweaks to padding in View Map / View Data
- Filter chips now grouped, truncated for collisions and studies
- Definition of school children now includes mode of transport, time of day
- Switched to
maplibre-gl
frommapbox-gl
- "Property Damage" renamed to "Damage to City Property" to more accurately reflect meaning
- Download selected / all for Track Requests
- Ability to filter by date ranges in Track Requests: Date Requested, Date Expected
- Several more report types now use
ReportTimeUtils
, for more flexible / reliable time handling (e.g. for peak hours) - Added a few more keys to
CollisionFilters
, in preparation for upcoming Global Filters work
- Track Requests table now correctly resizes with the browser window
- Sorting disabled for now in View Bulk Request
- Full-text search on Assignee, Status, Type in Track Requests
- Global filters: first end-to-end implementation, including map integration!
- More collision filters
- Track Requests now paginates results
No changes (except the version number!)
- automated REST API documentation with
hapi-swagger
- updated to version 2 of Toronto Centreline
- several report types now include full time ranges in web, PDF, and CSV formats
- addressed issue with corridor routing near trailheads in parks
- fixed bug with study type selection controls in Request Study
- addressed several usability issues based on user feedback
- cancellation email should now be sent when updating status via the table at bottom of View Bulk Request
- Peak Hour Factor report now uses motorized vehicle totals, not overall totals
- Peak Hour Factor reports
- "Other" study types, for use when requesting new studies
- introduced topbar as potential solution to
<h1>
a11y issues, and to provide natural<header>
- several small changes to email notifications, to reduce number of emails sent around bulk requests and improve copy
- Track Requests filters now persist across route changes
- addressed loads of a11y issues: headings, landmarks, semantic markup, screen-reader-only text,
aria-live
notifications, various issues identified through axe - several small fixes to study request management: status changes are now much more flexible
- small fix to CSV export in Track Requests, to address non-ASCII characters in locations
- AADT volume layer is now hidden in frontend
- no longer attempting to send emails to non-
@toronto.ca
addresses in test environments
- CSV format for Collision Directory report now matches format of web / PDF reports
- improvements to conflation of collisions and counts against centreline
- day of week for count / study dates throughout interface
- better email notifications around study requests
- warrant report logic as per conversations, feedback with staff and management
- bug in text entry of dates in date picker
- bug in location fetching in Track Requests
- bug in Client, Study Type columns of requests CSV export
- bug in TMC reports for offset intersections
- topbar returns to local, dev, and QA environments, now with "go to prod" button
- studies layer now shows grey circles where there are studies, but none of them match current time range
- collisions layers now use layer filters on 10-year tiles, instead of separate sources
- bug in Oracle Infinity analytics where we were using the dev / QA DCS ID in production
- bug in collision popups related to
collision_id
drift between whencollisions
data was updated (nightly) and when vector tiles were generated (weekly)
No changes (except the version number!)
- bug in certain TMC reports, caused by new centreline update that increases coordinate precision in midblocks but not intersections
- help center link in left navbar (to be provided on intranet page instead)
Content-Security-Policy
header for added security around static resourcestcs:
special keyword for signal search in location search bar- users can now access MOVE Help Centre
- MOVE web services are now run as application-specific "service user"
- Collision and study filters now use date range instead of 1 / 3 / 5 / 10 year selection
- CSV export from Track Requests changed to meet Data Collection needs
- MOVE now uses ISO 8601
YYYY-MM-DD
date format - Session timeouts reduced, and set to expire after given period of inactivity (rather than total time since start-of-session)
- small bug in CodeCommit script, which caused it to fail for non-dev environments
- downloaded report filenames now much more informative and user-friendly
- users can now adjust intersection type and road width on signal warrants
- unneeded dependencies
- security headers (these are managed by Cloud Services-supplied
nginx
configuration) - "in beta" top bar (relevant in-app actions have been moved to left navbar)
- several configuration changes in preparation for security audit
- improved report content and layout
- locations and count dates in both web and PDF formats for printed reports
- #666: fixed directional totals bug with 3-way intersections
- #654: Poplar Plains now searchable in location search bar
- #539: midblocks now have more readable / informative names
- #455: report date dropdown, map bottom-right controls, and map legend no longer conflict on 1280x720 screens
- Bulk request management actions in Track Requests
- "In development" top bar changed for beta launch, added "Report a Bug"
- Hide collisions layer for certain flows (e.g. Request Study, Edit Locations) to reduce visual clutter and make selection easier
- Proper request selection in Track Requests
- Lots of a11y, usability, and other minor fixes
- ETL scripts (these are now in
bdit_move_etl
) STUDY_REQUESTS_EDIT
user authentication scope: useSTUDY_REQUESTS
instead to get view / create / edit permissions
- Bulk request support in Track Requests
- View and edit bulk requests
- Show pending bulk requests in View Data
- View Reports multi-location support
- Wizard for bulk study requests
- Updated AWS environment configuration to complete QA environment setup
- File storage layer with filesystem support (S3 support to come later!)
- Backend implementation of report generation job
BackendClient
is now isomorphic, and can be used to make HTTP calls between MOVE backend services
- MOVE Scheduler: a new backend service for managing background jobs such as bulk report generation
- Run multiple instances of MOVE Reporter in AWS environments
- Configurable port for MOVE Reporter
- Analytics tracking through City of Toronto Oracle Infinity account
- Multi-location support in View Data
- Several REST API endpoints now support multi-location queries
- "In development" message bar at top
- Support for Edge
- Search by traffic signal control (TSC / PX) number in location search, e.g. "signal:1234" or "px:1234"
- Search by arterycode number in location search, e.g. "artery:5678"
- Map and location selection interactions for multi-location
- Corridor routing between selected locations
- Empty datasets no longer crash 24-hour detailed and summary reports
- Fixed cross-tabulations in collision reports to include null values and truncate properly
- Improve side-nav behaviour, especially when navigating to View Request
- Make location search bar clearable
- Improve validation states on urgent fields in Request Study
- FLOW reports now use multi-day, multi-direction studies instead of single-day, single-direction counts
- FLOW reports now show useful report-specific summary statistics at top, as opposed to generic metadata
- Collision directory report
- Collision tabulation report
- Collision summary now has separate section within View Data
- Total number next to Studies is now unfiltered, to match collisions
- Collision filtering: emphasis areas, date range, days of week, hours of day, weather
- Collision summary now includes both filtered and unfiltered totals, as well as filtered number of validated collisions
- Stub for collision reports (coming soon!)
- Counts no longer disappear and re-appear as users zoom on the map
- Volume layer and legend icon updated to use turquoise tritone scale with variable line width
- Non-supervisor users now have "User" filter selected automatically in Track Requests
- Users can no longer deselect shortcut chips in Track Requests by clicking on them again
- Study requests now only contain a single study
- Reorganized Request Study and View Request to reflect designs
- Management actions for requests in View Request and Track Requests
- Fulfillment status bar in View Request: shows history of request status
- Search / filter for requests in Track Requests
- Location search bar now preserves query across pages
- Location search now handles typos / approximate matches
- Role-based access control / permissions model
- Admin UI to manage user permissions
isSupervisor
mode for Track Requests (replaced by new permissions model)
- Sitewide navigation improvements
- Increased test coverage target to 60%
- CHANGELOG entries for MOVE versions 0.3.0+ now have correct release dates
- Map layer styles updated for greater visibility / contrast
- Map text labels added in Aerial mode
- AADT volume layer based on 2018 estimates
- 1, 3, 5, 10-year layers for collisions and counts
- Map legend with time range selection and layer toggle controls
- Points of interest: hospitals
- Colour contrast now WCAG 2.0 AA compliant
- Several fixes to map navigation, popups, and drawer integration
- MOVE icon now links to View Map page
- Data pipelines are now zero-downtime
- Initial a11y sweep (except for colour contrast, coming soon!)
- Updated ADFS config to use Cloud Services sandbox instance in AWS
- Domain-aware configuration on AWS
- Revamped frontend based on Material Design / Vuetify
- Changed CSS preprocessor from PostCSS to SASS
- Integration with QA and sandbox ADFS environments
- More robust tools for study request management
- Additional validation on several REST API endpoints
- Dropped old "stub" login flow
- Dropped Edge support (for now)
- Fix performance issues relating to vector tile loading in MOVE
- Info box on map now shows info for collisions and schools
- MOVE application layout changed to drawer / map
- Moved some dynamic vector tile generation over to pre-generated tiles in Airflow
- Updated map layers to reflect pre-generated vs. dynamic tiles
- Track Requests buttons, bulk actions, and layout changed to reflect latest design mocks
- Commenting for study requests
- CSV export in Track Requests now lists one line per study
- Moved info box on map to top-left
- Edit request priority and assign to staff / contractor in Supervisor view of Track Requests
- Dynamic generation of counts, collisions, and schools vector tiles
- Zoomed-out heatmap of collisions
- MOVE is now open source!
- Deployment scripts for MOVE now include system-level package dependencies
- Track Requests table now includes name of requester
- Update and delete study requests in Track Requests
- Search functionality for Track Requests
- Supervisor view for Track Requests
- CSV export for Track Requests
- ETL job to fetch GIS layers from City of Toronto ArcGIS server
- Ported @aharpalaniTO's geocoding script for traffic count locations to Airflow
- Fix timezone handling from PostgreSQL to web application server to frontend
- Fix timezone handling in datepicker
- Fix CSV report generation bug in MOVE Reporter
- Moved from
us-east-1
AWS region toca-central-1
- Reports now include comments and day of week
- PDF generation for 24-hour graphical report, backed by same JSON layouts used for web reports
- Fix disk full errors on ETL tier by periodically cleaning up old Airflow logs
- Fix several copy and interaction issues from usability testing
- Fix issue where users could not distinguish volume counts in different directions
- Web reports now use JSON layout configuration
- 15-minute detailed report for Turning Movement Counts
- Detailed 24-hour report
- 24-hour count summary report
- MOVE Reporter now accepts user-supplied parameters for reports
- First implementation of Traffic Signal Control Warrant report
- Fix bug with date dropdown in report-viewing modal
- Reorganized codebase into
lib
andweb
folders
- Report regression tests that match MOVE Reporter output against output of legacy systems
webpack-bundle-analyzer
integration in development, to help monitor bundle sizes over time
- MOVE Reporter introduced as new backend service for generating CSV, JSON, and PDF reports
- CSV and JSON versions of several high-priority reports added
- Triage backlog of usability feedback from Code for Canada fellowship
- Email notifications now use AWS SES
- Irrelevant study types now hidden from traffic volume count table
- Web application backend code now in ES6 module format using
esm
- Expanded database and REST API testing coverage
- Now sharing constants between frontend and backend
- Map
/roadmap
to MOVE roadmap in application
- Fix usability issues from testing
- Search for signals and pedestrian crossings by ID number (thanks @chelsrosic!)
- Database testing harness using in-memory filesystem
- Fix several browser issues in Firefox, Edge
- Development VM now based off image in Vagrant Cloud
- Map now includes informational popups when clicking on features
- MOVE application now mounted at
/
instead of/flashcrow
- Unit testing and coverage metrics
- Auto-generated JSDoc documentation
- Save study requests to database
- Send email notification when study request submitted
- Web-only implementation of 24-hour volume and speed percentile summary reports
- Initial version of collision data normalization and geocoding ETL job
- Remove Cypress, which was never used and which added significantly to
npm install
times
- Request Study flow revamped to match designs
- Generated centreline vector tiles for map via Airflow ETL job
- Map shows actual traffic counts (thanks to @chelsrosic!)
- Mock version of Login
- Mock version of Track Requests
- Input validation for Request Study flow
- Web-only implementation of Turning Movement Count report
- Updated README to include Vagrant setup instructions for better dev onboarding
- Introduce Airflow to manage ETL jobs
- Create jobs to geocode traffic volume data and generate development / testing datasets
- Addressed several usability concerns from testing of first prototype
- Data request process updated to reflect designs for second prototype
- Initial work on standard app-wide components
- Fix an intermittent bug when working with large files in replication by removing
tar
dependency
- Now replicating traffic volume and collision data to AWS PostgreSQL RDS
- Low fidelity prototype of data request process
- Confirmation modal to complete end-to-end flow
- Small copy and sorting changes from usability feedback
- Fix Rest API tests so they could run under the current OpenID Connect authentication setup
- Initial implementation of the front end and map with controls for the demo app
- ESRI map tiles and City aerial imagery for basemaps
- Navigation, zoom, search and sidebar layout for application