Code Monkey home page Code Monkey logo

genomic-incidence-tracker's People

Contributors

jameshadfield avatar jotasolano avatar kairstenfay avatar tsibley avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

genomic-incidence-tracker's Issues

Hoist chart data selectors

Currently the data selectors provide transformed data directly to the chart components. When faceting this has the unfortunate side effect that each chart has a different scale, which is confusing. The easiest way out of this is hoisting the data selector calls (and modifying the selectors) and then passing the relevant data to each chart as props. This would allow a consistent scale to be provided, and facilitate potential UI improvements such as only displaying one scale / legend for multiple charts.

UPDATE:
Integrating the modeling results into the data flow makes the makeSelectDataForChart selector even more complex and may want to be looked at during this issue.

prototype modelling visualisation

There are a number of points which have been raised recently about how the modeling data should be presented. They include:

  • The display of time as a variable (e.g. heat-map style tables)
  • The display of other "group-by" or faceting variables
  • The UI to choose between different models, different outcomes etc
  • Ability to select different pathogens, including to explore co-infection

Source real data

The options discussed so far include using S3 signed URLs or having the heroku instance access the database.

auth to-do list

For prototype

  • JWT expiry
  • decode JWT in client to get username
  • a development flag to ignore authentication (!)
  • test JWT
  • set up protected S3 URL for data & access from server
  • remove delete token button on login page
  • changing password doesn't revoke JWTs, so a user is still authenticated
  • incorrect username/passwords remain filled in after failure
  • show spinner (e.g.) after clicking "login"

For real usage

  • login rate limiting & max retries
  • ability to revoke JWTs & client check JWT hasn't been revoked
  • store hashed passwords (server) -- see note in server/auth.js
  • user db or similar

Make the table scroll when it's a lot of regions

@jameshadfield This is an idea I had (we don't really have to implement it), but when we have a lot of regions (e.g. CRAs, Census Tracts) then the bars and labels get very compressed and hard to read. Instead, we could implement a d3.scaleBand() just like in the Observable sketch and set the content of the container div to scroll vertically.

If you run this branch you'll see the idea https://github.com/seattleflu/genomic-incidence-tracker/tree/expandable-container (I created this a couple of days ago so it's already behind the master branch)

Implement modeling API

Currently the viz uses 2 (committed) modelling CSVs from the simulated data repo. As such, it only works for H3N2 or H1N1 with geo resolution set to neighborhood. This must be replaced with a call to the actual server API.

Note that the API implemented between the client and the server is roughly along the lines of what was discussed in slack, but is overly simplified and incomplete.

Styling the reactSelect

@jameshadfield I noticed you wanted to override some styles of the reactSelect. I went ahead and started that process, but how exactly do we want it to look?

I removed that divider between the placeholder and the arrow to make it look more like Auspice. However, to have a triangle instead of a caret we'd have to replace that svg element (which is totally doable, but I'm not sure if that's what we want).

Relevant code is in src/components/sidebar/select.js

implement pie charts

Pie charts are to be used to implement categorical variables on the map, with area used to represent the number of cases in the deme. @trvrb do you want this to replace chloropleths, as currently implemented, as well?

Handle window resizes & chart sizing

Currently we hardcode the chart dimensions and use an overly simple watcher for window resizes. I've not used react-ruler react-measure but have heard good things about it and it seems appropriate here.

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.