#pragma page-filename DEV/versions/7962631
= Global Requirements =
Consistency in user interfaces lets users make less errors and they feel more secure in what they do.
<
>
{{{
In theory all clients should conform to the following requirements.<
> In practice mileage depends on what the client technology gives.}}}
== Interface Architecture ==
Mailman makes a huge amount of configuration options available on its interfaces. MM3 will make orientation in easier:
* Main menu options will be ordered by usage frequency
* The interface will be task-oriented
* The homepage will list the most frequent tasks (and will show a statistic graph to give the owner a quick overview of the systems health state).
* Navigation will be completely reorganized (see Navigation principles below).
=== Navigation Principles ===
The following rules, ordered by priority, should apply:
1. Separate options by their effect or purpose e.g. "configuration", "statistics" or "pending requests".
1. Group similiar options e.g. "filter" subsumes filtering options for senders, recipients, content, headers, etc.
1. Combine all simliar options in one page
1. Within a page show only the most used options and hide the less used ones
1. Unhide the less used ones upon user request
=== First Login Wizzard ===
When an owner logs in for the first time - after list creation - a wizard is offered. The wizzard takes the user on a quick tour across all configuration options that usually are consulted after list creation.
The goal is to give the owner an overview of the most important configuration options and their current settings as well as a chance to set basic list behaviour without having to search and click through endless configuration pages.
== Accessibility ==
If a client technology provides means to make the interface more accessible, they should be followed.
== Design Patterns ==
Operating systems have design patterns that describe how things should look and how standard processes should work. If we develop a client for a system that provides such a catalog we should follow it. Users will honour the consistency, feel at home and will make less errors.
== Information Architecture ==
=== Navigation Structure ===
==== Role: Admin (owner) ====
See a commented [[../administrator navigation structure|administrator navigation structure]].
{{{
maintenance
requests
options
General
Subscription Rules
Language
Non-Digest/Digest
Filter
Sender
Recipient
Spam
Message
Topics
Bounces
Archive
Gateways
Auto-Responder
Plugins
subscriptions
subscribe
remove
statistics
System
List
User
plugins
plugin 1
configuration options
plugin 2
}}}
==== Role: Moderator ====
See a commented [[../moderator navigation structure|moderator navigation structure]].
{{{
requests
statistics
System
List
User
plugins
plugin 1
configuration options
plugin 2
}}}
==== Role: Subscriber ====
See a commented [[../subscriber navigation structure|subscriber navigation structure]].
{{{
options
general
topics
plugins
subscriptions
subscribe
remove
modify
statistics
List
}}}
=== messages and notifications ===
We should provide a set of MM3 specific help messages and notifications. Any client should use these, so users get a consistent experience - no matter which client.
=== Permitted actions ===
==== Role: Anonymous ====
* account
* create
* list
* subscribe
* archive
* read
* admin
* contact
==== Role: User ====
* login
* logout
* account
* modify
* list
* subscribe
* unsubscribe
* modify personal settings
* archive
* read
* admin
* contact
==== Role: Moderator ====
* login
* logout
* requests
* modify
==== Role: Admin (owner) ====
* login
* logout
* account
* modify
* list
* create
* modify
* delete
* moderator
* create
* modify
* delete
* user
* create
* modify
* delete
* member
* subscribe
* unsubscribe
* requests
* modify
----
* [[DEV/Pro - Con ACL in different Layers (WebUI)|Pro - Con ACL in different Layers (WebUI)]]
* [[DEV/administrator navigation structure|administrator navigation structure]]
* [[DEV/moderator navigation structure|moderator navigation structure]]
* [[DEV/subscriber navigation structure|subscriber navigation structure]]
----
<>