scalabull / get-tested-covid19 Goto Github PK
View Code? Open in Web Editor NEWOpen source code for community-driven, US-focused COVID-19 test locator database.
Home Page: https://get-tested-covid19.org
License: MIT License
Open source code for community-driven, US-focused COVID-19 test locator database.
Home Page: https://get-tested-covid19.org
License: MIT License
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.
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.
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).
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?
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:
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.
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.
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 doesn't work. This might have been fixed recently (waiting for DNS A record to propagate). If not fixed, this should be resolved.
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:
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.
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 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.
leaflet map or equivalent, e.g. https://leafletjs.com/examples/quick-start/ . pins for locations. maybe pair with search bar?
We currently don't save the package lock file to github. Doing so will enable snyk to properly scan our repo for vulnerabilities.
https://support.snyk.io/hc/en-us/articles/360000910057-Manifest-and-lockfile-out-of-sync
We need to move the DNS to AWS to better enable AWS features for various services used by the infrastructure.
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.
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.
Enable server-side rendering with React.
Server hosting should be moved before CI/CD is setup.
In general, CI would be great to have.
To better identity issues ALB logs should be enabled. They should log to a logging bucket in the AWS account.
Amy provided color scheme and logo.
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 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.
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.
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:
If you have ideas or want to contribute in this area, comment below!
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.
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
Right now the docker image shows that the webserver starts but no logs are generated after that.
Server up and running on http://localhost:3000/
But nothing after it.
Implement a basic CRM so we can track significant inbound & outbound communications to people and organizations.
new URL of new resources page will be: whenshouldyougettested-covid19
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:
New York Times: Up-to-Date, Confirmed COVID-19 Cases by County
Waze Traffic API . May be helpful for figuring out street traffic patterns near test sites (e.g. are they extremely busy, are they being placed in areas that are traffic-efficient).
Not sure if there is a data set for this, but tracking the supply chain to show who has medical supplies and in what quantities would be extremely useful.
Potential problems that can be solved:
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.
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!
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.
Need SSL cert generated for top level domain name(e.g. use certbot for free certificate). domain = get-tested-covid19.org .
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.
Search page is missing a few details:
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 .
Currently, CircleCI tries to run terraform during all builds. It should skip on anything not staging and master to properly deploy to the correct envs.
To track usage, plan for server sizing / costs .
There are a variety of companies that are offering resources to COVID-19 relief efforts. Some areas that we might want to explore:
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...
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:
or
or
Option 1 is probably the simplest to implement - our current React theme project includes boilerplate code for creating modals like this.
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.
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.
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.
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.
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.
AWS Aurora provides PostgreSQL compatible endpoints. We are moving to a SQL backend and want Aurora setup.
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.
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.
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:
To turn this spreadsheet data into JSON at the above link, we currently do the following steps:
It would be great to automate this process.
If you want to implement this, just comment below!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.