A real-time chat room application in Flask using socketio.
- Multiple Rooms: Using
Flask-Socketio
different rooms are created for different types of discussions. - Profanity Filtering: Using
better-profanity
python module all swear words (and their leetspeak) are removed from message strings. - Live Chat: Using
Javascript
,SocketIO
, andJQuery
all messages are sent to the Python web server, and then broadcast back to all clients. - Register/Login: Using
flask-sqlalchemy
all users are registered and can login again with same username-password.
Get the code
$ git clone https://github.com/bhu800/chit-chat-room.git
$ cd GCSBot
Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
Virtualenv modules installation (Windows based systems)
$ virtualenv env
$ source env/bin/activate
Install modules
$ pip3 install -r requirements.txt
The chatbot uses heroku-postgresql database for registering users. So you can make your own app and database in heroku and use that in app. For more info about how to use heroku-postgresql outside of heroku please refer official documentation.
After setting up your database, start the application (development mode)
$ python server.py # default port 5000
Access the web app in browser: http://127.0.0.1:5000
- Build a basic chat application with pre-existing different rooms.
- Bad word filtering
- Custom Bad word filtering and warning and user removing feature on consistent use of bad words
- 'Add Room' functionality
- show all online users
- emojis and stickers for chat
- Joining multiple rooms at a time
- Add, Update and View Profile (Profile Image, About) (basicaly a little 'social' touch :D)
- Different background-image for different lounge
- Admin Backend, so that some sort of events and discussions can be hosted on the platform
- Join as guest (no register/login required) feature.
- Join via
invite-link
feature (room creater can send invite link for private rooms) - Permission feature if room creator wants to let specific persons to let in. There can be multiple methods to verify/permit user: a.) Email verification b.) Allowing only educational email ids with verification c.) manual perimitting by room-admin.
- Share admin power feature in which admin can make further new admins or moderators fo same room.