RoboZonky / natural-strategy-setup

Webový konfigurátor investiční strategie pro RoboZonky
https://robozonky.github.io/konfigurace-strategie/
2 stars 1 forks source link

Improve UX for adding conditions in Filter creation modal #74

Closed jhrcek closed 4 years ago

jhrcek commented 4 years ago

See https://github.com/RoboZonky/natural-strategy-setup/issues/72#issuecomment-629680972

jhrcek commented 4 years ago

@triceo I implemented the 3 new conditions. You can check it in my testing deployment: https://janhrcek.cz/natural-strategy-setup/

Now I'm looking into improving UX of adding conditions. I'm having difficulties coming up with "category" for each condition. I could use some help/suggestions. There are also different groups of conditions based on what you're filtering (see table below), so only in some cases there will be multiple conditions per each "category". Not sure if it would make sense displaying categories containing just 1 condition..

Condition Category Primary Joint Secondary Sell
Dosažený výnos ? :heavy_check_mark:
Poplatek za prodej Nákup participací(?) :heavy_check_mark:
Aktuální doba po splatnosti (ve dnech) Historie splácení :heavy_check_mark: :heavy_check_mark:
Doba od posledního dne po splatnosti (ve dnech) Historie splácení :heavy_check_mark: :heavy_check_mark:
Uhrazeno splátek (v měsících) Uhrazeno splátek :heavy_check_mark: :heavy_check_mark:
Uhrazeno splátek (v %) Historie splácení :heavy_check_mark: :heavy_check_mark:
Historie splácení Historie splácení :heavy_check_mark: :heavy_check_mark:
Nejdelší doba po splatnosti (ve dnech) Historie splácení :heavy_check_mark: :heavy_check_mark:
Původní délka úvěru Parametry půjčky :heavy_check_mark: :heavy_check_mark:
Sleva Nákup participací(?) :heavy_check_mark: :heavy_check_mark:
Zbývající jistina ? :heavy_check_mark: :heavy_check_mark:
Délka úvěru (v %) Délka úvěru :heavy_check_mark: :heavy_check_mark:
Výše úvěru ? :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Zdroj příjmů klienta Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Pojištění Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Úrok Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Měsíční splátka Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Účel úvěru Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Kraj klienta Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Délka úvěru (v měsících) Délka úvěru :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Optimální výnos ? :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Příběh Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
triceo commented 4 years ago

Nice summary. I took the liberty of updating it the way I see it, and we can discuss the things we see differently.

Condition Category Primary Joint Secondary Sell
Dosažený výnos ? (Výnos a ztráta) :heavy_check_mark:
Poplatek za prodej Nákup participací (Výnos a ztráta) :heavy_check_mark:
Aktuální doba po splatnosti (ve dnech) Historie splácení (Život participace) :heavy_check_mark: :heavy_check_mark:
Doba od posledního dne po splatnosti (ve dnech) Historie splácení (Život participace) :heavy_check_mark: :heavy_check_mark:
Uhrazeno splátek (v měsících) Uhrazeno splátek (Život participace) :heavy_check_mark: :heavy_check_mark:
Uhrazeno splátek (v %) Historie splácení (Život participace) :heavy_check_mark: :heavy_check_mark:
Historie splácení Historie splácení (Život participace) :heavy_check_mark: :heavy_check_mark:
Nejdelší doba po splatnosti (ve dnech) Historie splácení (Život participace) :heavy_check_mark: :heavy_check_mark:
Původní délka úvěru [1] Parametry půjčky :heavy_check_mark: :heavy_check_mark:
Sleva Nákup participací (Výnos a ztráta) :heavy_check_mark: :heavy_check_mark:
Zbývající jistina ? (Život participace) :heavy_check_mark: :heavy_check_mark:
Délka úvěru (v %) [1] Délka úvěru (Život participace) :heavy_check_mark: :heavy_check_mark:
Výše úvěru ? (Parametry půjčky) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Zdroj příjmů klienta Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Pojištění Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Úrok Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Měsíční splátka Parametry půjčky :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Účel úvěru Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Kraj klienta Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Délka úvěru (v měsících) [1] Délka úvěru (Život participace) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Optimální výnos ? (Výnos a ztráta) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Příběh Klient :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

[1] I now notice a problem here. "Původní délka úvěru" is clear. It only applies on secondary marketplace and during selling, and so it is obvious. Likewise with "délka úvěru v %". However, "Délka úvěru v měsících" apparently has a different meaning based on the marketplace that it applies to. On primary marketplace, it means "původní délka" and on the other marketplaces it will mean "zbývající délka." Correct? If so, we need a name change here. [2] "Život participace" is probably a bad name. Your original "Historie splácení" may be better.

Also, I find it hard to draw a line between what is "Klient" data and what is "Parametry půjčky" data. Maybe it should all be one category, "Parametry půjčky"? That would result in only 4 categories, which is a good number and would not create (many) categories that would be "empty" on some marketplaces.

What do you think?

jhrcek commented 4 years ago

Ad [1] no worries, the logic for displaying some conditions differently based on marketplace is already there. I just didn't want to overcomplicate the table.

Ad client vs parametry půjčky: I was thinking about 1 person taking multiple loans. The client characteristics stay the same for all his loans, but loan characteristics can vary based on loans. Having said that I now see that I have misclasified 2 loan properties as client properties. The only 2 client specific properties are "Zdroj příjmů" and "Kraj". But it's propably a good idea to include those two in "Parametry půjčky".

I'll go with your proposed labels first and try using them as group labels with select+optgroup which seems to be standard way of grouping options in select based on some category. Then we can discuss the labels further once we see it in action.

jhrcek commented 4 years ago

Here's my first attempt. Please check and let me know what you think: https://janhrcek.cz/natural-strategy-setup/

Screenshot from 2020-05-23 13-47-57

triceo commented 4 years ago

Cool, I love that! And you were right, it does actually makes sense to differentiate client data, as clients can have more than 1 loan. I didn't think of that.

One tiny nitpick: The first line ("Přídat podmínku") shouldn't be there, but it's already been like that - I only just now noticed.

triceo commented 4 years ago

One more nitpick: we have "parametry půjčky", yet the individual options mention "úvěr". We should probably standardize naming to "půjčka".

jhrcek commented 4 years ago

Well spotted. I replaced usages of "úvěr" with "půjčka" everywhere for consistency (except for "mandatory" usages in rendered strategy config). I also fixed the double appearance of the dummy select option "-- Přidat podmínku --" (didn't even know that was possible :smile:) and redeployed the thing just in case you want to check before I do a PR to robozonky.github.io: https://janhrcek.cz/natural-strategy-setup/