-
Notifications
You must be signed in to change notification settings - Fork 1
Participant Dash and Matching Backend APIs #65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…hes; add request new matches API for participants that creates a new Matching task
…so that all time slots but start at the 0 or 30, and be 30 minutes in length
… test environment locally
|
@codex review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
…t double-booking volunteers
|
@codex review again |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
|
@codex review again |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. |
- Matches default to awaiting_volunteer_acceptance status
- Volunteers must accept matches before participants can see them
- Add GET /matches/volunteer/me and POST /matches/{id}/accept-volunteer endpoints
- Validate volunteers have availability before accepting matches
- Add pending_volunteer_request field to track participant requests
Notion ticket link
Participant Dashboard
Implementation description
This PR implements the complete backend API surface for the participant dashboard match management system,
enabling participants to view, schedule, cancel, and request changes to their volunteer matches.
Core Features
1. Match Status System (commits 987986a, 587ab2a)
pending,confirmed,cancelled_by_participant,cancelled_by_volunteer,completed,requesting_new_times,requesting_new_volunteers,rescheduled,no_showsecondary_application_todoafter submitting secondaryapplication
2. Admin Match Management APIs (commit 8f33eff)
POST /matches/- Create matches between participants and volunteersPUT /matches/{match_id}- Update match details (volunteer assignment, status, chosen time)GET /matches/participant/{participant_id}- View all matches for a specific participant (admin only)3. Participant Match APIs (commits 8f33eff, 9a5723b)
GET /matches/me- View all my matches with volunteer info and suggested timesPOST /matches/{match_id}/schedule- Select a time slot and confirm the matchconfirmedPOST /matches/{match_id}/request-new-times- Request alternative meeting timesrequesting_new_times4. Cancellation Workflows (commit da85902)
POST /matches/{match_id}/cancel- Participant cancels their matchcancelled_by_participantPOST /matches/{match_id}/cancel-volunteer- Volunteer/admin cancels matchcancelled_by_volunteer5. Request New Volunteers (commit da85902)
POST /matches/request-new-volunteers- Participant requests different volunteer matches6. Time Block Validation & Consistency (commits 9a5723b, 85f98f6)
TimeRangeschema validation::00or:30only)7. Code Cleanup (commit e423a8f)
/matches/confirm-timeendpoint (unsecured, duplicated functionality)SubmitMatchRequest,SubmitMatchResponsesubmit_time()service method8. Comprehensive Testing (commits fc514c4, c6276d6)
tests/unit/test_time_block_validation.py- Pure schema validation tests (no database)tests/unit/test_match_service.py- Full integration tests covering all match endpointspdm run test-setupcommand*.dbto .gitignoreAPI Surface Summary
Admin Endpoints (3):
POST /matches/- Create matchesPUT /matches/{match_id}- Update matchGET /matches/participant/{participant_id}- View participant's matchesParticipant Endpoints (5):
GET /matches/me- View my matchesPOST /matches/{match_id}/schedule- Schedule a callPOST /matches/{match_id}/request-new-times- Request alternate timesPOST /matches/{match_id}/cancel- Cancel my matchPOST /matches/request-new-volunteers- Request new volunteersVolunteer Endpoints (1):
POST /matches/{match_id}/cancel-volunteer- Cancel as volunteerNext steps: Frontend of Participant Dash
Steps to test
What should reviewers focus on?
Checklist