Skip to content

Applicant Dashboard & RSVP Files #451

@adityapat24

Description

@adityapat24

Goal

Create all files for the applicant dashboard branching logic and post-acceptance RSVP flow. No real logic yet, stubs only.

The shared (applicant)/layout.tsx is created by auth ticket This ticket only adds dashboard and rsvp pages inside it.

Folders to create

  • src/app/(applicant)/dashboard/
  • src/app/(applicant)/rsvp/
  • src/app/api/v1/status/
  • src/app/api/v1/post-acceptance/
  • src/lib/status/
  • src/components/dashboard/

Files to create

Routes

  • src/app/(applicant)/dashboard/page.tsx — routes user to correct branch component based on status
  • src/app/(applicant)/rsvp/page.tsx — post-acceptance RSVP form, gated by decisionStatus + confirm-by
  • src/app/api/v1/status/route.tsGET applicant status; POST is a no-op for now
  • src/app/api/v1/post-acceptance/route.tsPOST RSVP responses; stub returns 501

Library

  • src/lib/status/machine.ts — pure function: (user, dates, showDecision) → DashboardBranch
  • src/lib/status/service.tsgetApplicantStatus(userId), saveRsvp(userId, payload)
  • src/lib/status/types.tsDashboardBranch, ApplicantStatus, DecisionStatus, RsvpStatus, RsvpPayload types
  • src/lib/status/mock-singletons.ts — local mocks for confirm-by / show-decision

Components

  • src/components/dashboard/PreRegistrationView.tsx — pre-open state, "Applications open soon"
  • src/components/dashboard/InProgressView.tsx — draft saved, link to continue application
  • src/components/dashboard/SubmittedView.tsx — "We received your application" confirmation
  • src/components/dashboard/AdmittedView.tsx — acceptance message + RSVP CTA
  • src/components/dashboard/WaitlistedView.tsx — waitlist message
  • src/components/dashboard/DeclinedView.tsx — declined message
  • src/components/dashboard/RsvpForm.tsx — post-acceptance question form (RHF)
  • src/components/dashboard/ConfirmByCountdown.tsx — deadline display, disables RSVP after confirm-by

Acceptance criteria

  • All folders and files listed above exist and the project compiles.
  • /dashboard renders one of the branch placeholder views.
  • GET /status returns a typed mock; all other handlers return 501.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions