Follow these steps to get the app up-and-running after a fresh clone
npm ci
Installs dependencies exactly according to thepackage-lock.json
ng serve
opens the app locally
- Port 4200 is default: http://localhost:4200, but can be changed like
ng s --port 4201
npm run build-pack
will update thedist/
anddocs/
folders. Thedocs/
folder is what GitHub Pages deploys once pushed to themain
branch.
- COVID-19 Data: Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE)
- *COVID-19 rate & acceleration are calculated from this data
- Image of COVID-19: U.S. Centers for Disease Control (CDC)
- USA Counties Map Layer & Population: Esri
- Florida Dashboard
County map layer with size reduction (7.8 MB > 2.2 MB) process:
- Pull Esri's "USA Counties (Generalized)" from the Living Atlas
- Fix the layer's geometry by importing & exporting from GRASS via QGIS, then running QGIS's "Fix geometries" tool
- Dissolve based on FIPS to turn the resulting Polygon layer back into a MultiPolygon
- Export as GeoJSON with only Name, FIPS, and POPULATION; set coordinate precision to 2
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.
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
-
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
- Write front-end code to display COVID-19 data [<-Done] using a time-slider and animation controls
-
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
- Teach Diego to differentiate "zero" (
-
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)