Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nested list vs separate columns #28

Open
maxwell8888 opened this issue Jul 19, 2022 · 0 comments
Open

Nested list vs separate columns #28

maxwell8888 opened this issue Jul 19, 2022 · 0 comments

Comments

@maxwell8888
Copy link
Contributor

maxwell8888 commented Jul 19, 2022

General notes and thoughts

Will need to confirm with user testing, but I suspect that users will largely use the tool in a map driven way, so discovery of eg routes from the list will be far less important since mostly routes will be discovered from selecting on the map, or found from being associated with a selected stop. In this case the focus of the list should be optimising for presenting info clearly, rather than discoverability. However, should still be able to navigate and investigate data easily in the list alone? This would be especially useful on small screen where the map becomes less usable, also would likely be necessary for accessibility.

Nested layout forces us to only show hierarchical subsets. With columns, we would be able to list for example all trips, which could be useful for certain use cases, but would need virtual scrolling eg for stop_times.

Why/how would you use the list for navigation? Info used for navigation:
location, eg selecting an agency/route/trip/stop based on it's position on the map, so list is not used.
Agency: name, also how many routes?
Routes: short_name or long_name and color (sometimes), how many trips?
Trips: ?headsign, ?short_name, how many stops times?
Stop times: stop sequence

The problem with separate columns is they will often be redundant, eg only 1 agency, 2 trips don't requrie entire columns so will need to make use of space below some how. could just have map below, but then might have a long list of stop_times bang in the middle of the map... of course some datasets have many agencies and many trips, which is when the nested list becomes less usable, also as long as the columns are narrow stop_time's needn't be in the middle of the screen.

Space

Nested list is compact, only using one column. Using separate columns uses up much more space, but could potentially find a clever way to hide them when required

Show/hide on map, showing deletions and updates

Should work the same in both cases?

filtering

Trips is the main thing we will want to filter, but the current design for columns won't allow display multiple trips from different agencies/routes. Even though the nested list would support this it would be very user unfriendly since it would potentially require scrolling through many agencies/routes to get to the next trip; all selected trips will not be immediately visible.

Maybe don't apply filters to list (for the time being?), only to map map, from which users can select individual trips for more info?

How would sticky headers work with multiple trips?

Small screens

Which would work best on a small laptop sreen or even a mobile phone?

Ease of use

Users could find nested list confusing to navigate since only parts are visible at a time, even with sticky headers, which might also be very hard to implement. Separate lists are very clear and easy to understand what is selected, to what level (eg only a route vs a stop_time in a trip in a route), what the parents are, and to quickly change to a different parent at any level.

Nested lists are nice in that they make clear the hierarchical nature of the data, but this is probably already known/common sense/immediately obvious for most users anyway, and the column strucutre also is probably pretty intuitive.

In general either allowing multiple expansions for distinct items, or auto collapsing previous expansion, are both clunky so I prefer separate columns.

Having separate columns means they could be labelled: agency - route - trip - stop time, which would be handy because it will not always be clear what you are looking at just by having ids. Could probably work something similar into a nested layout.

A nested layout makes it clear that a list of trips is only the trips for the previously selected route, not all trips.

Revealing an item

When a trip(s) is selected on the map, it will need to be revealed in the list. Implementing this in the nested list is harder but should be very doable. More importantly is can we instantly show all the data/info the user might be interested in, eg parents, children, without needing more clicks/expanding.

Data handling

Separate columns only have one sublist of each item type shows at a time, which simplifies the required data structure and load/drop mechanism.

Memory

Users expanding to many sections could use too much memory and crash the app, would need to find a solution to mitigate this is the long term.

@maxwell8888 maxwell8888 added this to the MVP milestone Jul 19, 2022
@maxwell8888 maxwell8888 removed this from the MVP milestone Jul 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant