Skip to content

Add Email Notification Service with Templating #81

Description

@Mkalbani

Description

Integrate an email notification service that sends transactional emails for key game events — welcome on registration, password reset, achievement unlocked, weekly score summary. Emails should be templated, branded, and delivered via a configurable SMTP provider or third-party service like SendGrid. The service should queue emails asynchronously to avoid blocking API responses.

Acceptance Criteria

  • An email module is scaffolded at src/email/
  • Templates exist for: welcome, password-reset, achievement-unlocked, and weekly-summary
  • Emails are queued via a Bull/BullMQ job queue and sent asynchronously
  • Provider (SMTP or SendGrid) is selected and configured via environment variables
  • Failed sends are retried up to 3 times with exponential backoff
  • POST /admin/email/test (admin-only) sends a test email to a specified address
  • Players can opt out of non-critical emails via PATCH /users/me/email-preferences
  • Unit tests cover template rendering, queue submission, retry logic, and opt-out enforcement

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third Campaign

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions