Skip to content

Latest commit

 

History

History
143 lines (111 loc) · 7.91 KB

dev-notes.md

File metadata and controls

143 lines (111 loc) · 7.91 KB

Development Notes: COVID-19-Watch.com

Continuous Development

Follow these steps to get the app up-and-running after a fresh clone

  1. npm ci Installs dependencies exactly according to the package-lock.json
  2. ng serve opens the app locally

Deployment

  1. npm run build-pack will update the dist/ and docs/ folders. The docs/ folder is what GitHub Pages deploys once pushed to the main branch.

Sources & References

Analysis Documentation

County map layer with size reduction (7.8 MB > 2.2 MB) process:

  1. Pull Esri's "USA Counties (Generalized)" from the Living Atlas
  2. Fix the layer's geometry by importing & exporting from GRASS via QGIS, then running QGIS's "Fix geometries" tool
  3. Dissolve based on FIPS to turn the resulting Polygon layer back into a MultiPolygon
  4. Export as GeoJSON with only Name, FIPS, and POPULATION; set coordinate precision to 2

Timeline / TO DO

2023 Archival Project

Goal is to have an LTR-style static-site to act as a historical record. - Done!

  • Give the title of the app an HREF to the original URL
  • Update the "Share or Bookmark" feature to include the date as well
  • 2023-08-13 Next steps: Update app to always use the "historical" verbiage on the "latest" time-stop. Update the About page language to reflect the updates, i.e. that it used to update daily but doesn't anymore, current version is archival, etc.
  • 2023-08-08 Generate smaller COVID data package for archival version of app.
  • 2023-04-15 A 2023 data package has been downloaded to covid-data-2023-04-09.json, need to host a static archival build somewhere like GitHub Pages. Will need to add some kind of "archived" banner and maybe change some wording. I may also want to back up the data a bit since I probably don't need all the way up through 2023.

Maintenance

To Do:

  • [follow-through] Add an About page with details on the data and "how-to" sections for directions (currently in progress) / Robust in-app documentation (about, links, data source, disclaimers, resources, etc)
  • [functional] Implement nearest-neighbor match-finding for search results so that coastal searches work better
  • [-] [debugging/functional] Utah is not displaying correctly due to their reporting at the "Local Health Departments" enumeration unit instead of by county: CSSEGISandData/COVID-19#2570 and county-mapping: https://utah.maps.arcgis.com/home/item.html?id=110d43fbfacc411b8e74f4d12b63d881 (OBE. Previous progress: Counties aggregated in GeoJSON. TODO: Update Diego's workflow to aggregate each health district's numbers with its respective counties; I can use the pictures I took for the FIPS mapping.)
  • [functional] Add easier way to see the USA status report
  • [efficiency/sharing] Implement server-side rendering (SSR) using Angular Universal to improve mobile load time and improve search engine optimization (SEO)
  • [sharing] Implement different meta tags for share links (title, description, og:image, etc)
  • [functional] Add option to display deaths in the map
  • [functional] Add support for Puerto Rico
  • [efficiency] Add lazy loading for historical COVID-19 data and UI to support
  • [functional] Add zoom-to-extent button
  • [design] Improve mobile design (scroll over map instead of slide-in)
  • [debugging] Ensure cross-browser compatibility & stress testing
  • [functional] Provide the option to automatically acquire the user's location using their device's location service
  • [functional] Make the app more accessible so people with disabilities can use it well too
  • [functional] Make temporal animation more efficient
  • [functional] Explore options for further improving performance and load times

Class Timeline

  • Week 1 (6/15 - 6/21)

    • Initialize GitHub Repository
    • Architect source code for the server and application
    • Initialize Heroku Project and GitHub deployment integration
    • [Deliverable] Plan, record, post, and deliver elevator pitch
  • Week 2 (6/22 - 6/28)

    • Write server code to pull, aggregate, and geo-enable COVID-19 data from Johns Hopkins for use in the front-end
    • Brainstorm & create wireframe mock-ups using responsive design best-practices to account for varying screen sizes
    • [Deliverable] Write and deliver Status Report #1
  • Week 3 (6/29 - 7/5)

    • Write front-end code to display COVID-19 data [<-Done] using a time-slider and animation controls
      • Display COVID-19 data
      • Historical data with time-slider
      • Animation controls for historical data
    • Create non-functioning UI for location search, share sheet / URL scheme, and maybe chart graphics
    • Publish live Beta #1
    • [Deliverable] Write and deliver user-testing guide utilizing Live Beta #1
  • Week 4 (7/6 - 7/12)

    • Solicit feedback on the live Beta #1 from mentors and peers
    • Build functionality for location search [<-Done], share sheet / URL scheme, and chart graphics
      • Be able to search for locations
      • Build URL scheme & add share sheet
      • Add chart graphics
    • Update application to address feedback from Beta #1
      • Review all feedback received, pick feedback to address, create actionable tasks, triage
      • (triaged feedback)
    • [Deliverable] Write and deliver Status Report #2
  • Week 5 (7/13 - 7/19)

    • Architect database to store COVID-19 data
    • Automate data calls to update the database daily
    • Re-route data pulls to come from the database
    • Conduct bug review
  • Week 6 (7/20 - 7/26)

    • Conduct UX, UI, & responsive design review
    • Conduct cross-browser compatibility review
    • Add "about", tutorial, data source, and disclaimer information
    • Publish Beta #2
    • Solicit feedback for Beta #2 from mentors, peers, and additional testers
    • [Deliverable] Write and deliver Status Report #3
  • Week 7 (7/27 - 8/2)

    • Update application to address feedback from Beta #2
    • Conduct final UX, UI, & responsive design review
    • Conduct final bug review
    • Conduct final cross-browser compatibility review
  • Week 8 (8/3 - 8/9)

    • Launch final application with custom URL and paid Heroku tier for performance
    • [Deliverable] Plan, record, post, and deliver final video demo & application URL
    • [Deliverable] Write and deliver Status Report #4
  • Week 9 (8/10 - 8/16)

    • [Deliverable] Write & deliver executive report
    • Socialize & advertize the application publicly
  • Additional Tasks (scope creep) Week 8

    • Teach Diego to differentiate "zero" (0) values between "has never had a new case", "back to no new cases", and the magnitude of "back to no new cases" (e.g. "no new cases in x weeks")
    • Add death and recovery statistics
    • Add state-level aggregations and borders
    • Add national aggregation
  • Additional tasks pre-final-demo 2020-08-06 - 2020-08-09

    • [functional] State & National data integrated
    • [functional] Time-enable status reports
    • [design] Improve UI (organize UI, add a "find a status report" type section)
    • [follow-through] Get mentor/peer feedback
    • [design/debugging] Ensure mobile-friendliness
    • [functional] Death & Recovery integration
    • [functional] Validate all aggregations (do manual math against origin CSVs, document process and findings)