Skip to content

[HIGH] Implement email notification service integration (SendGrid or AWS SES) #94

Description

@kilodesodiq-arch

Engineering Gap

sendReceiptViaEmail in app/backend/src/claims/claims.service.ts line 642 is a TODO stub. The method logs but never sends email. Core receipt-sharing feature non-functional.

Codebase Evidence

  • app/backend/src/claims/claims.service.ts lines 637-651: sendReceiptViaEmail logs with "[EMAIL STUB]" prefix, TODO comment references SendGrid/AWS SES
  • app/backend/src/notifications/notifications.processor.ts: BullMQ processor exists with concurrency config, ready for email jobs
  • No email provider SDK in package.json dependencies
  • app/backend/src/notifications/notifications.module.ts: Module infrastructure exists

Risk Profile

Current Risk

Receipt sharing feature non-functional. Users requesting email receipts receive nothing.

Business Impact

Broken user trust. Inability to deliver proof-of-claim. Non-compliance with humanitarian accountability standards.

Remediation Strategy

Integrate SendGrid (free tier for dev) or AWS SES. Add provider SDK. Create EmailService in notifications module. Wire into BullMQ processor for async delivery. Add email-specific Prometheus metrics.

Success Conditions

  • Email provider integrated with SDK
  • Async delivery via existing BullMQ processor
  • Env var configuration for credentials
  • Graceful failure with retry
  • Email metrics in observability

Change Surface

Files: claims/claims.service.ts, new notifications/email/email.service.ts, notifications/notifications.module.ts, package.json

Security Review

Email provider API keys must be stored via env vars. Must not log email addresses or receipt content in production.

Completion Checklist

  • Implementation completed
  • Peer reviewed
  • Tests passing
  • Security review completed
  • Ready for merge

Metadata

Metadata

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official Campaignfeaturehelp wantedExtra attention is neededhighHigh severity issues

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions