资源说明:An IRC replacement for the modern age
Sockityak ================================================================================ Trying out README driven development. ================================================================================ A replacement for IRC, meant for ADI consumption APPNAME = Sockityak; subject to changes STORIES ================================================================================ 1.) Bob is a normal college student at Columbia, who is also interested in computer science (this makes him highly abnormal, but nevermind). He wants to talk about some programming things once in a while, but the main avenue for connecting the ADI executive board (e-board) is through IRC, which no one is on, or the committee list-serv, which isn't an informal conversation thing. When APPNAME comes out, he tries it out: after finding the general chat conversation not to his fancy, he tries to talk about something else: this thread of conversation is forked, and eventually some ADI members find his thread after getting notifications of his new channel, and they have a nice real-time conversation. 2.) John is an ADI e-board member: he doesn't know what the community members want, so he asks them on APPNAME. Since APPNAME has become a hangout for the Columbia tech community, he gets responses within a day (a reasonable amount of time!) and even strikes up an hour of furious debate. He gets the feedback from the people that care most, especially outside of the e-board. 3.) Nathan is bored, and wants to talk. He logs on to APPNAME, and makes a meme-thread. Everyone has fun posting silly pictures of each other, and many lols are had. GOALS ================================================================================ - Provide a highly asynchronous chat - Interval digests - Tiered notifications - Twitter-like conventions (@ (mention), # (tag)) - Some extensions to the twitter conventions (!@ (immediate notify), ## (channel), @##channel:line (reply to line), @# (notify tag watchers), ) - Autocomplete EVERYTHING - Add in a +1/like infrastructure - XMPP integration (digests/notifications) - smart digests (new tags, @, highly voted treated specially, both new topics and watched topics) - IRC integration (single channel) - rate-limiting - ban-hammer: channel and org-wide - forking model - NLP to determine whether a user would want to know about this update - NLP to determine topic name - Voting system for topic changes, merges(?) - Ensure University association for chat - Possibly access control (users against orgs/threads) - Possibly organization separation - Learn tornado and redis and mongodb TODO ================================================================================ - X Get Redis running - X Get Python+Redis working (apt-get install python-redis) - X Get Tornado running (pip install tornado, ubuntu current is 1.2) - X Get Tornado+Redis running (simple updates) - X Get AJAX-y Tornado+Redis running - X Get real time chat - X Add channels - X switch to json format in chat data - X define an extensible json schema (if you consider "type"/"message") - X Add auth (google oauth, or facebook oauth. or both) - X remake redis sessions - X Switch to mongodb (except sessions, pubsub) - X check sessions are still valid after each message - Probably clean up the styles right about here - front page - X channel list - X channel - settings - who's in the room list? / past participants (sadd, srem) - X Add title-page notification - X Add audio notifications - easy mute? - Add email notifications - add "watch" mechanism - once per message, if you're not already connected - digest (hourly) - digest (daily, weekly, hourly) - Parse out @ and # - get XMPP working - !@ - direct notification (marked digest, email, XMPP, text) - lots of if-this-then-that functionality - redis-based rate-limiting USING ================================================================================ - Tornado - Redis - MongoDB - asyncmongo - websockets - jQuery - backbone.js CONCERNS ================================================================================ - Grove.io? - Still based on IRC - Does not seem to have tiered notifications - No NLP fanciness - No forking model - Not voting system - Won't learn Tornado unless I build APPNAME
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。