Basically I would like to set up a simple social network, which is like a social /dating site, but not exactly.
In fact people post their profile and can chat with other people if their interests match.
There are 2 particular features:
1 - matching is based on both features and geographical data (e.g. I like blonde girls in a radius of 50km from my city) and
2 - Matching is not only 1-to-1 but also group (so the “group chat”): if A likes B, B likes C and C likes A the match is complete and a chat between A ,B and C is created.
What concerns me is the software architecture, you know, group matching is a challenge. I was wondering what kind of alghoritm would be suitable to use in the development. What do you think about it?
The match I have in mind would reach a maximum number of 4-5 people who ciclically like one another (A->B->C->D->A). Then when all people "like" the next one a chat is created and notification sent.
Let’s make an example: in a standard dating site when John perform a search, the site looks for people that comply to the requested features, ex: Female, Age 20-30, blonde…Then John chooses to contact or discard the resulting girls.
Let’s say that in our case we would like to display to John (who is Male, aged 25 and brown haired), ONLY the girls that respond to his query but who also are looking for a 25 years old brown haired men.
I believe it is a query about people who have feature John looks for AND are looking for people with feature that John has.
Step 2: let’s imagine that there is no direct match: no girl is looking for John :(
What about if there is a girl who is looking for Mark, who is looking for John? (of course it is just an example)
I believe now it would be a query about all the possible indirect matches, based upon preferences.
How could we manage that?