I decided I wanted to finish up my attempt to make a profile match/matchmaking/dating module. There has already been some (not so focused :) discussion about this, but I could use some additional input conserning desirable functionality and implementation.

What I'm thinking is (drawing from norwegian spraydate.no, previousely mentioned post) is to make a search for users based on match and a private area with certain functionality. The search could be done by having ordering the users based on matching interest. The admin could enter a range of subjects (in a textarea), and the user could then range how interested they are in each by using a scale. Additionaly the user would be asked for location, what they are looking for and some other stuff.

When it comes to the private area, messages would be important. The private messages module could be used for this, I'll have a look at it to see if additional functionality could be used. Maybe a better apprach would be to have use a private, simple node as it would keep it all in one thread (I believe the private message thing doesn't?). Also users should be able to create a presentation of themselfs to display in their profile (a special tab with links to send message and so on).

As you may figure, this could be used more generally with this architecture, allowing people with similar interests to find each other in other contexts than matchmaking. Also other functionality from the drupal system would, such as blogs and private galleries enhance the profile match part.

Edited by silverwing - due to age of post and spam, closing for new comments.

Comments

sami_k’s picture

I would comment, but I would need to see some contribution, or promise there of, back to the community before I do. There was another fellow that made a hotornot module that I was interested in, but he never did contribute anything. Good luck though, sounds interesting.

--
Etopian (Support & Hosting)
http://www.etopian.net/drupal

Adagio’s picture

It'lll not be too long before I'm able to post an interest registration and profile match search module. I'll post it here for reviews possibly later today. Maybe this could work nicely as a standalone module.

As I'm totally broke, I've been thinking about posting a request for funding for additional contributed features.

sami_k’s picture

What comes to mind I call "interest vectors"... Make a table that borrows the code from the search module... Go through the content that the user submits and their profile and build the weight of these vectors . Then compare the vectors... Dig?

--
Etopian (Support & Hosting)
http://www.etopian.net/drupal

Adagio’s picture

Hmm... That would be a nice feature. I'll try to implement that in the profile match. Could use the ten words most often used by the user or something. I'll look into it.

sami_k’s picture

Send me an e-mail, we'll talk... I am interested in something similar and considering how geographically apart (i.e. little competition) we are, perhaps we can work together on some of this stuff.

Sami
--
Etopian (Support & Hosting)
http://www.etopian.net/drupal

alvaroortiz’s picture

We are finishing the prototype of a website for a client based on Drupal. It will have editorial + multimedia content, a shop, about pages, and a community area with blogs, forums, favorites, private messaging and "classic" social networking: you post your profile and you post what kind of people you are searching for (male/female, age between N and N, ...), with the same fields of your profile.

We will be developing the site during may, and plan to contribute all code that is apropiate.

We plan to extend the profile module to do the social networking thing: as said, features will be:

* A user may fill his profile - as in profile module, it will be up to the administrator to add or remove fields.
* A user may fill what he/she's looking for or what s/he likes. As above, the admin will be able to add or remove fields. This fields probably will have to be different, as a user might be looking for someone who is between 20 and 25 years old, and who has green or brown eyes, and not only someone who is 24 and with green eyes (which is what you would say about yourself).
* User will have a public page which shows, among other things, their profile caracteristics, a link so you can add that person as a favourite or as a contact, and a link to send them a private message.

If someone is interested in working close to us, we can talk, as we have tight deadlines and this will have to happen during may. But of course the code will be up to improvements after we finish our project.

álvaro
--
the cocktail

furilo.com

Adagio’s picture

Sounds interesting. I have been progging since last visit, and are currently testing and polishing a new module named profilematch. This module currently allows administrators to define subjects the users may rate their interest in. The users then gain the ability to find similar profiles on a page where they are ordered based on the total difference between interests. Perhaps this is useful for you? I have requested a CVS account to make this publicly available.

During development I have also thought of several features which would be useful for many applications. I hope to be able to implement this in the not to distant future.

I have pasted the current module code here: http://www.pastebin.com/277929 if anyone would like to have a look.

gurukripa’s picture

glad to hear u will be sharing things with us.

we desperately need a good user page/profile and also matchmaking.

pls share whatever has been accomplised..lets see the site..and then we can all pitch in..as far as our knowledge takes us

Adagio’s picture

Update report (current source available [1] not much different from last one as I'm working on other things but the other paste was deleted)

Functionality

The administrator create and manage subject fields which the users may rate their interest in. The users may after they have rated their interest in the available subjects find users with similar interests. The search is currently done through a single query looking up all subject fields the current user has rated his/her interest in, finds all other ratings of those subjects, groups the difference by SUM(ABS(rating - currentuser_rating)) as matchvalue by user and orders by matchvalue.

Example matching
A: interest in movies (5), books (0), computers (3)
B: interest in movies (4), books (2), computers (3)
C: interest in movies (0), books (5), computers (0)

A search for matches should show B is best match, then C.
B: total(movies (4-5), books (2-0), computers (3-3)) = 3
C: total(movies (0-5), books (5-0), computers (5-3)) = 12

It is thus possible for instance to have a block showing best match of users online etc.

Would appreciate response

Could this fit into Drupal somewhere? I figure a good use would be for a dating site, but I suppose other community sites also could use this ability. I am aware of the profile module and it's use for instance on drupal.org, however, this provides a "total" matchvalue of users in a snap, and because of it's nature should be treated seperately from the profile module, it should for instance not show in search form when used in matchmaking site. The administration is alse much simpler for this purpose.

This post is basically pasted from the devel mail list. I've been trying to get some feedback on this and be able to contribute it, but it seems Drupals administration is a bit Kafkian, not easy to get through to (don't think my post went through to devel-list and haven't recieved response on contribute application. So this may not be contributed through the usual sources. You may contact me if interested in it.

[1] http://www.mypastebin.com/?code=1880021952

dikini’s picture

It's interesting to see how this performs. Don't have problems with the method itself, it's classic, but not sure how good it will be in real life. The problem is probaly more how do you assign interests and what do trhey mean, though.

Is your code scalable? Have you benched it with more than 20-30 interests?

How interests differ from taxonomy terms. Isn't it better to reuse taxonomies. If done, you'll be adding a very powerful feature to drupal. Basically defininng a closeness measure between nodes. So it will be possible to do similar nodes ordering, based not only on hardcoded facts, the same taxonomy term, but on derived ones - this measure.

Adagio’s picture

I haven't tested it for scalability yet. Surely, this might not scale very well, but the implementation is, as far as I can tell, about as fast as it can get. A cache mechanism would probably do it good. And I'll be glad to add that. A table with the the "matchvalues" of different user combinations would probably help performance. I'm not sure about this, but it might also be possible to implement a sort of interest map, with different interest "configurations" linked to users?

I have created a new topic for this module. Since there wasn't much response here, I figured this wasn't the right place. There, I've laid out some thoughts on taxonomy integration. Not sure if I understand what you mean, it would be nice if you could elaborate in the new topic. Maybe we're thinking similar?

Thanks.

arindamghatak794’s picture

Isn't there a module already called the Content Recommendation Engine which recommends to a user different kinds of contents according to the user's interests, including other users.

morningbird’s picture

There should also be support for matching things that aren't the same. For example, if I wanted to match people according to astrological sign there should be some way for me to say if this person has this sign then people with this this and this sign match. But it should be a ranking, not an absolute because that would be silly. I can't think of another example off the top of my head, but I'm sure there are more. Like maybe matching people who cook and hate to do dishes to people who like to eat and don't mind doing dishes. Whatever.