Proposal/teacher onboarding mvp#595
Open
CarlyAThomas wants to merge 13 commits into
Open
Conversation
…cceptance page, tests)
…ity signature
- Convert pages/error.js and pages/teacher/invite/[inviteToken].js to modern Next.js Link pattern (no nested anchors)
- Refactor util/inviteEmail.js to accept object params {invitedTeacherEmail, inviteUrl, expiresAt, invitedByEmail}
- Ensures proper Nodemailer integration for teacher invitation emails
- redesign invite acceptance page with FCC-aligned styling - update teacher invitation email content and branding hierarchy - fix teacher invite post-accept redirect by role - improve revoke API message for inactive invites - add README testing/setup notes for SMTP invite flow
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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.
Checklist:
Update index.md)This PR is not associated with a specific issue
Case Study (Teacher Invite Acceptance Flow)
/teacher/invite/<token>.ACCEPTEDand user role is set toTEACHER.What Changed (and Why)
Teacher invite backend APIs to support create/list/resend/revoke and secure acceptance.
Reason: completes the core onboarding lifecycle with role-safe state transitions.
Files:
pages/api/admin/teacher_invites/create.js
pages/api/admin/teacher_invites/list.js
pages/api/admin/teacher_invites/resend.js
pages/api/admin/teacher_invites/revoke.js
pages/api/teacher_invites/accept.js
util/inviteApiUtils.js
Email delivery + feature flag rollout support.
Reason: enables controlled rollout and real invitation delivery.
Files:
util/inviteEmail.js
util/featureFlags.js
package.json
package-lock.json
Admin + teacher UI flow.
Reason: gives a usable end-to-end path from invite creation to invite acceptance.
Files:
components/TeacherInvitesPanel.js
components/TeacherInvitesPanel.module.css
pages/admin/index.js
pages/teacher/invite/[inviteToken].js
styles/Home.module.css
pages/error.js
Data model + migration for invitation lifecycle.
Reason: persists invitation state and supports expiry/revoke/accept transitions.
Files:
prisma/schema.prisma
prisma/migrations/20260409192210_add_invitation_models/migration.sql
Env/security/docs updates.
Reason: prevent future secret leaks and keep setup clear with tracked templates.
Files:
.gitignore
.env.sample
.env.development.example
.env.production.example
README.md
.env.development/.env.productionremoved from trackingValidation
npm run lint:codenpm test