About this Prize
Problem Statement
As an organizer, it’s hard to know whether community members are actually interacting with each other and establishing strong relationships as a bonded community.
One of my main reasons for joining Mu Chiang Mai was to be able to meet new people from different backgrounds, but I’m horrible at reaching out and making that first point of connection. As someone who joined solo, without some form of connection into the community, I would feel like an outsider, and that makes me less likely to interact until I feel like I found someone that would be open to talk me because, I just don’t know anyone else to talk to. I want to be able to know who knows who, but without a way to see the relationships within a community, newcomers to a community need to take a leap of faith to find their tribe of friends within the community to hang out with.
Communities are about finding the people you like hanging out with and creating lasting connections that go beyond the community as lasting, genuine friendships.
So what if you had a way to visualize all of that with a social graph?
You would be able to see all the mutual relationships within a community that you’ve created, and also be able to see the progress you have made in meeting new friends while you’re in the community and continue relationships beyond the community.
This project called ‘Socialite’ solves the problem of incentivizing mutual connections within communities like Mu Chiang Mai by allowing you to visualize the entire community map and track the progress you’ve made in establishing mutual connections.
Objective
The social graph can be implemented as a telegram bot with neo4j as a backend graph database. The milestones for this MVP would be:
Setting up graph database that acts as the backend for the social graph.
Setting up a telegram bot that acts as the interface between telegram group members and the backend
Setting up a frontend to visualize a live, interactive social graph ,should be a website
Updating the telegram bot to allow button functions and user inputs for links and querying
(Bonus) Setting up a LLM interface to do interpretive queries such as finding a mentor or specific topic interests
Potential Approach
For the telegram bot:
Using the Telegram API (https://core.telegram.org/api), mutual connections are automagically made after it passes checks to ensure that users have sent messages to each other and are both in the community telegram group.
Alternatively, mutual connections can be created through users sending manual requests to connect to another user in the same community telegram group through interfacing with the telegram bot, and the other user accepts the request to make the mutual connection.
get an access token tagged to a telegram username to view the live, interactive social graph, which is specifically tagged to the telegram user such that the social graph will only be able to show the user’s relative social graph
If: Telegram API checks against getChatAdministrators and user is an admin, shows the entire social graph,
else: shows telegram user’s relative social graph
For the Node4j database:
every user is assigned to a single ‘node’ with variables stored such as ‘telegram handle’, ‘github link’, ‘twitter link’, ‘name’, ‘interests’.
Frontend social graph visualization:
connections (relations between nodes) are shown between the user and their mutual connections, and connections that are not mutual connections will not be shown.
user will be able to see the connections that the mutual connection contact has.
Scope For Future Development
LLM scraper can identify keywords from user submitted social links such as github and twitter, and this will allow members of the community to identify clusters of backgrounds and interest topics of people who are in a community
Can be implemented as a platform such that users are now able to create connections across communities where the telegram bot is only context-specific for a single community and is one-off.
Geolocation can be implemented to specifically for physical gathering communities to automate for connections between two people talking to each other in-person
This can be implemented as an on-chain alternative that will work for web3 communities, instead of telegram handles as the main profile users, it would be wallet addresses.
Web3 identity APIs from web3 identity protocols such as Link3, NextID
Integrating Sismo APIs to allow for users to only reveal private information for allowed wallet addresses
Ability to create gating mechanisms such as using PUSH Protocol APIs such as token-gating, NFT-gating, etc.
Integrating LENS APIs to add LENS profiles for more powerful social queries and connections.