weechat : web-based chatting with twitter friends

11
WEECHAT SW Maestro 2 nd mentee_ Seo Bokyung Park Jungmin mentor_ Han Daihee

description

소프트웨어 마에스트로 2기 (2011년) 1단계 프로젝트. twitter 친구간의 친밀도를 계산하여 그래프로 표현하고, 웹 기반 채팅 기능을 제공함. weechat. mongodb, python, tornado server, twitter oauth 등을 이용하여 구현. web-based chat

Transcript of weechat : web-based chatting with twitter friends

Page 1: weechat : web-based chatting with twitter friends

WEECHAT

SW Maestro 2nd

mentee_ Seo Bokyung Park Jungmin

mentor_ Han Daihee

Page 2: weechat : web-based chatting with twitter friends

What is weechat?

• Chat System– Social graph

• Shows my affinity with friends

– Instant message• Chats with Twitter followers

Page 3: weechat : web-based chatting with twitter friends

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

Page 4: weechat : web-based chatting with twitter friends

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

Page 5: weechat : web-based chatting with twitter friends

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

Page 6: weechat : web-based chatting with twitter friends

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

Page 7: weechat : web-based chatting with twitter friends

DEMO

Page 8: weechat : web-based chatting with twitter friends

로그인 하기 전 화면

Page 9: weechat : web-based chatting with twitter friends

로그인 후 화면

Page 10: weechat : web-based chatting with twitter friends

소셜 그래프 보기 화면

Page 11: weechat : web-based chatting with twitter friends

친구와의 채팅 기능 화면