As an engineer, I want to create a matching algorithm for a swiping app that connects like-minded people to discuss a particular topic once a month for 20 minutes, where the app determines the topic based on user interests.
Acceptance Criteria
[ ] The algorithm should match users based on shared interests.
[ ] Each user is allocated one match per month for a 20-minute discussion.
[ ] User preferences for topics are considered in generating the monthly topic.
[ ] The algorithm should ensure there are no repeat matches within a six-month period.
[ ] Users should have the ability to report a match and opt-out of a discussion.
[ ] Algorithm should maximize the diversity of discussion topics over time.
[ ] Users are notified of their match and provided with the discussion topic at least 24 hours in advance.
sequenceDiagram
participant UserA
participant MatchingSystem
participant UserB
UserA->>MatchingSystem: Submit preferences
MatchingSystem->>MatchingSystem: Calculate matches based on interests
MatchingSystem->>UserB: Selection of UserB based on UserA preferences
MatchingSystem--)UserA: Notify match & topic
MatchingSystem--)UserB: Notify match & topic
Matching Algorithm Configuration
As an engineer, I want to create a matching algorithm for a swiping app that connects like-minded people to discuss a particular topic once a month for 20 minutes, where the app determines the topic based on user interests.
Acceptance Criteria