A lot of time gets spent on designing for the end user. This is a necessity, but what often gets neglected is the people who administer the content.
With the size and scale of the websites we build for our clients, it takes some creative thinking to enable non-technical users to edit and configure all the moving parts of the system.
We consider two aspects when designing an admin interface:
1. Users
How many people will need to be administering the system? How technical will the user base be? If we are giving control of the system to a relatively technical team, we can be a little more lenient with the permissions we grant. If we are working with a user who has Facebook level knowledge we scale down the permissions to make the system as straight forward as possible. For example, when our clients want to easily edit everything but are not very technical, we will simply give them an inline editing tool that would allow them to edit the box by clicking a simple sprocket.
2. Budget
Unfortunately, budget does play a factor in designing the admin interface. This is one item that freelancers and small Drupal shops do not account for when bidding on Drupal projects. Budgeting time for developing the admin side of a Drupal site can make the difference between really enjoying administering the site's content and a frustrating user experience. When searching for a Drupal developer, make sure they have a plan to make the admin experience intuitive!
Once we know the type of user we are designing for and have set a budget, we start building the user interface keeping those 2 aspects in mind.
For the majority of the sites, we use a custom dashboard to tailor to the user profile on the system. One way we implement a feature like this is by directing the Drupal user login to the dashboard which looks something like this:
Custom Dashboard:
As you can see, the dashboard creates one central place for the Admin to control all of the major tasks for the site. Each dashboard is created on a per role basis. The average website has a couple of roles such as the Site admin, Content contributor, and Authenticated user.
In a more admin UI with more roles, we had a client who needed a workflow system for publishing content. In this system after a piece of content was created, it needed to be sent to an editor role for review. Then the piece of content was either back to the creator of the content for tweak or sent to a technical person for review. When each of those users gives approval, it was sent to a manager to review and publish.
With more complex workflows, publishing a simple dashboard isn't as useful, and we need to build a more intuitive admin interface to accommodate these requirements. For use cases like this we like to levarage and customize a Drupal module called Workbench.
Content Workflow Systems
Content Entry
You also need to think about how each piece of content will get added to the system. When adding content to a Drupal site, you can give the users a lot of control or limited input. When thinking about and designing these systems, it is usually better to limit the control a user can have with a piece of content.
The reason why we limit what a user can when editing content is to keep the flow of the site consistent. When you give the user too much control, they can add pictures where they don't look good, add a color that doesn't match the media guide, or introduce potential security holes.
To give the user full control of the system while making it difficult to break anything, we like to setup fields on each content type that are required in some use cases to keep the content output consistent. For example: one of our clients has large images that span across the top of the page on a portfolio page. This is a required field on the content page, so they are unable to mess with the look and feel of the system.
And this is the image field used to make sure it was output correctly.
By limiting the permissions set, it forces the user to correctly use the site.
Conclusion
Thinking through the admin user workflow and tasks will not only make life easy for them, but also creates a scalable solution as their organization grows. It also makes training so much easier!
Photo by Steve Hankins