Files
application-form-7/prompts/004-hr-notification-review-page.md
2025-12-27 21:57:10 +01:00

4.5 KiB

Prompt 004: HR Email Notifications and Application Review Page

Objective

Implement HR email notifications when an application is submitted and create a review page where HR can view complete application details and download attachments.

Requirements

1. HR Email Notification

  • When user submits application on page 4 (submit_application route), send email to HR
  • HR email address configurable via environment variable HR_EMAIL
  • Email should be in German
  • Email should include:
    • Job position name
    • Applicant's name and email
    • Submission timestamp
    • Direct link to application review page: http://yourdomain.com/application/<session_id>/
    • Brief summary (e.g., number of documents uploaded)

2. Application Review Page Route

  • Create new route: /application/<session_id>/
  • No additional authentication needed (session ID provides security through obscurity)
  • Display all application information in a clean, readable format
  • Show all uploaded files with download links

3. Application Review Template

  • Create templates/application_view.html
  • Display in German:
    • Job position
    • Personal information (all fields from page 2)
    • Motivation answers (all fields from page 3)
    • List of uploaded documents with:
      • Original filename
      • File size
      • Download link for each file
    • Submission timestamp
    • Email address used for application

4. File Download Route

  • Create route: /application/<session_id>/download/<filename>
  • Serve the actual uploaded file
  • Use send_from_directory with proper security checks
  • Verify filename exists in application's uploaded_files list

5. Configuration Updates

  • Add HR_EMAIL to config.py with environment variable
  • Add HR_EMAIL to .env.example
  • Add APPLICATION_URL_BASE to config for constructing full URLs in emails

6. Error Handling

  • Handle missing application gracefully (404 error)
  • Handle missing files gracefully (404 error)
  • Validate session_id format

7. Testing Requirements

  • Test HR email is sent on application submission
  • Test email contains correct information and link
  • Test application review page displays all data correctly
  • Test file download works
  • Test error cases (invalid session_id, missing files)
  • Test that HR email is not sent if email sending fails

Technical Implementation Notes

Email Template (German)

Betreff: Neue Bewerbung eingegangen: {job_name}

Sehr geehrtes HR-Team,

es ist eine neue Bewerbung eingegangen:

Position: {job_name}
Name: {firstname} {name}
E-Mail: {email}
Eingereicht am: {timestamp}
Anzahl der hochgeladenen Dokumente: {file_count}

Sie können die vollständige Bewerbung hier einsehen:
{application_url}

Mit freundlichen Grüßen,
Ihr Bewerbungssystem

File Storage Structure

Files are already stored in: applications/<session_id>/files/<stored_filename> The stored_filename is in the uploaded_files list in the YAML data.

Security Considerations

  • Session IDs are UUIDs (sufficiently random and unguessable)
  • Only allow downloading files that are listed in the application's uploaded_files
  • Use secure_filename() when handling file operations
  • No directory traversal attacks (verify file is in correct session folder)

Files to Modify

  1. config.py

    • Add HR_EMAIL configuration
    • Add APPLICATION_URL_BASE configuration
  2. .env.example

    • Add HR_EMAIL example
    • Add APPLICATION_URL_BASE example
  3. app.py

    • Modify submit_application route to send HR email
    • Add new route: view_application(session_id)
    • Add new route: download_file(session_id, filename)
    • Add email helper function for HR notification
  4. templates/application_view.html (NEW)

    • Create clean layout for HR to review application
    • Display all fields in German
    • Provide download links for attachments

Files to Create (Tests)

  1. tests/test_hr_notifications.py (NEW)

    • Test HR email is sent on submission
    • Test email content is correct
    • Test email contains proper link
  2. tests/test_application_view.py (NEW)

    • Test application view page renders correctly
    • Test all data is displayed
    • Test file download works
    • Test 404 for invalid session_id
    • Test 404 for invalid filename

Success Criteria

  • HR receives email when application is submitted
  • Email contains all required information in German
  • Application review page displays all application data
  • HR can download all uploaded files
  • All existing tests still pass
  • New tests achieve high coverage for new functionality
  • No security vulnerabilities introduced