Giter Club home page Giter Club logo

get-tested-covid19's People

Contributors

burtonye avatar codingapps avatar dependabot[bot] avatar j0b0sapi3n avatar kevingenus avatar naimoon6450 avatar ngabuaeva avatar patrickpierson avatar sbonifas avatar snyk-bot avatar sumanagr13 avatar tani314 avatar tiagojsalmeida avatar zboldyga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

get-tested-covid19's Issues

New Resource Sub-Page: When Should You Get Tested

This is one of two resource pages that we would like to get live as soon as possible. To keep things simple we want to replicate the look and feel of the main resource page - https://get-tested-covid19.org/resources.

Content for page: https://docs.google.com/document/d/1Er5dy_l96MzD5pBcY1m_8MpFQTpec6eOh5LMUoTMQyE/edit?usp=sharing

This page should be found as a drop-down from resources in the Nav and listed first after the main resources page that is already live

The background should be the same as the current resource page.
Same fonts as current resource page
For content styling -
Title and subtitles should be white
Title - When and Why You Should Get Tested for COVID-19? - h1
Bolded subtitles should be - h4
All linked sources should bold when hovered on and be green - #79e279
Content spacing should mimic the google doc.

SEO content to be added:
Meta title: When Should You Get Tested for COVID-19? | Get Tested COVID-19
Meta description: All the information you need to decide if and when you should get tested for COVID-19 including symptom and prescreening requirements.

Homepage: link enter keystroke to search

Right now, typing the 'Enter' key on the homepage doesn't trigger the search field. The search can only be triggered by clicking the button with your mouse (at least in Chrome).

It would be great to have the Enter key automatically trigger the search if a valid zip code is entered into the search text box. Would also be good to ensure this works cross-browsers.

Due Tuesday: Map should remain fixed while scrolling

To address this issue, you'll need the spec for our homepage, which is in pivotaltracker.com . Locate the UX redesign issue; the specs are in there.

On the homepage, the map should remain fixed while scrolling, so that it's always visible when users are scrolling down the screen.

Refer to Tejal for clarification (in Slack).

meta titles in React SPA

We are using https://www.npmjs.com/package/react-document-meta to insert meta titles into each page. This is done using javascript. A crawler without js enabled would not see the meta titles / description, which may impact search results.

Does anyone know if crawlers like Google will pick up meta titles that are dynamically inserted like this?

Or do we need to server-side render, or something along those lines?

Scraper / crawler / UIPath Bot, Automating site data collection

To date, our list of test sites has been created entirely thru form submissions in our Google Form on the website. As the number of test centers grows, this is quickly becoming unrealistic.

We can explore using crawlers to automatically scrape web pages. There are a couple of areas this can be useful:

  1. Discovering new sources of information (websites or specific URLs) that might be good places for humans to look for test centers and any COVID19-related resources.
    -- In other words, scraping pages and building a database of pages that have keyword matches / have relevance to our project. This set of links can then be used for further scraping, or just manually examined by people on our team.

  2. Discovering new test centers. Scraping pages and showing when there might be a new test center that is not in our existing list of test centers.

  3. Filling-in up-to-date information about test centers. The columns that we are currently collecting for each test center are shown in the attached spreadsheet. We probably won't find all of this information for each test center. An automated bot might speed up this process a lot for new test centers that are found.
    Scraper Template.xlsx . Note: in the attachment, timestamp is just the time that the test center is added to our list - this field can be ignored.

www subdomain DNS routing

www subdomain doesn't work. This might have been fixed recently (waiting for DNS A record to propagate). If not fixed, this should be resolved.

Fonts on homepage don't match Tejal's spec

To address this issue, you'll need the spec for our homepage, which is in pivotaltracker.com . Locate the UX redesign issue; the specs are in there.

The font's Tejal used in the UX design differ in various ways:

  • She might be using a completely different font
  • The colors of font throughout the page might be slightly different in her design
  • The size of fonts is slightly different throughout the page
  • The line spacing of fonts might be different

If in doubt, compare against the design by eye, and ask Tejal (in Slack). When finished, the fonts should look exactly the same as her design.

Navbar style fix

To address this issue, you'll need the spec for our homepage, which is in pivotaltracker.com . Locate the UX redesign issue; the specs are in there.

The upper navigation bar should look exactly like Tejal's UX design. Bare in mind that there are both full screen and mobile views.

Currently, there are a number of issues. Alignment of the right-hand items. Lack of underline on the current page's tab. There's also no separating line below the navbar.

Refer to Tejal for any questions (in Slack).

Master doesn't actually deploy maser

Master branch doesn't update on htps://get-tested-covid19.org
The master branch isn't updating the production site. The task definition references latest but latest isn't updated via the circleci build.

Move DNS to AWS

We need to move the DNS to AWS to better enable AWS features for various services used by the infrastructure.

Infra deployment

  • Diagram of CI pipeline
  • Diagram of docker infrastructure on aws
  • Staging branch should deploy via CircleCI to staging env
  • Master branch should deploy via CircleCI to prod env

Homepage text adjustment

A request from Katherine on our team:

Homepage text should say

We have created a database of COVID-19 testing centers across the US. Please enter your zip code to find a location near you.

The primary’s difference being changing from a “community center” which isn’t necessarily what they all are / it’s about the covid test. Here's a screenshot Katherine on our team took w/ iPhone to show the content she's referring to.

Image from iOS

Test Center List Items: Cards are missing important data

Test center list item cards are missing data in our dataset, including: whether an appointment is required Y/N. Doctor screening. Drive-thru. Walk-up site.

This is related to #9 , but more-focused on content that can be added directly to the cards, and not a modal / separate page.

Add SSRing

Enable server-side rendering with React.

ALB logs are not enabled

To better identity issues ALB logs should be enabled. They should log to a logging bucket in the AWS account.

Terraform fails to run on master do to ECR

Terraform fails to run on master do to the fargate module tries to create an ECR repo of the same name as dev due to terraform.workspace being used.

aws_route53_record.www: Still creating... [20s elapsed]
aws_route53_record.www: Still creating... [30s elapsed]
aws_route53_record.www: Creation complete after 37s [id=Z0805372RGZMLZDPFNEH_get-tested-covid19.org_A]

Error: error creating ECR repository: RepositoryAlreadyExistsException: The repository with name 'webserver-default' already exists in the registry with id '496778160066'

  on .terraform/modules/fargate/terraform-aws-fargate-0.17.0/main.tf line 87, in resource "aws_ecr_repository" "this":
  87: resource "aws_ecr_repository" "this" {

Fargate service doesn't scale properly

Fargate service isn't scaling to handle load
Fargate webserver service is set up to scale based on the metric ECSServiceAverageCPUUtilization at 60

Possible resolution
Fargate webserver service should scale up and down based on "Request Count Per Target" at the ALB.

ALB doesn't redirect 80 to 443

The ALB does not redirect 80 for 443. Prod has it manually in place to forward 80 to 443. Terraform should be written to set up the 80 to 443 redirect.

Real-time test site information

I'm not sure if the data sources for this exist, but it might be valuable to include more real-time data for test sites. For liability purposes, we should carefully consider this before adding real-time information. Info could include:

  • A live camera feed showing the current site operations (how busy is it?)
  • We could potentially integrate with software providers at sites to give realtime data on test availability / processing rates?
  • We might consider create a Google Form where test site managers can update information about their site, e.g. current test capacity, changes in protocol, messages to potential visitors.

If you have ideas or want to contribute in this area, comment below!

when cache expires, update app to leverage new CORS-enabled Cloud Storage file.

The directory of test sites (testSites.json) has been moved to a GCP Cloud Storage bucket, served as a static file with a short cache lifetime and CORS settings. This is loading into the application, but is not being used as the primary data source yet.

I will switch the app to use this external file tomorrow morning. Some users will have a cached header, so if I switch to the external file now their app will fail.

Get CircleCi to build and push docker images

Docker Hub currently builds the docker images but its slow and now staging doesn't actually deploy the docker image for staging.

CircleCI should build the image and deploy it to Docker Hub

Docker image doesn't generate logs properly

Right now the docker image shows that the webserver starts but no logs are generated after that.

  1. Build the docker image.
  2. Start the image.
  3. You see
Server up and running on http://localhost:3000/

But nothing after it.

CRM for tracking outreach

Implement a basic CRM so we can track significant inbound & outbound communications to people and organizations.

  • Rackspace account manager
  • Lab points of contact
  • Testing equipment manufacturers (e.g. Abbott)
  • Government entities
  • Medical software companies
  • Personnel affiliated with any pop-up testing centers
  • Potential corporate sponsorships or partnerships
    etc.

Analytics for test site planning/logistics

This is a new mini-project that could be very valuable to communities that are trying to organize new test centers, or manage existing test centers. We are seeking one or more people to explore this initiative, and organize further efforts if it seems fruitful.

The motivation for this mini-project is that there is lots of COVID-19-related data that can be analyzed, which might yield useful insights to the medical/governmental communities.

Potential data sets:

Potential problems that can be solved:

  • Helping determine optimal locations for testing centers in various communities.
  • Help labs understand the trends in their communities, so they can prepare to provide tests to potential test centers.
  • Help governmental agencies better track the efficacy and challenges of test centers, to help them develop a set of best-practices.

Community Effort Resource Page

A new page to highlight other COVID-19 community-led efforts. A few examples include:
https://covidaccelerator.com/
https://www.courageundercovid.com/
https://www.data-against-covid.org/
https://helpwithcovid.com/ - pull from top list of projects

We can also use the group of volunteers to help crowdsource this list some more in slack. The goal would be to link to the sites and post a short description of the project. It would also be good to reach out to the project owners and see if they would do the same for our project.

Page: Resources for creating a test center

We should assemble a page with resources for test centers. Before any development work is required, we need to create content. Katherine, Tarryn, and Zach will handle the content creation.

We will explore including the following information:

  • Link to LIS/LIMS system that offers help to COVID-19

  • Up-to-date information on current testing. This includes:
    -- Which labs are offering testing services, and what capacities they are operating at.
    -- What types of tests currently exist (e.g. machinery or mechanisms), including new FDA approvals and potential upcoming solutions.
    -- Insights shared from around the globe about test center resources/operation.
    -- Links to CLIA, CAP, and other clinical lab bodies that can provide guidance on setting up a test center.

When we have the content prepared, we will attach a text file and/or mockup to this issue!

General homepage styling fixes

To address this issue, you'll need the spec for our homepage, which is in pivotaltracker.com . Locate the UX redesign issue; the specs are in there.

There are other, specific tasks open here for things that are obviously broken or incomplete. But overall, there are some differences between Tejal's design and our live homepage that are harder to describe.

Compare the two pages, and you'll see a variety of differences. Spacing. Coloring. etc.

If you find any issues, create a Github Issue before implementing. Refer to Tejal or Kevin for any questions.

SSL certificate

Need SSL cert generated for top level domain name(e.g. use certbot for free certificate). domain = get-tested-covid19.org .

Hosting Upgrade

Current hosting is on one of Zach's cloud dev boxes. Should be moved to an isolated, scale-friendly environment, e.g. Heroku or something similar.

Test Center Search Page Revisions

Search page is missing a few details:

  • Total # of test sites
  • A note saying that the max # of sites displayed on the page is 10 sites (maybe adjust this # to a larger # of sites per page?)

CI Deployment, Robustness

CI/CD deployment via Buddy is having some trouble, failing. The startup command is failing:
"server:start": "pm2 stop all && pm2 start ecosystem.config.js",
Fail log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'server:start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserver:start', 'server:start', 'postserver:start' ]
5 info lifecycle [email protected]~preserver:start: [email protected]
6 info lifecycle [email protected]~server:start: [email protected]
7 verbose lifecycle [email protected]~server:start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~server:start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/testSiteApp/get-tested-covid19/node_modules/.bin:/home/testSiteApp/.local/bin:/home/testSiteApp/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
9 verbose lifecycle [email protected]~server:start: CWD: /home/testSiteApp/get-tested-covid19
10 silly lifecycle [email protected]~server:start: Args: [ '-c', 'pm2 stop all && pm2 start ecosystem.config.js' ]
11 silly lifecycle [email protected]~server:start: Returned: code: 1  signal: null
12 info lifecycle [email protected]~server:start: Failed to exec server:start script
13 verbose stack Error: [email protected] server:start: `pm2 stop all && pm2 start ecosystem.config.js`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:311:20)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:311:20)
13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid [email protected]
15 verbose cwd /home/testSiteApp/get-tested-covid19
16 verbose Linux 4.18.0-147.5.1.el8_1.x86_64
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "server:start"
18 verbose node v12.16.1
19 verbose npm  v6.13.4
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] server:start: `pm2 stop all && pm2 start ecosystem.config.js`
22 error Exit status 1
23 error Failed at the [email protected] server:start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

This may be because of the 'pm2 stop all' command.

Overall, we should carefully think through the deployment. e.g. understand PM2's production deployment guidelines, and look at how others are using this w/ CI tools: https://codeburst.io/automate-your-deployment-process-with-pm2-b0fd7c256223 .

Corporate sponsorships and sponsors page

There are a variety of companies that are offering resources to COVID-19 relief efforts. Some areas that we might want to explore:

  • Exposure / getting more eyes on us so that people use the website more.
    -- GitHub (featuring the project in GitHub?)
    -- Google
    -- GCP (Google Cloud - we are also using them for hosting)
    -- Microsoft
    -- Rackspace? (our hosting provider)
    -- Large organizations, or companies with wide exposure
    -- governmental organizations (HHS, CDC, state govts, cities, counties)

Healthcare-specific exposure (Zach can reach out to these points of contact):
-- LabCorp
-- Quest Diagnostics
-- (roughly 80 other lab organizations in the US)
-- Doctors via Zach's EHR partners
-- CLIA, CAP, other lab organizations

  • Grants / funding:
    -- This is primarily dependent on whether anyone has the capacity to work on the project full-time. If there are full time workers and we have more momentum, we can create an LLC and try to secure some compensation.
    -- Crowdfunding may also be viable.

  • Resources:
    -- Ad credits w/ Facebook, Google, others?
    -- Keep an eye out for other offerings...

Adding long-form content to test center list items

When searching thru test centers, list item cards are displayed that include some of the basic fields in our data table: name, address, hours of operation, doctor screen y/n, drive-thru y/n, walk-in y/n, phone.

There is lots of additional data in our data table, some of it consists of paragraphs of text.

It's important that we display everything in the data table. Some of these things won't fit onto the line item cards in a UI/UX friendly way, so we probably need to do one of the three following things. Either:

  1. Make each card clickable and create a pop-up modal that includes additional information about the test center.

or

  1. Make the cards expandable, displaying the extra content when the card is expanded.

or

  1. Make the card clickable, and when the user clicks the card, navigate to another page that displays all of the info for the test center. This would need to include a breadcrumb navigation for returning to the search page. Search page results would need to remain consistent with the most recent search when navigating back using the breadcrumb link.

Option 1 is probably the simplest to implement - our current React theme project includes boilerplate code for creating modals like this.

Social Media Push - Help Us Expand Current Reach

Right now, we have set up an Instagram account @get_tested_covid19 that has a small following, but we would love to be able to grow the reach of our project. Ideally, we would like to expand this out to Twitter and Facebook. Also, open to other channels.

We need help with creating content for the different platforms and in growing followership. Ideas we discussed are influencer outreach, partnering with other COVID-19 related community pages, and asking friends to share with communities they are apart of and to like and share.

New Resource Sub-Page: How Does COVID-19 Testing Work?

This is one of two resource pages that we would like to get live as soon as possible. To keep things simple we want to replicate the look and feel of the main resource page - https://get-tested-covid19.org/resources.

Content for the page: https://docs.google.com/document/d/1GeinYW9uIWcq5riUDy0io7uZffZfMN6S7V0c_Djom4k/edit?usp=sharing

This page should be found as a drop-down from resources in the Nav and listed second after the when should you get tested page that is also being added.

The background should be the same as the current resource page.
Same fonts as current resource page
For content styling -
Title and subtitles should be white
Title - When and Why You Should Get Tested for COVID-19? - h1
Bolded subtitles should be - h4
All linked sources should bold when hovered on and be green - #79e279
Content spacing should mimic the google doc.

SEO content to be added:
Meta title: How Does COVID-19 Testing Process Work? | Get Tested COVID-19
Meta description: Your quick guide on how the drive-thru and walk-in testing center process works for COVID-19 testing.

on search, move focus to search results

When searching on the homepage, the search should always move the user's screen down to the beginning of the search results / map.

Be sure that the implementation works across the major, recent browsers. Some of the scroll methodologies are being phased-out.

This is a fairly important usability bug, we should try to fix ASAP.

Note: This project will be US-only. Global expansion notes here.

This initiative has been started with a focus on US testing centers. But, if we have the bandwidth, it could be great to make a sister website that has a global focus.

In the case of US test centers, I work in the clinical laboratory industry and have close contact with the laboratories providing testing for much of the US.

If we create a global website, I can't provide that same information / assistance, because the US laboratory industry is self-contained.

But the global website may still be a very valuable resource!

If you're interested, comment below.

mobile optimization

The app is built with bootstrap and has a lot of mobile optimization, but needs to be cleaned-up. This is good for someone with CSS experience.

Content Iteration #2

Katherine is working on content for the 1st public release of the site. The audience is 'potential contributors', and the call to action is getting people to contribute with information about testing locations and resources to help additional communities set up testing sites.

Once Katherine writes content, it will need to be coded into the website w/ React/HTML/CSS.

Homepage map: slicker map, better icons

To address this issue, you'll need the spec for our homepage, which is in pivotaltracker.com . Locate the UX redesign issue; the specs are in there.

Overall, the map in our implementation of the homepage is not as nice as it could be. Numbered icons would be a big improvement. Also map coloration throws off our design.

MapBox is the best solution we've located in terms of: developer flexibility, free tier goes a long way (50k views), high-quality map tiles.

Task: implement maps with mapbox. Include numbered icons as with Tejal's design.

Automating the processing and deployment of testSites.json

The test site 'database' is just a JSON file that loads into the website user's browser via AJAX. We are storing this file at: https://storage.googleapis.com/covid19-resources/testSites.json .

This 'database' is stored in a Google Sheet. We would like to keep it in the Google Sheet, for several reasons:

  • Managing a database is more time consuming, costs $, could face challenges depending on website scale.
  • We are collecting data via a Google Form, which plugs directly into the spreadsheet.

To turn this spreadsheet data into JSON at the above link, we currently do the following steps:

  • Manually export a TSV file from Google Sheets
  • Use a short Node.js script to parse the file and output it as JSON.
  • Manually upload the file to google cloud storage (overwriting old file)
  • Manually adjust the cache rules on the file so that the file expires in browser caches every 7200 seconds.
    NOTE: there are also CORS rules set on the Cloud Storage bucket. These were set when the bucket was created, and do not need to be set when uploads are created.

It would be great to automate this process.

  • It may be tricky to get a Cron job to run inside of Google Sheets. We might need to use UIPath or something like this to open the sheet and run the export.
  • One approach we considered: create a separate git repository for the testSites.json file, commit and push new site updates, and use Buddy CI/CD to deploy the file to cloud storage. This would require very little coding, and it would provide a nice history of all of the uploads. (easy rollback in the event of errors).

If you want to implement this, just comment below!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.