sjarvela / kloudspeaker

Document management system
GNU General Public License v2.0
95 stars 40 forks source link

Usability Enhancements #87

Open crashmaxed opened 8 years ago

crashmaxed commented 8 years ago

Currently there are some shortcomings in terms of usability with the management of users, groups, and folders. Everything works as expected, but the usage is cumbersome.

First off, note that in Configuration >> Users you are able to sort by Username, Type, and Email columns by clicking on the column header. Clicking the same header again swaps between ascending and descending order. With this in mind:

1) In Configuration >> Users the ID column should also be clickable to sort by. At times it may just be easiest to find the account you are looking for by being able to sort by ID. For example, when looking for an account that you just made (hence has the highest ID number).

2) Configuration >> Groups should be able to sort by clicking headers for ID, Name, and Description similar to Configuration >> Users. It may be useful to sort by the Name column by default kind of like Configuration >> Users already does with Username.

3) Configuration >> Folders should be able to sort by clicking headers for ID, Folder Name, and Path similar to Configuration >> Users. It may be useful to sort by the Folder Name column by default kind of like Configuration >> Users already does with Username.

4) Add User Folder (Configuration >> Users), Add User Group (Configuration >> Users), and Add Folder User (Configuration >> Folders) could also benefit from having their headers sortable by clicking on them. Combined with the below issue of restrictive pop-up menu size, it makes for adding memberships tedious.

Moving on, pop-up menus for Add User Folder (Configuration >> Users), Add User Group (Configuration >> Users), and Add Folder User (Configuration >> Folders) are quite restrictive in size given the potential amount of real estate present in the browser window.

For example, long filesystem paths could easily fit in the text box (without the need to scroll) if widened.

ks_longpath

Similarly, the pop-up menus for adding user mappings for folders and groups are very constrained.

ks_smallpopup

If nothing else I could come up with my own customization by modifying the applicable CSS, but this might be something others find could use improvement. Some possibilities would be to increase the absolute width, use percentage based widths, or maybe add configuration items that could be applied to index.html or configuration.php where an absolute pixel width or percentage browser width could be set for these popouts.

Lastly, there is no way at a glance to see what users are a member of a specific group and what folders are applied to said group. Configuration >> Groups could definitely benefit from the ability to manage access in this method. As it stands the only way to know is by clicking on each user in Configuration >> Users and each folder in Configuration >> Folders and figure out this information on your own.

ghmerrill commented 8 years ago

While I agree that the current UI can stand a variety of "local" improvements, I think that it would benefit more from a thoughtful redesign that is user-centric rather than feature-oriented (and quite developer-oriented). The current design, while useable, shows all the symptoms of having been designed by a coder rather than a designer focused on a task-oriented use of the product. So I'd strongly encourage initially creating as reasonable a set of user scenarios (NOT "use cases"!) to guide the UI and overall product design. Then let the set of scenarios guide the design and the creation of use cases for testing purposes.

sjarvela commented 8 years ago

Thanks for the input. I agree with both of you, and I can assure UI in all parts does not represent the way I'd like it to be. I have many plans to make many things better, but it all comes down to time, which I'm short of. Major improvements have been postponed because of technological steps I need to make, I've been rewriting the foundation so I can make things modular and UI parts easier to implement. But there are lots of "old" stuff that needs to be replaced (like dialogs in general, all config views etc), and it takes time.

sjarvela commented 8 years ago

I've now added the most obvious and straight forward changes, like sorting and dialog resizing.

For groups list, I agree it can be difficult to see what they hold, but I'm not sure what would help in this case. The list cannot display all the info (users, folders) that each group has, so suggestions are welcome.

(@crashmaxed: not sure what you mean you have to click through all Configuration/Users and Configuration/Folders to see what is in a group, because selecting a group in Configuration/Groups does show what users and folders are assigned to this particular group?)

ghmerrill commented 8 years ago

First, thanks for your response to my previous comment. I fully understand the difficulty and time involved in re-implementing the underlying code base to make it more modular and provide a higher level of abstraction (assuming that's what you are doing).

Here is my suggestion about the groups list -- which you will see is more methodological than immediately practical ...

In terms of things like the groups list, I have the feeling that your thinking is now too closely bound to the implementation level and to things like "list models" because (a) that's how things have been implemented up to this point, and (b) it is those models you feel comfortable and familiar with. I would suggest, again, that when it comes to DESIGN (rather than implementation) you make use of two approaches.

The first is "user-centric design" (if you aren't already familiar with the work of Tufte and Alan Cooper -- particularly "About Face 3: The Essentials of Interaction Design" -- then you would benefit greatly from studying these). The second is to use "competing applications" (broadly construed) as examples of design possibilities -- which will help to liberate you from constraints imposed by old habits of thinking how things can or should be done.

I believe that you could make Kloudspeaker into a genuine competitor to things like Dropbox -- for people who want to avoid both the expense of Dropbox and want more control over their own CMS instances. But this will take some time and care. Don't take the view that you're a programmer coding an application. Take the view that you're an artist creating a work for an audience. Then let the art (design) drive the architecture and implementation. This is the way to superior software that will be used by a broad audience.

Sorry about the pedantic lecture, and you may already be aware of these things; but I'm intending to be encouraging. I think there is a lot of potential and opportunity here if you can avoid getting in the rut of "fixing" or "improving" what you have. And it will take time and effort. But the more you follow that methodology, the better and easier things will get.