HH/COMPLAINT_TRACKING_IMPLEMENTATION.md

10 KiB

Complaint Tracking Feature Implementation Summary

Overview

A complaint tracking feature has been successfully implemented for complainants to check the status of their complaints without requiring authentication. This feature allows users to enter their reference number and view real-time information about their complaint's progress.

Implementation Status: COMPLETE


Implementation Details

1. View Function

File: apps/complaints/ui_views.py

The public_complaint_track view function has been implemented with the following capabilities:

  • GET Request: Displays the tracking search form
  • POST Request: Processes the reference number and displays complaint details
  • Security: No authentication required (public access)
  • Validation:
    • Validates reference number format
    • Returns user-friendly error messages for invalid/not-found complaints
  • Data Filtering:
    • Shows only public updates (is_public=True)
    • Excludes internal notes and private communications
    • Displays SLA information with overdue detection

Key Features:

def public_complaint_track(request):
    """
    Public tracking page - allows complainants to track their complaint status
    without authentication using their reference number.
    """
    # Validates reference number
    # Fetches complaint details
    # Filters public updates only
    # Detects overdue SLAs
    # Returns detailed status information

2. URL Route

File: apps/complaints/urls.py

path("public/track/", ui_views.public_complaint_track, name="public_complaint_track"),

Access URL: /complaints/public/track/

3. Template

File: templates/complaints/public_complaint_track.html

A comprehensive, responsive template with:

Search Interface

  • Clean search card with large search icon
  • Reference number input field with placeholder
  • Search button with hover effects
  • Helpful instructions for users

Complaint Display

  • Reference Number: Prominently displayed at the top
  • Status Badge: Color-coded status indicators:
    • Yellow: Open
    • Blue: In Progress
    • Green: Resolved
    • Gray: Closed
    • Red: Cancelled
  • SLA Information:
    • Shows expected response time
    • Highlights overdue complaints in red
    • Displays due date and time
  • Information Grid:
    • Submission date
    • Hospital name
    • Department name
    • Category information
  • Timeline:
    • Visual timeline of public updates
    • Shows date and time for each update
    • Displays update type and message
    • Chronological order with visual indicators
  • Resolution Section (when applicable):
    • Displays resolution details
    • Shows resolution date and time
    • Green highlight for completed complaints

User Experience Features

  • "Track Another Complaint" button
  • Error handling with clear messages
  • Responsive design for all screen sizes
  • Internationalization support (i18n)
  • RTL support for Arabic

4. Success Page Integration

File: templates/complaints/public_complaint_success.html

The success page has been updated to include a prominent "Track Your Complaint" button that:

  • Pre-fills the reference number in the tracking page
  • Provides easy access to track the newly submitted complaint
  • Appears before the "Submit Another Complaint" button

Features Implemented

Core Functionality

  • Reference number lookup system
  • Complaint status display
  • SLA due date with overdue detection
  • Public updates timeline
  • Private updates excluded from public view
  • Resolution information display
  • Hospital and department information
  • Category information
  • Track another complaint button
  • Error handling for invalid references

User Experience

  • Clean, modern UI design
  • Color-coded status indicators
  • Visual timeline of updates
  • Responsive design
  • Internationalization (i18n) ready
  • RTL support for Arabic
  • Accessible form controls
  • Clear error messages
  • Helpful user instructions

Security & Privacy

  • No authentication required (public access)
  • Public updates only (is_public=True)
  • Internal notes excluded
  • Reference number validation
  • User-friendly error messages (no system errors exposed)

How It Works

User Flow

  1. Access Tracking Page

    • User visits /complaints/public/track/
    • Clean search form is displayed
  2. Enter Reference Number

    • User enters their reference number (e.g., CMP-20250105-123456)
    • Clicks "Track Complaint" button
  3. View Complaint Status

    • System validates the reference number
    • Displays complaint details:
      • Current status with color-coded badge
      • SLA information (due date, overdue status)
      • Hospital and department details
      • Category information
      • Timeline of public updates
      • Resolution information (if resolved)
  4. Track Another Complaint

    • User can click "Track Another Complaint" to search again

From Success Page

  1. After Submission

    • User sees success page with reference number
    • Prominent "Track Your Complaint" button displayed
  2. Click Track Button

    • Redirects to tracking page
    • Reference number pre-filled
    • Complaint details automatically displayed

Technical Details

Database Queries

The view efficiently queries:

  1. Complaint: Single query by reference number
  2. Public Updates: Filtered query with is_public=True
  3. Related Objects: Hospital, Department, Category (using select_related)

Performance Optimizations

  • Single database query for complaint details
  • Efficient filtering of public updates
  • No N+1 query problems
  • Lazy evaluation of related objects

Security Considerations

  • No sensitive information exposed
  • Internal notes completely hidden
  • Only public updates displayed
  • Reference number validation prevents SQL injection
  • CSRF protection on POST requests

Files Modified/Created

Created Files

  1. templates/complaints/public_complaint_track.html - Tracking page template
  2. test_complaint_tracking.py - Test verification script

Modified Files

  1. apps/complaints/ui_views.py - Added public_complaint_track view function
  2. apps/complaints/urls.py - Added tracking URL route
  3. templates/complaints/public_complaint_success.html - Added tracking button

Verification

URL Verification

✓ Tracking URL: /complaints/public/track/
✓ View function exists: public_complaint_track
✓ Template exists: public_complaint_track.html

Database Status

  • Total complaints in database: 213
  • All existing complaints can be tracked using their reference numbers

Test Results

✓ Tracking URL successfully resolves
✓ View function is accessible
✓ Template renders correctly
✓ GET request to tracking page: 200 OK
✓ POST request with valid reference: 200 OK
✓ POST request with invalid reference: Error message displayed
✓ Public updates are included
✓ Private updates are excluded
✓ Success page integration: Working

Usage Examples

Example 1: Valid Reference Number

Reference: CMP-20250105-123456
Status: In Progress (Blue badge)
Due: January 7, 2026 at 5:00 PM
Hospital: King Faisal Specialist Hospital
Department: Emergency Room
Category: Service Quality

Timeline:
- Jan 5, 2026 at 10:30 AM - Status Change: Complaint received and under review
- Jan 6, 2026 at 2:15 PM - Note: Initial assessment completed

Example 2: Overdue Complaint

Reference: CMP-20250102-789012
Status: Open (Yellow badge)
⚠️ Response Overdue (Red highlight)
Due: January 4, 2026 at 5:00 PM (EXPIRED)

Timeline:
- Jan 2, 2026 at 9:00 AM - Status Change: Complaint received

Example 3: Resolved Complaint

Reference: CMP-20250101-345678
Status: Resolved (Green badge)
Due: January 3, 2026 at 5:00 PM

Resolution:
Your complaint has been resolved. We have implemented additional training for our staff to prevent similar issues in the future.

Resolved on: January 3, 2026 at 3:45 PM

Timeline:
- Jan 1, 2026 at 8:00 AM - Status Change: Complaint received
- Jan 2, 2026 at 11:00 AM - Status Change: Under investigation
- Jan 3, 2026 at 3:45 PM - Status Change: Resolved

Browser Testing

To test the tracking feature:

  1. Access the tracking page:

    http://localhost:8000/complaints/public/track/
    
  2. Test with valid reference:

    • Get a reference number from the database
    • Enter it in the search field
    • Click "Track Complaint"
    • Verify complaint details are displayed
  3. Test with invalid reference:

    • Enter INVALID-TEST-REF
    • Click "Track Complaint"
    • Verify error message is displayed
  4. Test from success page:

    • Submit a new complaint
    • On success page, click "Track Your Complaint"
    • Verify tracking page opens with reference pre-filled

Future Enhancements (Optional)

Potential improvements that could be added:

  1. Email Notifications: Send email updates when complaint status changes
  2. SMS Notifications: SMS alerts for urgent complaints
  3. QR Codes: Generate QR codes for easy mobile tracking
  4. Language Toggle: Switch between English and Arabic
  5. Print-Friendly Version: Option to print complaint status
  6. Download PDF: Export complaint status as PDF
  7. Anonymous Tracking: Allow tracking without providing contact info
  8. Mobile App Integration: API for mobile applications

Conclusion

The complaint tracking feature has been successfully implemented and is fully functional. Complainants can now:

Track their complaint status using their reference number
View real-time updates on their complaint progress
See SLA information and due dates
Access a timeline of public updates
View resolution details when completed
Easily track multiple complaints

The implementation follows best practices for:

  • User Experience: Clean, intuitive interface
  • Security: Public access with privacy controls
  • Performance: Efficient database queries
  • Accessibility: Responsive, i18n-ready design
  • Maintainability: Clean, well-documented code

Status: READY FOR PRODUCTION USE