11 KiB
PX360 User Onboarding System - Complete Implementation
Overview
A comprehensive user onboarding system that ensures all new users receive proper training on the PX360 system before gaining full access. Users must complete a guided wizard, review content, and acknowledge checklist items before activating their accounts.
Key Features
1. Provisional User Management
- Provisional Users: Users created without passwords who must complete onboarding
- Invitation System: Email invitations with secure tokens
- Token Validation: Time-limited tokens (default 7 days)
- Audit Trail: Complete logging of all provisional user events
2. Onboarding Wizard
- Multi-step Process: Guided wizard with clear progression
- Content Presentation: HTML-rich content in English and Arabic
- Progress Tracking: Real-time progress percentage
- Resume Capability: Users can pause and resume later
3. Acknowledgement Checklist
- Required Items: Must be acknowledged before account activation
- Digital Signature: Users sign to confirm understanding
- Audit Trail: All acknowledgements logged with timestamps
- Role-Specific: Different checklists for different roles
4. Account Activation
- Username/Password Creation: After completing onboarding
- Final Signature: Legal signature on completed onboarding
- Admin Notification: Email notification to PX Admins
- Automatic Activation: Immediate access upon completion
Database Models
User Model Extensions
- is_provisional: Boolean (new users)
- invitation_token: UUID (secure token)
- invitation_expires_at: DateTime
- acknowledgement_completed: Boolean
- acknowledgement_completed_at: DateTime
- current_wizard_step: Integer
- wizard_completed_steps: JSONField
Acknowledgement Content
- code: Unique identifier
- title_en/title_ar: Bilingual titles
- content_en/content_ar: HTML content
- role: Optional role filter
- order: Display order
- is_active: Boolean
Acknowledgement Checklist Item
- code: Unique identifier
- content: FK to AcknowledgementContent
- text_en/text_ar: Checklist item text
- description_en/description_ar: Additional context
- is_required: Must acknowledge to proceed
- order: Display order
User Acknowledgement
- user: FK to User
- checklist_item: FK to ChecklistItem
- is_acknowledged: Boolean
- acknowledged_at: DateTime
- signature: Digital signature
User Provisional Log
- user: FK to User
- event_type: String (created, invited, reminder, completed, expired)
- metadata: JSONField (additional details)
- created_at: DateTime
API Endpoints
User Onboarding Actions
POST /api/auth/onboarding/create-provisional Create provisional user (Admin)
POST /api/auth/users/{id}/onboarding/resend-invitation Resend invitation (Admin)
GET /api/auth/onboarding/progress Get onboarding progress
GET /api/auth/onboarding/content Get wizard content
GET /api/auth/onboarding/checklist Get checklist items
POST /api/auth/onboarding/acknowledge Acknowledge checklist item
POST /api/auth/onboarding/complete Complete wizard and activate account
GET /api/auth/users/{id}/onboarding/status Get user onboarding status (Admin)
Content Management
GET /api/auth/acknowledgement-content/ List content (Admin)
POST /api/auth/acknowledgement-content/ Create content (Admin)
GET /api/auth/acknowledgement-checklist-items/ List checklist items (Admin)
POST /api/auth/acknowledgement-checklist-items/ Create checklist item (Admin)
GET /api/auth/user-acknowledgements/ List acknowledgements
UI Pages
Wizard Pages
-
Welcome Page (
/onboarding/welcome)- Introduction to onboarding process
- Overview of what to expect
-
Content Step (
/onboarding/content/{step})- Display content for current step
- Navigation controls (Next/Previous)
- Progress indicator
-
Checklist Step (
/onboarding/checklist)- List of items to acknowledge
- Required vs optional items
- Acknowledge each item with signature
-
Activation Step (
/onboarding/activate)- Create username and password
- Final signature
- Complete onboarding
-
Complete Page (
/onboarding/complete)- Success message
- Redirect to dashboard
Management Pages
-
Provisional Users List (
/accounts/onboarding)- List all provisional users
- Filter by status, role, hospital
- Action buttons (resend, view progress, etc.)
-
Create Provisional User (
/accounts/onboarding/create)- Form to create new provisional user
- Select roles and assign to hospital/department
-
User Progress (
/accounts/onboarding/{id}/progress)- Detailed progress view
- Acknowledgement status
- Timeline of events
Email Templates
Invitation Email
- Subject: "Welcome to PX360 - Complete Your Onboarding"
- Content: Welcome message + secure link to onboarding wizard
- Arabic version available
Reminder Email
- Subject: "Reminder: Complete Your PX360 Onboarding"
- Content: Reminder to complete onboarding before expiration
- Sent at 50% and 80% of token lifetime
Completion Notification
- Sent to PX Admins
- Contains user details and completion time
- Includes link to user profile
Security Features
- Secure Tokens: UUID-based invitation tokens
- Token Expiration: 7-day validity period
- Password Validation: Django's built-in password validators
- Audit Logging: All actions logged for compliance
- Permission Checks: Role-based access control
- Digital Signatures: Cryptographic signature verification
Middleware
OnboardingMiddleware
- Automatically redirects provisional users to onboarding wizard
- Prevents access to other parts of the system
- Allows access to onboarding pages and API endpoints
Services
OnboardingService
- create_provisional_user(user_data)
- validate_invitation_token(token)
- get_user_progress(user)
- get_user_progress_percentage(user)
- get_wizard_content(user)
- get_checklist_items(user)
- acknowledge_item(user, item, signature, request)
- complete_wizard(user, username, password, signature, request)
EmailService
- send_invitation_email(user, request)
- send_reminder_email(user, request)
- send_completion_notification(user, admin_users, request)
Default Content
The system comes with pre-configured acknowledgement content:
Generic Content (All Users)
- Welcome to PX360: System overview and key features
- Data Privacy & Security: Data protection policies and user responsibilities
- System Usage Guidelines: Best practices and support information
Role-Specific Content
- PX Admin: Admin responsibilities and oversight
- Hospital Admin: Hospital-level management scope
- Department Manager: Department operations oversight
- Physician: Physician role in patient experience
- Staff: Staff responsibilities and service standards
User Flow
New User Onboarding
- Admin creates provisional user via management interface
- System sends invitation email with secure link
- User clicks link to start onboarding wizard
- User reviews content for each step
- User acknowledges checklist items (required items must be acknowledged)
- User creates username and password
- User signs final acknowledgement
- Account activated and user redirected to dashboard
- PX Admins receive notification email
Resume Onboarding
- Users can pause and resume at any time
- Progress is saved automatically
- Must complete before invitation token expires
- Can request new invitation if token expires
Admin Workflow
Create New User
- Navigate to
/accounts/onboarding - Click "Create Provisional User"
- Fill in user details (name, email, roles, hospital, department)
- System creates provisional user and sends invitation
- Track user progress from the list view
Monitor Progress
- View all provisional users on list page
- Click on user to see detailed progress
- View acknowledgement status
- Resend invitation if needed
Configuration
Settings
# Invitation token validity (in days)
INVITATION_TOKEN_VALIDITY_DAYS = 7
# Reminder schedule (percentage of token lifetime)
INVITATION_REMINDER_SCHEDULE = [50, 80]
# Onboarding wizard URL
ONBOARDING_WIZARD_URL = '/onboarding'
Permissions
CanManageOnboarding
- PX Admins only
- Can create provisional users
- Can resend invitations
- Can view all onboarding status
IsProvisionalUser
- Users with is_provisional=True
- Can access onboarding wizard
- Cannot access other parts of system
CanViewOnboarding
- PX Admins
- Can view any user's onboarding status
CanManageAcknowledgementContent
- PX Admins only
- Can create/edit acknowledgement content
- Can create/edit checklist items
Audit Trail
All provisional user events are logged:
- User created
- Invitation sent
- Reminder sent
- Item acknowledged
- Wizard completed
- Token expired
- Account activated
Testing
Manual Testing Checklist
- Create provisional user as PX Admin
- Verify invitation email received
- Click invitation link and verify wizard loads
- Navigate through all wizard steps
- Acknowledge required checklist items
- Try to skip required items (should fail)
- Create username and password
- Sign final acknowledgement
- Verify account activated
- Verify admin notification received
- Test resume functionality (pause and return)
- Test expired token scenario
- Verify provisional users cannot access other pages
- Test role-specific content visibility
Management Commands
Initialize Onboarding Data
python manage.py init_onboarding_data
Populates the database with default acknowledgement content and checklist items.
Future Enhancements
Potential improvements for future versions:
- Video Tutorials: Embedded video content for visual learners
- Quiz Assessments: Knowledge check before allowing progress
- Gamification: Badges and achievements for completing onboarding
- Bulk Onboarding: Import multiple users from CSV
- Custom Content Per Hospital: Hospital-specific onboarding content
- Analytics Dashboard: Onboarding completion rates and insights
- Mobile-Optimized: Better mobile experience for onboarding wizard
Support
For issues or questions:
- Check the implementation guide:
docs/ONBOARDING_IMPLEMENTATION_GUIDE.md - Review the quick start guide:
docs/ONBOARDING_QUICK_START.md - Contact the PX360 support team
Conclusion
The PX360 User Onboarding System ensures that all new users receive comprehensive training and acknowledge their understanding of the system before gaining access. This promotes:
- Better user adoption and understanding
- Compliance with data privacy policies
- Clear expectations and responsibilities
- Audit trail for legal and compliance purposes
- Professional onboarding experience
The system is production-ready and fully integrated with the existing PX360 application.