We have a web application which connects users with certain resources.

The way it works currently is that we have a csv file like this:

resource_id_x, user_id_1
resource_id_y, user_id_2
resource_id_z, user_id_3
resource_id_y, user_id_4

[note: a resource can be connected to 0..n users]

We have a python script which reads in the file and makes the connections.

What we want to do is convert this into a web interface and remove the need for the admin users to mess with csv files or running python scripts.

In a typical uses-case, there would be 30-ish resource-user pairs. The admin user will have the information collected in a text file or spreadsheet before starting the operation. This is a list of which user_id is to be paired up with which resource_id

Our current thinking is just to have the admin user construct a text 'table', just like the csv file above (either in a text editor or spreadsheet app). Then paste the 'table' into a web textbox and have the system parse it (extract the user/resource pairs and process these). But this seems 'clunky' to us.

Is there a neater/simpler/more elegant way of doing this? We are especially thinking about first time admin users and making it obvious to them what to do.

  • For me, it's not clear what the user will be pasting in this textbox exactly. The contents of the txt file or spreadsheet that they have? What goes in? What comes out? Feb 22, 2017 at 10:01
  • @PaulvandenDool I have edited to try to make more clear. Yes, user pastes in contents of .txt file. Nothing comes out from app, other that some success/failure notifications.
    – Ken
    Feb 22, 2017 at 11:01
  • Just curious, what happens with the information that is entered. I understand it's parsed, but how does it process it? What is the outcome? Is it processed and stored in a database? Or are the resources send to every user? This might influence the solution I propose. Feb 22, 2017 at 11:22
  • It just updates a database. When the client user logs on, he will now see a additional new resource in his dashboard. It would be possible (maybe even a future feature) to email alert the customer user of his new resource.
    – Ken
    Feb 22, 2017 at 11:33
  • The problem I see with the text-box is validation on the client side. How would you indicate the user that one of the items is not valid/has a typo?
    – Alvaro
    Feb 22, 2017 at 18:39

1 Answer 1


You'd want to make it as simple as possible for your user. This might be some more work on your part, but it could ultimately help with your user satisfaction.

An idea(s)

  1. Drop file
    If you could make your application smart enough to read different files and recognise the user_id and the corresponding resource_id you could just offer your user a file upload that parses and processes it as soon as a file is added (not even after clicking an upload button). Perhaps even allow for multiple files.
    MailChimp uses this pattern, they can import multiple contacts from different type of files.
    If this parsing and processing is the only functionality of your application, the designer inside of me is instantly thinking about a giant drop field with fun microcopy. Showing your user what hard work you're performing here could have positive effects like said in this artile on Smashing Magazine.

  2. Paste content
    This is similar to what you proposed, but I suggest removing the "constructing a text table" part and just let the user paste the content in one go. This can also be considered a fallback to option 1. When automatic parsing of the file fails, let them upload it this way. You can tell the user what the markup is supposed to look like.

    Separate entries with a comma like this:
    User_id1 Resource_id1,
    User_id2 Resource_id2

If this is not possible and you need a table to correctly parse the information, at least provide the tool for creating said table. Users might not have the right tools on their device to create the table you want and you might not want users to leave your application so they can use a third application (next to your application and the application with the text file or spreadsheet).

  • the 2nd idea is almost exactly as I proposed. My use of the word 'table' is confusing, maybe I should use 'comma delimited table' or something. On the 1st idea, where do you drop the file, if you don't have an'upload button? This code will be running on a remote web server. Apologies if I'm missing something obvious.
    – Ken
    Feb 22, 2017 at 15:14
  • I've seen instances where an upload fires as soon as it detects a value inside. Removing the upload was just a suggestion to remove even more steps from the proces. And if option 2 is the same as your initial solution, the proposal of option1 as a neater/simpler way, still stands. Feb 22, 2017 at 15:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.