weechat : web-based chatting with twitter friends
DESCRIPTION
소프트웨어 마에스트로 2기 (2011년) 1단계 프로젝트. twitter 친구간의 친밀도를 계산하여 그래프로 표현하고, 웹 기반 채팅 기능을 제공함. weechat. mongodb, python, tornado server, twitter oauth 등을 이용하여 구현. web-based chatTRANSCRIPT
WEECHAT
SW Maestro 2nd
mentee_ Seo Bokyung Park Jungmin
mentor_ Han Daihee
What is weechat?
• Chat System– Social graph
• Shows my affinity with friends
– Instant message• Chats with Twitter followers
Challenges
• Scalable system– Needs to support millions of users– Solution Tornado webserver + MongoDB
• Integrated authentication– Not need to create a new account– Solution OAuth from Twitter
• Calculates affinity of my friends– Builds social graph to show affinity– Solution
• Scores of relationship among followers• #DMs_in_recent_n_months x 2 + #being_mentioned
SW Environment
• Web/Chat Server– Tornado server
• Scalable django-like server
• Database– mongoDB
• scalable, open source, document-oriented database• Pymongo: mongoDB Python client
• Function– Chat
• Websocket• Libevent
– Graph• Javascript/CSS• HTML5
Weechat.kr
Chat server
twitter.-com
WeechatMongo DB
Chat serverMongo DB
Oauth login
Twitter ID/Passwd
user
Connect Chatting Room
Followers, streaming
Create Chatting Room
System architecture and Data Flow
Twitter ID/Passwd
oauth
Access token
char room create/join
Chat server address,Room id, member id
user Weechat twitter.com Chat server
Cham id, member id
Call twitter API
Friends, streaming,Direct mesgs
Social graph
Selects a friend to talk
DB (mongo)
Encrypted room id, member id
DB (mongo)
Storing a list of friends, and affinity
Stores a tuple (twitter id, room id, member id)
System Sequence Diagram
Chat mesg
Others’ Chat mesgStores chat logs
DEMO
로그인 하기 전 화면
로그인 후 화면
소셜 그래프 보기 화면
친구와의 채팅 기능 화면