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

Redefine requirements #8

Open
tomzemp opened this issue Apr 30, 2019 · 13 comments
Open

Redefine requirements #8

tomzemp opened this issue Apr 30, 2019 · 13 comments
Assignees

Comments

@tomzemp
Copy link
Contributor

tomzemp commented Apr 30, 2019

Talk with Josephine and Harry to define any changes that they want to see for Mechanism Finder App

@benguaraldi
Copy link
Contributor

(They may also have suggestions for other people to talk to.)

@tomzemp
Copy link
Contributor Author

tomzemp commented May 13, 2019

Spoke with Michelle Jenije on May 13, 2019:

Primarily using Mechanism Finder App to check against source of truth in FACTS Info and to see the history of a mechanism (e.g. when a Partner says information is not right in DATIM). App allows confirmation that DATIM and FACTS Info are in sync and lets one find when changes occurred.

Miscellaneous Thoughts for Improvements:

  • It's annoying that the search changes when you click on a row in FACTS Info table (search should only change when you update search box)
  • It's useful to have the full FACTS Info table to see all the information at once, but with the new columns being added it's hard to scroll (e.g. there's no scroll bar). Michelle has a large monitor, so she mostly sees all the columns and this hasn't been a problem so far
  • Some columns might not be useful for her (Legacy ID, Legacy Partner ID), but maybe are useful for others
  • Might be useful to be able to select/deselect columns, particularly if it can be saved as a user preference. But wouldn't want to have to select columns every time)
  • Would be better to have more delineation between groups of years. E.g. some visual cue between groups of FY [2016, 2017, 2018, 2019]
  • Option to filter columns might be only marginally helpful (generally want to have all info to scroll through)
  • Might be good to highlight changes in FACTS Info table, and possibly hide rows where there haven't been changes, e.g. if latest date is 5/12, and there hasn't been a change since 4/15, maybe make those rows hidden (with option to unscroll)
  • Probably useful to have in a table format, because unscrolling "extra" columns might break up the flow)
  • In the Mechanism/Agency/Partner section it would be good to have lastUpdate date (ideally, to have information on when something was last updated)
  • Active used to be marked with check/x. It changed to 1/0. This is understandable, but maybe confusing if you are not aware of change.
  • Actual FY and COP Year don't align, but maybe FACTS Info is wrong here (e.g. 2016 FY != COP 2016)

@tomzemp
Copy link
Contributor Author

tomzemp commented May 16, 2019

Spoke with Josephine Mungurere-Baker on May 15, 2019:

General

  • Search (might be useful to have the option to specify what is being searched, e.g. only DUNS)

Mechanism/Agency/Partner

  • This is what Josephine uses most.
  • Sometimes mechanism is funded by more than 1 agency, but the display only shows first agency. Want to display other agencies where relevant (e.g. so can know that Interagency user needs to create user, not USAID user)
  • Mechanism: want to have clearer indication if the mechanism is active or not, start and end dates aren't particularly helpful

Table

  • Certain columns are not relevant for Josephine's purpose (might be good to be able to hide them)
  • Filtering columns (might be useful to filter the table)
  • The app changes from checks/xs to 0/1:
    image
    (maybe should be standardized in the UI, but not a big deal)

@tomzemp
Copy link
Contributor Author

tomzemp commented May 16, 2019

Spoke with Celeste Scott on May 16, 2019:

Celeste used app mostly when working on ER Tier II Support to be able to help diagnose problems (e.g. when user can't see a mechanism...probably because of a slightly different name)
Mostly using table to look at history.

General

  • may be helpful to have customizable search functions

Table

  • Don't like that search changes when you click on a row.
  • Need scroll bar
  • would be preferable if the response was through a certain date (e.g. 30 days). Right now returns ~90 rows, but this means you get through a different date if the response has multiple rows (for example)
  • May be useful to hide columns (particularly if a user's default views can be saved, like in SharePoint)
  • May be useful to filter (because sometimes interested in specific years; also years are completely distinct)
  • Should be able to resize rows, or cells (currently has tooltip, which is also useful)
    image

@benguaraldi
Copy link
Contributor

One other thing: Maybe we want additional pages of results?

@tomzemp
Copy link
Contributor Author

tomzemp commented May 23, 2019

@benguaraldi @jakub-bao

I've tried to summarize the suggested changes I got from users above into various areas and to attach a subjective priority and level of effort to each. (see below, or I can share in spreadsheet form)

I've also put together these changes in a mockup: https://app.moqups.com/oMElRP3xlk/view . The mockup is conceptual only (i.e. it's not meant to be a mockup for styling purposes, just to show the new functionality/features that would be in the app based on the changes below).

I don't know if you guys want to discuss this together, or take it back to the end users for comments, or just want me to start working on things with the assumption that these changes will be okay, and therefore it's better to have something interactive before talking more?

Backend

TaskPriorityLevel of EffortComments
Add paginationMedium?Might be good to pull more data as needed (regardless of whether we implement other changes)
Add number of days as search parameterMedium?Celeste mentioned that it's kind of odd that the response is limited to 90 rows, and that it might make more sense to limit it to 30 days in the past (and that it wouldbegood if this were customizable)
Specify fields to search inLow?Might be useful to users if they know exactly what they're searching against (e.g. if they know a DUNs begins 123, maybe they don't want to search for Mechanism IDs that have 123). This wasn't currently a big problem though.
Transform array to objectLow?Might be easier to manipulate if response is an object. e.g. {FY: '2019', ID: '12345'} vs [['FY','ID'],['2019','12345']] . We could also convert array to object on client-side, however.

Search

TaskPriorityLevel of EffortComments
Toggle search optionsMediumLowIf adding in more search options than just Production/Test, it might be good to allow users to toggle these choices
Specify number of days (UI)MediumLowIf adding in option to specify the number of days from FACTS Info, then we will want to allow to control this
Specify fields to search in (UI)MediumLowIf adding in option to limit to search against certain fields of FACTS Info, then we will want to allow to control this

DATIM Information

TaskPriorityLevel of EffortComments
Make Mechanism Active Status clearerMediumLowUsers thought it should be clearer if mechanism is active
Add Last Updated date MediumLow
Add multiple agencies infoMediumMediumJosephine mentioned that sometimes a mechanism has more than 1 agency, and it's useful to know this.
Add agency countMediumLowIf adding multiple agencies info, then might be useful to display count of agencies in agency box

FACTS Info Table

TaskPriorityLevel of EffortComments
Stop auto-search redirect when clickingHighLowThis highly annoys most users and doesn't add much functionality
Update DATIM info on row clickLowMediumThe DATIM info corresponds to the first row of the table, so maybe it would be more useful to have DATIM info update when you click a given row
Delineate Date GroupingsMediumLowPut a visual break between the different days of FACTS Info feed
Always show horizontal scrollbarHighLowMost users don't mind the horizontal scrolling, but don't like that the scrollbar is all the way at the bottom of the page
Make active/inactive consistenMediumLowThe app code is converting active (1) inactive (0) by looking at the last "column" of each "row". So dates with more columns beyond active show up as 1/0, and older ones show up as check/x-s
Highlight ChangesLowHighMichelle and Celeste are often interested in finding dates when something changed. This might be interesting to (optionally) highlight in the table automatically, but we would need to discuss more about how it should work
Add option to pull more dataMediumMediumIf we paginate the response, then we will want to allow user to load more data
Add filters to columnsMediumHighAllow user to filter data table (e.g. filter Reporting Cycle column by `2019 COP`)
Allow users to hide certain columnsLowHighThis would (partly) solve the horizontal scrolling issue, but users pointed out that it would be better if your default preferences got saved

@benguaraldi
Copy link
Contributor

@tomzemp Thinking about this, I think we want to head for an MVP with the Mechanism Finder, with as many of these features that are low or no additional LOE, at least to start. Do you agree? If so, which features would those be?

Also, I'd be curious if there is a javascript table library or the like that allows "Add filters to columns" and "Allow users to hide certain columns" without much LOE.

@tomzemp
Copy link
Contributor Author

tomzemp commented May 27, 2019

@benguaraldi: Sure. I'll defer to you if it's worth it to roll out a react version of the app with minimal feature updates. Celeste, Josephine, and Michelle all seem fine with the existing app, so I'd guess I'd like to deliver some kind of improvement for each of them so they don't just think of the visual changes as extra annoyance.

Backend changes
I don't know how difficult this is because I haven't been involved with this in any way. I think these are nice to have and could be handled later.

DATIM information
I think updating the DATIM information (what Josephine is most interested in) are doable fairly easily, but maybe I should circle back to confirm with you and @hardingt that it works as Josephine/myself think it does.

Table
For the table, I think Celeste and Michelle would be most happy with just getting rid of the auto-click search redirect (which is thankfully easier than having it). Michelle seemed most eager to have a delineation between the dates. This would be easy to implement with an out-of-the-box Material UI Table

They both seemed to be of the opinion that filters/hiding columns could possibly be useful, but it wasn't something they were specifically asking for. Looking around, this library seems the most popular for fancier React tables: https://www.npmjs.com/package/react-table. I think that visually it's "okay". It provides support for filtering and seems to be customizable for hiding columns (FoldableTable if you search on their npm site) with a bit more work.

Would you like to check this out and see if it's okay for you? If yes, I will look at using this in the app

Filter + general other features: https://nk5yjjvx1j.codesandbox.io/
Foldable columns: https://8pkrj5yorl.codesandbox.io/

@benguaraldi
Copy link
Contributor

@tomzemp The fancy react table looks good to me, though I do agree it could use some styling. @jakub-bao, any concerns with Tom using that table?

Here are the sandbox links:

Filter + general other features: https://nk5yjjvx1j.codesandbox.io/
Foldable columns: https://8pkrj5yorl.codesandbox.io/

I imagine we'll need to write the code that saves the user's state (i.e., which columns are hidden)—is that right? Or does it do that too?

@tomzemp
Copy link
Contributor Author

tomzemp commented May 28, 2019

@benguaraldi: we'd need to save the state of the hidden columns, and Michelle and Celeste actually thought it would be more useful if default could be saved to user settings.

I think maybe a MVP would let users hide columns on the fly with react-table and then build out to have the options more explicit and savable?

@benguaraldi
Copy link
Contributor

@tomzemp That sounds like a good MVP. We could also make MVP just the app with react-table without hiding column functionality too.

I guess the next step is to separate these out into tickets and then mark some as MVP?

@tomzemp
Copy link
Contributor Author

tomzemp commented May 29, 2019

I've set up some tickets for issues I think are MVP @benguaraldi. If there are some missing, let me know. If you want me to spin out other issues into non-MVP tickets I can also do that

@benguaraldi
Copy link
Contributor

@tomzemp Yes, let's go ahead and make the non-MVP tickets and then close this ticket. Thanks!

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

3 participants