views:

39

answers:

2

I have to create this process:

  • you have an arbitrary list of people
  • you have to set their working schedule in terms of 5-2 or 6-4 (workdays and free days)
  • you have to schedule it for several months ahead (usually 3 or 12)
  • schedule sequence repeats
  • schedule sequence starts on any day for any person - so first work day is not necessarily on first Monday when you start setting schedule

So this is the process I have to implement. To make it more fast I want to set scheduling for multiple people on a single page (hence a list of users). Otherwise one would probably do this on some person's details page.

I wonder how should I implement this in a web application. I can use Ajax and advanced dynamic scenarios. I would like to make it as intuitive as possible and as simple as well so it shouldn't be to complicated for users doing it.

One possible solution

Each user is presented with this kind of a list row:

John Doe     | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | ...
Jane Doe     | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | ...
Joe Bloggs   | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | ...
Harry Wotsit | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | ...
  1. User clicks all days of the first sequence to make them orange/grey (working/free)
  2. Drags over the sequence (like drag cells in Excel to select them) and then an icon would appear at the end (probably a sort of an arrow) that
  3. user would then click to copy the same sequence to the end of schedule (similar to the small square on the right-bottom side of selected cells in Excel that makes it possible to copy those cells as long as you drag the square around.

I'm not sure whether this is the optimal and intuitive process.

+1  A: 

Does it have to be that snazzy??

You could simply have several text boxes, "daysOn", "daysOff", "startDate", "repeatX"

This would allow you to simply create patterns, which you could then display in some snazzy way.

Also, I would probably do this on a per user basis, so user at a time, if a company has several thousand workers on shift patterns you would not want to edit or display all that info in one shot. Would you??

Hope this helps.

jimplode
Or maybe you would want to display it all at a time, because you can glance any "holes" in schedules in general. And since they've been doing it in using Excel spreadsheets, it's something they're used to as well. I guess. And I don't think I understand the pattern of your textboxes. What would you enter into *daysON*, *daysOFF*? And instead of *repeatX* it would probably be better to use *repeatUntil*...
Robert Koritnik
BTW: Having textboxes is usually not intuitive, since users have to get used to the data patterns they have to use when entering data. Even though a script formats it for them... It's still not immediately obvious... I suppose.
Robert Koritnik
Well unless I missread, or miss understood your post, I was working on the assumption that the patterns were for example, daysOn = 6, daysOff = 3, repeatX = 12 (months/weeks/cycles)
jimplode
jimplode: Ok Jim. That explains it. Could use this kind of scenario.
Robert Koritnik
+1  A: 

Few hints:

  • use calendar control ( or equivalent in mvc) since it is more intuitive than row
  • try to avoid drag & drop because it's slow if you have to do it many times
  • try to minimalize click number needed to do a task. For examample when user select 5-2 term type and click in calendar to mark date when workdays starts this term should be assigned as default so user dont have to choose it again when want to mark another date as starting of 5-2 period.
  • use list with checkboxs to allow selecting many users
zgorawski
I wanted to use a row to save vertical space. There will be more than 200 rows of people... Using calendars, would make it more complicated to do mouse-drag day sequence selects as well.
Robert Koritnik
Huh... **I like** the idea of check boxes, to select several people at once. That's a good idea! but regarding drag-drop... I would only use it to select a sequence. And not to propagate it for the whole schedule date span.
Robert Koritnik
One more observation: Calendar may not be the most intuitive anyway, since they're used to doing it in Excel. So having horizontal calendars is considered something usual. And it gives a nice overview of the whole schedule.
Robert Koritnik
Uhm i thought that you will use only one row / calendar per page not one per user. But if yours users used to use excel then horizontal calendar might be intuitive for them, just as you said.
zgorawski
I suppose it would yes. To existing users definitely. But what about new users? I wonder...
Robert Koritnik