Skip to content

Admin Applicants Table and Review Files #454

@adityapat24

Description

@adityapat24

Goal

Create the admin applicants table, single-applicant detail page, decision/RSVP inline editors, and CSV export. No real logic yet, stubs only.

The shared (admin)/layout.tsx is created by Ticket 5. This ticket only adds applicants pages inside it.

Folders to create

  • src/app/(admin)/admin/applicants/
  • src/app/(admin)/admin/applicants/[id]/
  • src/app/api/v1/applicants/[id]/
  • src/app/api/v1/export/applications/
  • src/app/api/v1/export/post-acceptance/
  • src/lib/applicants/
  • src/components/admin/applicants/

Files to create

Routes

  • src/app/(admin)/admin/applicants/page.tsx — filterable/sortable applicant table
  • src/app/(admin)/admin/applicants/[id]/page.tsx — single applicant detail + decision/RSVP edit
  • src/app/api/v1/applicants/route.tsGET paginated/filtered applicants list
  • src/app/api/v1/applicants/[id]/route.tsGET single applicant; POST decision/RSVP updates
  • src/app/api/v1/export/applications/route.ts — CSV export of application responses
  • src/app/api/v1/export/post-acceptance/route.ts — CSV export of RSVP responses

Library

  • src/lib/applicants/queries.tsbuildApplicantQuery(filters) for Mongo
  • src/lib/applicants/service.tslistApplicants(), getApplicant(), updateApplicant()
  • src/lib/applicants/csv.tstoCsv(rows, columns) helper, streams to response
  • src/lib/applicants/types.tsApplicantSummary, ApplicantDetail, ApplicantFilters, ApplicantUpdate types

Components

  • src/components/admin/applicants/ApplicantsTable.tsx — shadcn DataTable with sort/filter/pagination
  • src/components/admin/applicants/ApplicantsFilters.tsx — status/decision/search filter bar
  • src/components/admin/applicants/ApplicantDetail.tsx — read-only view of one applicant's responses
  • src/components/admin/applicants/DecisionEditor.tsx — inline edit for decisionStatus
  • src/components/admin/applicants/RsvpEditor.tsx — inline edit for rsvpStatus
  • src/components/admin/applicants/ExportButtons.tsx — "Export applications CSV" / "Export RSVPs CSV"

Acceptance criteria

  • All folders and files listed above exist and the project compiles.
  • /admin/applicants renders the table with mock data.
  • /admin/applicants/[id] renders the detail view with mock data.
  • GET handlers return typed mocks; POST and CSV export handlers return 501.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions