Topics

Anahita Project

Anahita Project's Topics

Hunter Wilkes

March 30 2017

Suggest Friends

Although I won't be working on generating the suggestions, I was wondering how you would show the results. I imagine you could do something similar to the "Followers" display, but I'm not sure how all that works.

#suggestions #recommendation

I'll comment on this topic during the weekend. I have some ideas, but need to organize them.
I guess for now I'd like to be able to just show something on the dashboard. As I said before, it seems like the code for showing the suggestions should be fairly similar to the code for showing the followers. Do you have any suggestions on how to modify the followers code?
Rastin Mehr liked this
I don't think so. We need an app that for each request suggests a leader based on the following criteria:

1. actors suggested by the site admin. Basically a list of actor ids provided by the site owner in the app configuration.
2. actors that the viewer's leaders are following
3. actors who have common hashtags with the viewer
4. actors who have common hashtags with viewer's leaders
5. actors who have common locations with the viewer
6. actors who have common locations with the viewer's leaders
7. actors who have authored similar hashtags to the viewer's in any of their posts
8. Later when we have sharing in version 4.4 we can incorporate a logic for common shared items too.

Each of those items should be configurable at least by yes/no

Then a gadget on the dashboard makes 3-5 requests to create a list of suggestions for the viewer to follow. Every item in the list that is followed gets replaced by a new suggestion.
Another issue that came to my mind is considering the order that those algorithms are executed. For example matching hashtags or locations maybe more suitable for certain networks and therefore they should be executed first. Perhaps we can make the order configurable too.

Then again there is such a concept as convention over configuration so sticking with a convention would take out the complexity from the app.
What I meant by the code being similar was that displaying the suggestions should be similar to displaying followers or leaders. I agree that generating the suggestions will be quite a bit more complicated.
Rastin Mehr liked this
I think you meant using gadgets. Yes they are small containers that load and display a list of nodes
Hunter Wilkes liked this
So, how do I make a gadget? I searched Tribe Support, but didn't really see anyone talking much about this.
When you build a custom app, you can define the gadgets that are displayed on the dashboard and actor profiles in a component entity class: https://github.com/anahitasocial/anahita/blob/master/packages/Todos/src/components/com_todos/domains/entities/component.php#L39

Although gadgets are only containers that make an ajax GET request to a controller and display the results. The logic of the lead suggestions is handled by the app's MVC.
I'm still rather lost. Do you think you could give me an outline of how to make the component and add it to the dashboard?
I wish I could explain it in a few paragraph, but it is more complex than that. I don't know the answer unless I start coding it. I only know how it needs to behave. This particular app is on the roadmap and we're going to build it perhaps this year. If you have a budget, you can hire our company to build it ahead of time and make it part of the standard Anahita distribution. That's how a lot of features in Anahita were developed. If not, you can start a topic in the support group - since this group is for the Anahita project itself - and gradually start learning the architecture of a component and start building it. Since this is your first app, it may take you a bit longer to build it, but it is the best way to learn the Anahita architecture.

Powered by Anahita