Open necoline opened 4 years ago
16 is a lot of columns. I think the ideas of reducing column width and toggling columns could be an option. I think a few ways to go about it might be:
Single table: user select columns
Multiple Table
I agree, I feel comfortable dropping this
This is an excellent point, I'm going to do some initial scoping of the existing setup and update this with a proposal to kick around.
A few points of clarification on the UI:
@necoline @guidorice these are all great points, thanks for outlining them in detail. A few thoughts
we should refine the visualization once we know what the API is capable of returning
@LanesGood @necoline here is what the work-in-progress api endpoint (will be) capable of returning:
https://github.com/developmentseed/scoreboard/blob/feature/timeseries-api/api/docs/api.yml#L143
the corresponding PR is https://github.com/developmentseed/scoreboard/pull/612
If you run the branch locally, you can use the Swagger UI viewer for the api docs. I believe Postman has similar functionality and @necoline is using that to develop against a mocked api.
I hope this helps inform the UI functionality!
cc @kamicut @maxgrossman
Just dropping notes on our question "do reported stats match actual stats" in #702.
See here/compare for yourself that at aggregate statistics are matching for the measurements. But as you can see I am double counting on the edits/changesets, so i'll fix that.
It looks like the API responds correctly so must be something in the UI (note the resp json below for edirckenson only having the 1 changeset like the profile page does).
{
"bins": [
{
"user_id": 6601365,
"bin_start": "2018-10-17",
"bin_end": "2019-10-17",
"name": "edircksen",
"hashtags": [
"osmus-tasks-153"
],
"countries": [
"SHN"
],
"measurements": {
"waterway_km_added": 1.839
},
"counts": {
"roads_added": 18
},
"changeset_count": 1,
"edit_count": 18
},
{
"user_id": 6601365,
"bin_start": "2019-10-17",
"bin_end": "2020-10-17",
"name": "edircksen",
"hashtags": [],
"countries": [],
"measurements": {},
"counts": {},
"changeset_count": 0,
"edit_count": 0
},
{
"user_id": 6601365,
"bin_start": "2020-10-17",
"bin_end": "2021-10-17",
"name": "edircksen",
"hashtags": [],
"countries": [],
"measurements": {},
"counts": {},
"changeset_count": 0,
"edit_count": 0
},
{
"user_id": 6601365,
"bin_start": "2021-10-17",
"bin_end": "2022-10-17",
"name": "edircksen",
"hashtags": [],
"countries": [],
"measurements": {},
"counts": {},
"changeset_count": 0,
"edit_count": 0
}
]
}
I also noticed that Minh's waterway count showing 170.85
in timeseries screenshot and 170.9
on the profile page. I think that's due to the user page doing some rounding when formatting.
If consistency there matters, we could make timeseries round to 1 decimal place.
double count fixed in d59a362
Following up on my comment in the PR, I've mocked up a single-dimension chart and table for visualizing the actual time series data:
This does introduce a number of complications that were also discussed 2 years ago, above:
The UI mockup shows 6 columns of measurements and counts (roads, buildings, poi, railways, coastlines, waterways) , As you can see below, there are additional measurements and counts available from osmesa (16 actually). Reducing the margins on the report would be a good idea, to make more space. And maybe add a tool for toggling columns on and off? (this is going to come up elsewhere too in Scoreboard, because landuse and natural are newly added categories and there should be a separate JIRA issue about adding those new columns to existing reports).
userIdsFilter
,categoriesFilter
,countriesFilter
,hashtagsFilter
,hashtagPrefixFilter
and of course,startDate
,endDate
. In other words UI is going to have to come up with query parameters for these filters, make the timerseries api call, and then come up with the dropdown contents itself. I do not have a clear idea of the UI data flow- whether the dropdown menus would have to be constructed before, or after, making a timeseries query. Later today I should have the openapiapi.yml
doc updated in scoreboard, which will show the proposed timeseries response data structure. Once that’s agreed upon, then @necoline you can start to build the UI, by mocking the api responses as much as that’s possible, and also deciding what additional business logic will need to be added to scoreboard to supplement what the timeseries api returns.