GroupChat is an open source implementation of chatroom in web browser which can support millions of online users.
Functional
- join/create room
- talk/private message
- nickname/password
- list of users in the room
- lock/unlock the room
- UTF-8 support
- image posting
- file sharing
- chat recording (text + image + file)
- search of chat records
- voice conference
- video conference
Non-functional
- supports millions of online users
- needs only commodity server and cloud servers e.g. EC2
- horizontal scalability to simply add servers to increase capacity
- erlang/OTP (http://www.erlang.org/)
- mochiweb (https://github.com/mochi/mochiweb)
- redis (http://redis.io/)
- HTML5 (http://html5.org/)
- jquery (http://jquery.com/)
- android (http://developer.android.com/)
Fork, clone, coding, commit and send pull request.
Part I: Download
- PortableGit-1.7.0.2-preview20100309.7z from http://code.google.com/p/msysgit/downloads/list
- MSYS-1.0.11.exe from http://www.mingw.org/wiki/MSYS => http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
- otp_win32_R15B01.exe from http://www.erlang.org/download.html
Part II: Install
- Unzip PortableGit-*.7z to C:/PortableGit/.
- Install MSYS-1.0.11.exe to C:/msys/1.0/. Copy C:/msys/1.0/bin/make.exe to C:/PortableGit/bin/. Uninstall MSYS.
- Install opt_win32_R15B01.exe to C:/Program\ Files/erl5.9.1/.
Part III: Configure
- Register Git to the right-click menu. Open cmd.exe, "cd C:/PortableGit/git-cheetah", then "regsvr32 /i git_shell_ext.dll". You may need to rename git_shell_ext.dll.new to git_shell_ext.dll first. Restart Windows Explorer to see the changes of your right-click menu with a new menu item called "Git Bash".
- Setup git correctly according to the tutorial of github (http://help.github.com/win-set-up-git/).
- Start Git Bash via right-click menu, and vim ~/.bash_profile to edit the PATH setup: export PATH=$PATH:/c/Program\ Files/erl5.9.1/bin
- Restart Git Bash.
Possible Issues
- If make and rebar does not work, execute "which bash", rename any bash.exe to bash.exe.bak if found.
- Strictly use the dir name "PortableGit" otherwise git cannot fork ssh to push/pull.
- Browse to https://github.com/hmisty/groupchat and fork.
- git clone [email protected]:YOUR_ID/groupchat.git
- cd groupchat
- make
- ./start-dev.sh
- Browse http://localhost:8080/
- git push
- Browse to https://github.com/YOUR_ID/groupchat
- Click "Pull Request"
This project is published under GPL v3.
GroupChat - an open source implementation of chatroom in web browser which can support millions of online users.
Copyright (C) 2012 Evan Liu ([email protected])
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.