geodacenter / covid-atlas Goto Github PK
View Code? Open in Web Editor NEWAn interactive map of COVID-19 data with spatial analysis tools
License: GNU General Public License v3.0
An interactive map of COVID-19 data with spatial analysis tools
License: GNU General Public License v3.0
In the alpha app, the data panel shows national data until you click on a state/county. @ariisrael and I discussed that currently it may not be clear to the user that the graphs have been updated to reflect a different geography.
A few thoughts on how to handle this going forward:
The current Atlas uses GeoDa wrapped as a WebAssembly module for a few spatial analysis tasks:
This is a really interesting approach and has been fun to explore from an engineering standpoint—however, I did want to bring up a few discussion points as we start to migrate these features into the refactored app.
Module
into the global JavaScript scope, which presents some challenges when integrating with a Node-based project such as the refactored app. I've started a repo that would turn the module into a Node package, but this may take more time than we've allocated for the refactor.At the same time I think we can all recognize that GeoDa is driving some of the most important insights in the Atlas, so I wanted to make a few suggestions around how we could modify the stack to provide the best user experience possible without compromising on spatial analysis.
pygeoda
in place of the browser workflow. I think this would be the most straightforward approach and would be my recommendation.pygeoda
as a lightweight backend service, such as an AWS Lambda function, that the browser app could call when it needs to run analysis. We could use something like this in the case of the cartogram, which I'm not sure could be pre-processed as easily.I was wondering if the group had any additional thoughts or ideas re: Geoda on the front end. Once again, I think this is a fantastic feature of the app and looking forward to finding a long-term solution for supporting it in the Atlas 😄
/cc @jkoschinsky @Makosak @lixun910 @linqinyu
Because our Redux store is large and fairly normalized, we will most likely want to start using Reselect at some point to cache computed values.
More from the Redux docs:
We need a new solution for the time slider that lets you see a cut of data from a particular date, reflected on the map and in the data panel.
The alpha app loads in a file called /data/counties_usfacts.geojson
that seems to contain static data for counties, i.e. population and hospital beds. Need to do the same in the beta app.
Set up a pattern for loading data in from the existing (alpha) repo and normalizing it for use in the new app. This data should go into the Redux store.
We would like to have a nav bar at the top of the app (above map) for accessing secondary content (about, press, etc.)
This is mocked up for the control panel, but we would want one on the data panel as well. It just slides it off screen enough to reveal more of the map. Demo here:
https://5e978fbcbac2e30267c42105--covid-atlas-rbrtmrtn.netlify.app/
The first iteration of this looked like:
Since then we decided to use Bootstrap in favor of Semantic UI (see #2). As of now it's not being styled.
We should formalize what our style guidelines for the app and implement them for the beta release of the Atlas.
Ari (I can't tag you for some reason), you sold me on this—it looks like Semantic UI is not actively developed and Bootstrap has really nice React bindings, so it seems like that's the way to go. I'll try to work on swapping those components out today or tomorrow. Also, just to touch on what we had talked about last week, I'd prefer to use Bootstrap just for small components that would be tedious to write ourselves (like form elements) rather than broader layout and styling—just don't want this to get that "yet another Bootstrap app" look and feel. But let me know if you have any other thoughts, happy to discuss.
This is a task to recreate the existing map visualizations in the alpha app in this code base.
For managing global app state
Currently this is just the create-react-app
boilerplate.
It might be good to decide on a code standard that covers JS and any other code we're writing in the React realm (JSX? CSS modules?) and set up automated linting on commit.
One ESLint plugin for React:
https://github.com/yannickcr/eslint-plugin-react
We should plan how routing should work vis-a-vis navigation, browser history, bookmarks, etc.
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.