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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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