SpeedUpAmerica - Tickets
This document outlines work that needs to be done and their matching tickets in GitHub Issues. The work outline in this document are mission critical and will receive story points. Each section is a high level objective and will contain work broken down in to bite sized checks of work we can put in GitHub issues.


Priorities (2019-07-07)
  1. Vector Tilesets and adding Washington State.
  1. Improve UX of data exploration
  1. Rewrite Frontend
  1. Narrow result set based on viewport bounding box + buffer
  1. GIS Service & Census Blocks

Maintenance work on v1 (current solution)

  • Decide what centralized logging system to use
  • Feed CloudWatch logs into centralized logging system
  • Ensure we have a dashboard showing Golden Signals
  • Add “Data Source” filter capabilities to both the Map and Explore the Data. Default will be “All”. Drop down filter list options to include M-Lab, SpeedUpAmerica, TestIt et all.
  • Change the word Megabyte to Megabit. (0.5P)
  • Upgrade Rails to 5.2 (3 SP)
  • Upgrade Rails to 6.0 (2 SP)

Vector tilesets & additional states

  • Investigate and recommend a JSON data structure that supports easy joining of aggregated submissions on to vector tilesets
  • Create vector tileset for Oregon ZCTAs, and store key files in public S3 bucket (1SP)
  • Update v1 Mapbox GL JS map to use vector tilsets and join new group by endpoint data on to it (3SP)
  • Update vector tilesets (Zip and Census Tracts) to include Washington and Idaho (2SP)
  • Load Washington and Idaho boundaries into census_boundaries and zip_boundaries tables and update data import process to include the FIPS codes for these states
  • Delete and Reload M-Lab data for last 13 months so that we have Oregon, Washington, and Idaho cleanly loaded (0.5SP) @Ryan O

Contact improvements

  • What types of ZenDesk tickets do we want to create and who (groups?) gets an email? Question & Problem
  • Create endpoint that takes a POST and create a ticket (2SP)

Service rewrite

  • Decide what language/platform to use for BFF → Node.js
  • Decide if we will use traditional pages or SPA → Traditional
  • Create new service repo and create basic setup
  • Implement database client (must support connection retry and pooling)
  • Implement HTTP service, router, and request logging (/ should be empty page)
  • Make sure the dev/test (non-prod) environment have  robots.txt denys all and noindex meta tags
  • Send non-dev env application and request logs to Loggly
  • Setup CodePipeline for deployments, and ECS services for Test env
  • Implement root layout file to use for all HTML pages
  • Decide what endpoints we need to implement and define tickets
  • Decide what views/pages we need and define tickets
  • Add pages and endpoints (placeholder for a lot of tickets/work)
  • Get V2 at feature parity with V1 (placeholder for a lot of tickets/work)
  • Once endpoints and pages are implemented, setup Producation ECS and and CodePipeline deployment
  • Make sure that production has allow robot.txt and doesn’t have noindex meta tags (Test must still have deny and noindex otherwise it will show up on search engines)
  • Switch DNS for site to use V2 application
  • Start rewrite on all data import and processing related rake tasks (placeholder for a lot of tickets/work)

Endpoints

  • TODO

Views/pages

  • TODO

  • Add “State” filter capabilities to Map, with default being the state the visitor is coming from.
  • Add “Internet service satisfaction” filter capabilities as seen on speedupsanjose.com

GIS extension & additional boundaries

  • Add new geometry column and use a migration to convert WKT strings in existing column to the new column. Update data loading scripts to use new column. @Ryan O
  • Write and deploy a migration that adds a new point column to submissions. Update and deploy change to frontend that writes point data to both lat+long and the new point column. Write and deploy a 2nd migration that that converts existing lat+lng fields into new point column. @Ryan O
  • Load Census Blocks into GIS service, will likely require additional work optimizing point-in-polygon lookups @Ryan O
  • Create vector tileset of Census Blocks for Oregon, Washington, and Idaho @Ryan O
  • Update maps to handle the additional boundary and backfill submissions table with Census Blocks @Ryan O
  • Update Frontend V2 to use point-in-ploygon looks using new columns to set Zip and Census Tracts. @Ryan O