datasf / open-data-explorer Goto Github PK
View Code? Open in Web Editor NEWTo promote exploration and use of open data - currently in beta
Home Page: http://edge.explore.datasf.org
License: MIT License
To promote exploration and use of open data - currently in beta
Home Page: http://edge.explore.datasf.org
License: MIT License
Don't have to belabor this, but we should start with something reasonable to help manage commits and minimize code conflicts. This is about workflow and not about technology.
Good overview of workflows here:
https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
Similar to group by display issue....need to set bounds on columns that you can filter by.
For instance, in the film locations dataset, consider the following:
by writer --> filter by fun facts
Fun facts has like 100+ groups. Since there are so many potential values, filtering by a specific value in this column is unlikely yield any results.
Not to lock in stone, but just to start out with something consistent and reasonable.
This is regarding the "subtitle" to transparently indicate what filters are applied.
First:
This is another bug related to grouping and filtering that I'll try to fix all at once.
Basically when removing single elements from a multi-select list, the reducer chokes because it wants to merge the inputs, but it should actually be deleting from a copy of state and then returning that. The main fix should be in reducers/index.js
In the screenshot above, you can see it's showing 2 Outer Richmond
values after trying to remove that category.
Again, more of a workflow/code practice thing, but we should be intentional about this from the get go and just make sure we put it in the documentation. We can use tagging/releases to capture major, minor and patch releases.
Under this scheme we're under 0.1.0 until we finish MVP and then we will be 1.0.0-alpha.
While we can handle data immutably without immutable.js, the library does a lot things for us that are annoying to keep track of or handle.
For example, Object.assign({}, state, updatedState)
can be used to make deep copies of objects, but it has interesting side effects. At this point, the code is simple enough that I'm not worried about this for the sprint, but as I've been working with reducers, I'm beginning to realize how immutable.js could help simplify issues related to treating data/state as immutable.
Should be easy enough to implement without too much code upheaval. I'll put this in the backlog for now.
Deep copy operations can be expensive so we should still apply common sense when updating state as we don't always need to create a copy for every action, but immutable.js could make our code simpler as we scale.
I'll flesh this out some more, but wanted to get a draft roadmap going so we can track overall progress. I'll also link to all of the collateral (wireframes, design specs as needed) for reference. This is just a list, we'll track the order/priority of these using issues and Zenhub.
The following break down the dataset explorer into chunks of features
Initiate and integrate eslint into the build process to help enforce javascript/jsx code standards.
http://eslint.org/docs/user-guide/integrations
http://eslint.org/docs/user-guide/getting-started
https://egghead.io/lessons/javascript-redux-passing-the-store-down-implicitly-via-context
We don't have much complexity in the codebase, but there are a handful of places where we're nested a couple of components and it would be good to make sure we're passing the store down in the most reasonable and maintainable manner we can.
Per issue #37 instead of adding in code to remove certain categorical dates, I think we should provide some context to the user as a first pass so they can make informed decisions about which date fields to use. I want to avoid introducing programmatic controls that remove a field from filters that may or may not be duplicative of another field as this could introduce issues later on as we look at more datasets.
This will also improve the ability for users to understand other columns as they interact with the charts and is easier to implement.
Radio Buttons; Just do time series bars for year.
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.