Install our app for a better experience!

Email System Overview

Teacher Evaluation Email System Overview

This document provides a comprehensive overview of the email functionality in the Teacher Evaluation system, covering both GUI and API approaches, configuration options, and system architecture.

Table of Contents

  1. System Overview
  2. Email Capabilities
  3. Architecture
  4. Configuration
  5. User Workflows
  6. Technical Implementation
  7. Security & Compliance

System Overview

The Teacher Evaluation Email System is a comprehensive solution for sending evaluation reports via email with multiple attachment formats, automatic delivery options, and flexible configuration settings.

Key Features

  • Multiple Access Methods: Web GUI and REST API
  • Rich Attachment Support: PDF, DOCX, and CSV formats
  • Flexible SMTP Configuration: Organization-specific or system default
  • Automatic Email Delivery: Configurable auto-send on completion
  • Custom Messaging: Personalized email content
  • Fallback Mechanisms: Multiple delivery options and error handling

Supported Use Cases

  1. Individual Teacher Feedback: Send single evaluation reports
  2. Batch Evaluation Summaries: Send aggregated analysis reports
  3. Automated Workflows: Automatic delivery upon completion
  4. Manual Override: Ad-hoc sending with custom recipients
  5. Multi-format Delivery: Different attachment formats for different needs

Email Capabilities

Attachment Formats

PDF Reports

  • Content: Professionally formatted evaluation report
  • Features: Charts, graphs, detailed analysis, branding
  • Use Case: Professional sharing, archiving, presentations
  • File Size: ~200-500KB
  • Advantages: Universal compatibility, consistent formatting
  • Generated Via: ReportLab with custom templates

Word Documents (DOCX)

  • Content: Fully editable evaluation report
  • Features: Structured content, tables, editable text
  • Use Case: Further editing, custom formatting, collaboration
  • File Size: ~300-800KB
  • Advantages: Editable, customizable, familiar format
  • Generated Via: python-docx with dynamic content

CSV Data Export

  • Content: Raw evaluation data and scores
  • Features: Detailed scoring breakdown, criterion analysis
  • Use Case: Data analysis, spreadsheet integration, research
  • File Size: ~50-200KB
  • Advantages: Lightweight, data-focused, analysis-ready
  • Generated Via: Django CSV writer with structured data

Email Content Structure

Subject: [Organization] - Teacher Evaluation Report - [Teacher Name]

Header Section:
- Personalized greeting
- Report type and organization branding
- Custom message (if provided)

Summary Section:
- Evaluation overview (batch name, rubric, evaluator)
- Key metrics (scores, feedback count, dates)
- Attachment format information

Content Section:
- Detailed analysis description
- Usage instructions
- Professional development notes

Footer Section:
- Organization contact information
- Professional closing
- Branding and signatures

Architecture

System Components

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Web Interface │    │   REST API      │    │  Email Service  │
│                 │    │                 │    │                 │
│ • GUI Forms     │───▶│ • Authentication│───▶│ • SMTP Manager  │
│ • User Controls │    │ • Validation    │    │ • Template Eng. │
│ • Dashboards    │    │ • JSON Handling │    │ • Attachment Gen│
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 ▼
                    ┌─────────────────┐
                    │   Data Layer    │
                    │                 │
                    │ • Models        │
                    │ • Database      │
                    │ • File Storage  │
                    └─────────────────┘

Email Flow Architecture

Request → Authentication → Permission Check → Data Validation
   │
   ▼
Generate Attachments (PDF/DOCX/CSV) → Template Rendering
   │
   ▼
SMTP Configuration Check → Organization SMTP OR Default SMTP
   │
   ▼
Email Sending → Logging → Response → User Confirmation

SMTP Hierarchy

Primary: Organization SMTP Settings
   
   ├─ Configured? ───Yes──▶ Use Organization SMTP
                            
                            ├─ Success ──▶ Deliver Email
                            
                            └─ Failure ──▶ Log Error, Use Fallback
   
   └─ Not Configured ────▶ Use Default SMTP (PrepareBuddy)
                             
                             └─ Deliver Email via Notification Accounts

Configuration

Organization-Level Configuration

SMTP Settings: - Host, port, authentication credentials - SSL/TLS encryption settings - From name and email address - Custom branding and signatures

Email Preferences: - Default attachment formats - Auto-email enable/disable - Fallback recipient settings - Message templates

Access Controls: - User roles and permissions - Email sending privileges - API access settings

Batch-Level Configuration

Per-Batch Settings: - Auto-email on completion: Enable/disable - Manual email recipient: Fallback address - Email format preferences: PDF/DOCX/CSV combinations - Default email message: Custom content

Format Options: - pdf_only: PDF format only - docx_only: Word document only - pdf_docx: PDF and Word document (recommended) - all_formats: PDF, Word document, and CSV

User-Level Configuration

Individual Preferences: - Email notification settings - Preferred attachment formats - Language and localization - Contact information

User Workflows

Web Interface Workflow

User Login → Navigate to Evaluation → Click "Email Report"
    │
    ▼
Fill Email Form (Name, Email, Formats, Message)
    │
    ▼
Submit → System Processing → Success Confirmation
    │
    ▼
Email Delivered → Recipient Receives Attachments

API Workflow

API Authentication → POST Request with JSON Data
    │
    ▼
Server Validation → Permission Check → Data Processing
    │
    ▼
Attachment Generation → Email Sending → JSON Response
    │
    ▼
Success/Error Status → Logging → API Response

Automatic Email Workflow

Batch Evaluation Completed  Check Auto-Email Settings
        If Enabled: Get Teacher Email  Generate Default Attachments
        Send Email with Default Message  Log Success/Failure

Technical Implementation

Backend Components

Django Views: - email_teacher_evaluation(): Individual evaluation emails - email_batch_evaluation(): Batch evaluation emails - api_send_individual_evaluation_email(): API individual emails - api_send_batch_evaluation_email(): API batch emails

Email Service (qbank/utils/email_service.py): - send_teacher_evaluation_email(): Main email function - _send_teacher_evaluation_email_thread(): SMTP handling - Organization SMTP with fallback to default accounts

Document Generation: - generate_teacher_evaluation_pdf(): PDF creation - generate_teacher_evaluation_docx(): Word document creation - download_teacher_evaluation_csv(): CSV export

Database Models

Core Models: - TeacherFeedbackEvaluation: Individual evaluations - TeacherFeedbackBatch: Batch evaluations with email settings - OrganizationSettings: SMTP and email configuration

Email-Specific Fields:

# TeacherFeedbackBatch
send_email_on_completion = models.BooleanField(default=False)
manual_email_recipient = models.EmailField(blank=True)
email_format_preferences = models.CharField(max_length=50)
email_message = models.TextField(blank=True)

API Endpoints

Email API (/assessment/api/): - POST /evaluations/{id}/email/: Send individual evaluation - POST /batches/{id}/email/: Send batch evaluation - POST /batches/{id}/email/configure/: Configure auto-email - GET /batches/{id}/email/status/: Get email status

Authentication: - Session-based (web interface) - Token-based (API integration) - Permission-based access control

SMTP Configuration

Organization SMTP:

# Organization settings support custom SMTP
settings = organization.settings.get_effective_settings()
if settings.get('smtp_enabled') and settings.get('smtp_host'):
    # Use organization SMTP with custom branding
    server = smtplib.SMTP_SSL(settings.get('smtp_host'), settings.get('smtp_port'))
    server.login(settings.get('smtp_username'), settings.get('smtp_password'))

Default SMTP Fallback:

# Fallback to system notification accounts
EMAIL_ACCOUNTS = [
    {
        'username': 'notification1@preparebuddy.com',
        'smtp_server': 'heracles.mxrouting.net',
        'daily_quota': 400
    },
    # ... multiple accounts for load balancing
]

Logging and Monitoring

Comprehensive Logging: - Email initiation and completion - SMTP connection details - Attachment generation status - Delivery success/failure - Error tracking and debugging

Log Levels: - INFO: Normal operation, successful delivery - WARNING: Fallback usage, retry operations - ERROR: Delivery failures, configuration issues - DEBUG: Detailed processing steps

Security & Compliance

Data Protection

Email Security: - All SMTP connections use SSL/TLS encryption - No sensitive data stored in email logs - Secure attachment generation and handling - Organization-specific data isolation

Access Control: - Role-based permissions (Admin, Examiner, Member) - Organization-based data access - API authentication requirements - Session management and timeout

Privacy Considerations

Personal Data Handling: - Teacher names and emails processed securely - Evaluation data encrypted in transit - Temporary attachment files cleaned up - Audit trail for email sending

GDPR Compliance: - Data minimization in email content - User consent for email communications - Right to withdraw from email notifications - Data retention and deletion policies

Email Delivery Security

SMTP Security: - SSL/TLS encryption for all connections - Authenticated SMTP only - No plain text credential storage - Secure fallback mechanisms

Content Security: - HTML email sanitization - Attachment virus scanning (organization-dependent) - Spam prevention measures - Email size limitations

Performance Considerations

Scalability Features

Asynchronous Processing: - Background email sending via threading - Non-blocking user interface - Queue management for high volume

Resource Optimization: - Efficient PDF/DOCX generation - Cached email templates - Connection pooling for SMTP - Memory management for large attachments

Load Balancing

Multiple SMTP Accounts: - Round-robin account selection - Daily quota management - Automatic failover - Performance monitoring

System Limits: - Email size restrictions (~10MB total) - Rate limiting per organization - Concurrent email processing - Resource usage monitoring

Monitoring and Analytics

Email Metrics

Delivery Statistics: - Success/failure rates - Delivery time tracking - SMTP performance monitoring - Error pattern analysis

Usage Analytics: - Email volume per organization - Popular attachment formats - API vs GUI usage patterns - User engagement metrics

Health Monitoring

System Health Checks: - SMTP connectivity tests - Email template validation - Attachment generation testing - Performance benchmarking

Alerting: - Failed delivery notifications - SMTP configuration issues - High error rate alerts - Performance degradation warnings

Future Enhancements

Planned Features

Advanced Email Features: - Email scheduling and delayed sending - Rich HTML email templates with organization branding - Email tracking and read receipts - Bulk email operations for multiple recipients

Enhanced Configuration: - Email template customization interface - Advanced SMTP load balancing - Multi-language email support - Email approval workflows

Integration Capabilities: - Learning Management System (LMS) integration - Calendar integration for email scheduling - Advanced analytics and reporting - Webhook support for external systems

Technical Roadmap

Performance Improvements: - Asynchronous task queue (Celery/Redis) - Improved caching strategies - Optimized attachment generation - Enhanced error recovery

Security Enhancements: - Advanced authentication methods - Enhanced audit logging - Improved data encryption - Security compliance reporting


This email system provides a robust, scalable, and user-friendly solution for delivering teacher evaluation reports through multiple channels with comprehensive configuration options and enterprise-grade reliability.