Help and documentation should provide concrete steps that users can directly apply. Instructions must avoid vague language and clearly explain what to do, where to do it, and what outcome to expect.
Step-by-step wizards with the current step highlighted
New account
Next step
Personal data
Previous step
Next step
Newsletter settings
Previous step
Next step
Account activation
Previous step
Next step
Login
Previous step
Next step
Done
Previous step
Provide step-by-step instructionsUse vague or abstract languageSpecify where actions should be performedAssume users know where to find featuresExplain expected outcomes clearlyLeave users guessing about results
Easy to Search
Help and documentation should be easy to search so users can quickly find relevant information. Users should not be forced to read large manuals or browse long sections to locate specific answers.
Autocomplete search
latest searches
Fader Channel EQ Routing Effects
Provide a searchable help systemForce users to browse through long manualsUse clear, searchable keywordsUse technical jargon that users won't search forOrganize content with clear categoriesCreate deep, nested hierarchies
Focused on the User's Task
Help content should be task-oriented rather than system-oriented. It should explain how to achieve user goals, not how the system is internally structured or implemented.
off
on
To create a new account, click the "Sign up" button on the homepage. Enter your email
address and choose a secure password. You'll receive a confirmation email to verify your
account. Once verified, you can log in and start using the platform.
If you've forgotten your password, click "Forgot password" on the login page. Enter your
email address and you'll receive a link to reset your password. Click the link in the
email and follow the instructions to create a new password.
Go to your profile settings by clicking your avatar in the top right corner. Select "Edit
profile" and click on the current profile picture. Choose an image from your device (JPG,
PNG, or GIF format). The image will be automatically resized and saved to your profile.
Navigate to Settings from the main menu, then select "Notifications". Here you can choose
which types of notifications you want to receive (email, push, or in-app). Toggle the
switches next to each notification type to enable or disable them according to your
preferences.
To export your data, go to Settings and select "Privacy & Data". Click on "Export my data"
and choose the format you prefer (JSON or CSV). The export will be prepared and sent to
your email address within 24 hours. You'll receive a download link that remains active for
7 days.
The account creation module utilizes a RESTful API endpoint (/api/v1/users) that
implements a POST request handler. The module consists of three main components: the
UserRegistrationService, which validates input data against the UserSchema, the
EmailVerificationService that generates JWT tokens, and the DatabaseRepository that
persists user data to the PostgreSQL database using an ORM layer.
The password reset functionality is implemented through a microservice architecture. The
PasswordResetController receives requests and delegates to the TokenGeneratorService,
which creates time-limited tokens stored in Redis cache. The EmailDispatcherService sends
emails via SMTP using the configured mail server, and the PasswordHasherService uses
bcrypt with a salt factor of 12 to hash new passwords before storage.
The profile picture upload feature is built on a multipart/form-data handler that
processes file uploads through a middleware stack. Files are validated by the
FileValidatorService checking MIME types and size constraints, then processed by the
ImageProcessorService using Sharp library for resizing. The processed files are stored in
AWS S3 buckets with CDN distribution, and metadata is saved in the FileMetadataRepository
using MongoDB.
The notification system follows an event-driven architecture using a message queue
(RabbitMQ). The NotificationDispatcherService subscribes to events from the EventBus and
routes notifications through multiple channels. The EmailChannel uses SMTP, PushChannel
implements WebSocket connections, and InAppChannel stores notifications in a Redis pub/sub
system. User preferences are stored in a key-value store and retrieved via the
PreferenceService.
The data export functionality is implemented as an asynchronous job queue using Celery
workers. The ExportJobService creates background tasks that query the database using
SQLAlchemy ORM, serialize data using the DataSerializerService (supporting JSON and CSV
formats), and upload the result to cloud storage. The NotificationService sends email
notifications via the EmailGateway API, and download links are generated using signed URLs
with expiration timestamps stored in the URLRegistry table.
Focus on user goals and tasksExplain system architecture or implementationUse user-centered languageUse technical system terminologyShow how to accomplish real-world tasksDescribe features in isolation
Not Too Large
Help and documentation should be concise and focused. Large, exhaustive manuals increase cognitive load and reduce the likelihood that users will actually read or use the help provided.
off
on
Go to Settings → Security → Change Password. Enter your current password and your new
password twice. Click "Save" to update.
Introduction to Password Security
Password management is a critical aspect of digital security. This comprehensive guide covers
all aspects of password management, from basic concepts to advanced security protocols. Understanding
password security requires knowledge of cryptography, hashing algorithms, and security best
practices...
Chapter 1: Understanding Password Hashing
Passwords are stored using one-way hash functions. The system uses bcrypt with a salt factor
of 12. When you create a password, it goes through multiple transformation layers: first,
the input is normalized to handle Unicode characters, then it's salted using a cryptographically
secure random number generator...
Chapter 2: Password Complexity Requirements
The system enforces password complexity through a multi-stage validation process. Minimum
length is 8 characters, but we recommend 12 or more. The password must contain at least one
uppercase letter, one lowercase letter, one number, and one special character from the set:
!@#$%^&*()_+-=[]|;:,.?... Chapter 3: Password Reset Workflow
The password reset process involves multiple steps and security checks. When you request
a password reset, the system generates a time-limited token using JWT (JSON Web Tokens)
with a 1-hour expiration. This token is hashed and stored in our Redis cache with a TTL
(Time To Live) of 3600 seconds...
Chapter 4: Edge Cases and Error Handling
Various edge cases must be considered: what happens if the user requests multiple password
resets within a short time frame? The system implements rate limiting using a token bucket
algorithm. If more than 3 reset requests are made within 15 minutes, the system will temporarily
block further requests...
Chapter 5: Troubleshooting Common Issues
If you encounter issues changing your password, first check your browser's console for JavaScript
errors. Verify that cookies are enabled and third-party cookies are not blocked. Clear your
browser cache and try again. If the problem persists, check your network connection and
ensure you're not behind a corporate firewall that might be blocking API requests...
Appendix A: Technical Specifications
The password change endpoint is located at /api/v1/users/password. It accepts POST requests
with Content-Type: application/json. The request body must include currentPassword (string,
required), newPassword (string, required, minLength: 8), and confirmPassword (string, required)...
Keep help content concise and focusedCreate exhaustive, overwhelming manualsBreak content into digestible chunksPresent everything in one long documentPrioritize most common tasksInclude every possible edge case upfront
Related references and bibliographypotentially outdated
Articles & Posts
Alita Kendrick — Help and Documentation (Usability Heuristic #10)
Interface help comes in two forms: proactive and reactive. Proactive help is intended to get users familiar with an interface while reactive help is meant for troubleshooting and gaining system proficiency. https://www.nngroup.com/articles/help-and-documentation/
Kate Moran — Experience Design: The Next Iteration of UX?