feat: expand feedback model with structured fields#67
Merged
theanmolsharma merged 8 commits intomainfrom Mar 22, 2026
Merged
Conversation
…o DTO Replace single feedbackText field with structured feedback fields (componentRatings, expectations, improvements, opportunityInterests, fellowshipInterests, idealProject, testimonial). Move entity-to-DTO mapping from FeedbackService.toResponseDto to a static GetFeedbackResponseDto.fromEntity factory method. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
151a49e to
161053e
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…service Add attachment support to the mail system and wire up the two new email templates (cohort-graduation-reminder, cohort-certificate) with their context interfaces and sending methods. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Include graduation weeks in reminder task scheduling and send graduation-specific reminder emails. Backfill graduation reminder tasks for existing active cohorts via migration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ate email task Use DbTransactionService in generateCertificatesForCohort to make the delete + save + task creation atomic. Add SEND_CERTIFICATE_EMAILS task type and handler to process certificate email delivery via the task processor. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Schedule weekly feedback reminder emails for cohort users who attended but haven't submitted feedback. The handler uses try/catch with isLastRetry to ensure the reminder chain continues even on failure, following the pattern from github-classroom.service.ts. Includes a backfill migration for active cohorts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sends rich Discord embeds (errorId, traceId, stack trace, endpoint) on 5xx errors. Rate-limited to 10 alerts/min, fire-and-forget so it never blocks error responses. Configurable via monitoring.discordErrorWebhookUrl. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0992284 to
a5e8cd6
Compare
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
feedbackTextfield with structured feedback fields:componentRatings,expectations,improvements,opportunityInterests,fellowshipInterests,idealProject,testimonialComponentRating,CohortComponent,OpportunityInterest,FellowshipInterest) for type-safe validationFeedbackService.toResponseDtoto a staticGetFeedbackResponseDto.fromEntityfactory method🤖 Generated with Claude Code