Reminders, part 2: wireframes

The heart and soul of the reminder application is going to be creating reminders and viewing a list of current reminders. There will also have to be some auxiliary features like viewing all (not just current) reminders, editing reminders, and deleting reminders. This will all also be hosted on a server, and that means accounts--signing up, logging in, forgotten passwords, and deleting accounts.

So far I've put together some wireframes for reminder lists and creating a new reminder, and some task flows for logging in, signing up, and resetting a password.  I'll save the login and registration flowcharts for the next post and just talk about the reminder lists and creating a new reminder here.

Reminder lists

Task list.  Basically the same for current and all tasks.  Tasks with the earliest "due date" appear at the top, color (& text) indicates age.

The current reminders list and the all reminders list should be about the same, with the exception, of course, that all reminders shows things you'll have to do some time in the future and things you've already done or recently deleted, and current reminders should be only things you currently have to do.

Current reminders may be completely empty most of the time--that's totally fine, especially with the desktop widgets, where it shouldn't take up any more space than absolutely necessary.  To that end, I've also made the longer description collapsible--it may not even be necessary to have the longer description, just a name, which would simplify this and the creation form nicely.  Most of the time there should just be unobtrusive buttons to create a new reminder or view all of them, making it much more obvious when one does actually appear.

When a task is visible, it should be possible to mark it as done, edit it, and delete it.  It should also show how urgent it is--for many of these sorts of tasks it doesn't matter if they don't get done right away, but bad things may happen if one waits too long to do them.  The time window probably depends on the task, and I've made it possible to set it in the "new reminder" form as you'll see below, but it might be better to simplify the form and just assume some standard period of time that people think works for most things.  It'll take a bit of research to see which is better, and if there is a standard timeframe what it should be.

One of the things I like to keep in mind when designing things is that everything should be reversible.  There are all sorts of studies that show that people just click through confirmation dialogs without thinking about them, which means stopping a user before they do something irreversible just doesn't work.  I've tried to set up this interface so that there are no irreversible tasks, anything that can be done can be undone.  Editing of course just takes another edit.  Marking things as finished and deleting them should make them disappear from the current tasks list, but they should stick around for a few moments and slowly fade out of sight so the user has time to undo the action if it was an accident.  They'll also appear in the All Reminders view, though deleted reminders should probably disappear from there too after a few days to get out of the way.

Creating and editing reminders

The form for creating a reminder.  Users can say what it is, when they need to do it relative to now, how long they should take to do it, whether/how often it repeats, and if they want email alerts.

The reminder creation form is a little longer than I originally intended; as mentioned above, it's possible that I can just get rid of the long description and the "When do you want to have it done by?" questions, reducing it down to just 4 questions.  One of my goals here is to make this as quick and painless as possible.  Having sensible defaults can help with this too, but that'll take some time seeing what people tend to actually put in the form.  And there may not be a sensible default for everyone, so there might have to be something in the backend that senses how people are actually using it and adapts.

All in all I think the form is pretty straight-forward.  The questions are pretty much how I intend to phrase them; I was going for a direct, conversational style and trying to avoid the short, jargony, disconected phrases that event schedulers often use.

I've made all of the dates relative, and I hope having the number selector followed by a drop-down of days/weeks/months/years embedded in a sentence will make sense.

One thing in particular to point out is the email section.  I mentioned in the previous post that emails are not ideal for task reminders, and I'd prefer to make something ambient; however, it's possible that something ambient isn't sufficiently noticeable, and anyway I'm not going to be able to support every platform that way.  I'm one lone developer, and I may be able to get something functional on Windows and Mac but I don't really intend to support each of the multiple desktop widget packages available on Linux, each with it's own custom python api.  So I've tried to address the previous concern with emails--that they get deleted or disappear under other things before I've done the task--by adding repeated emails.  Users will be able to click a link from the email to mark the task as completed.

The other thing to mention is that it should be easy for users to turn off all of those emails all at once without going through all of their tasks.  But if they do that and forget, they may be confused or angry when they don't receive an email from a new task added afterwards.  I've added a warning message there, and perhaps there should also be one on the task lists if there are tasks that send emails and emails are turned off.

After a task is created, the user should probably be taken back to the current tasks list.  But the task almost certainly won't be visible there yet, so it may be a little disconcerting to the user that they don't see it.  There will probably need to be a confirmation message of some sort displayed at the top of the form that gets out of the way after a few moments, probably with the name of the task and "in 6 months" or whenever it needs to be done.

What needs to be done

I've already diagrammed the login process that I want, and I'll talk about that a bit in the next post.  I'd like to wireframe that process, and also document the process for marking tasks finished via email, unsubscribing from all emails via the emails and via account preferences pages, and deleting accounts.

After that I'd like to build something interactive incorporating the feedback I'll hopefully have gotten from what I've posted so far, solicit more feedback on the whole process from that, and then maybe start building the real thing.

Comments