Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smhussain5/flask-socketio-chat-python
Full-stack real-time chat application Python/PyCharm, Flask, SocketIO, JavaScript
https://github.com/smhussain5/flask-socketio-chat-python
chat-application flask flask-socketio javascript pycharm python socket-io
Last synced: 5 days ago
JSON representation
Full-stack real-time chat application Python/PyCharm, Flask, SocketIO, JavaScript
- Host: GitHub
- URL: https://github.com/smhussain5/flask-socketio-chat-python
- Owner: smhussain5
- License: mit
- Created: 2024-01-02T20:17:08.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-02T01:50:04.000Z (8 months ago)
- Last Synced: 2024-10-16T21:55:19.063Z (20 days ago)
- Topics: chat-application, flask, flask-socketio, javascript, pycharm, python, socket-io
- Language: HTML
- Homepage: https://flasky-chat-830ac03d48e2.herokuapp.com/
- Size: 1.22 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FLASKY CHAT
![Flasky Chat Python GIF Demonstration](https://github.com/smhussain5/Flask-SocketIO-Chat-Python/blob/main/FLASKY_CHAT_PYTHON.gif?raw=true)
## Problem 🤔
Real-time communication is a necessity in a globally connected world. Such can be achieved via Flask, Python, and WebSockets.
## Solution 💡
This chat application utilizes simultaneous two-way communication channels over a single TCP connection via WebSockets to provide fast, real-time communication between users. Users must input their name and randomly-generated room code to join a session that is deleted after all users leave. Front-end utilizes Bootstrap and JavaScript to populate the message area with received/sent messages. Back-end utilizes Flask web-framework powered by Python and SocketIO to provide WebSocket capabilities.
## Technologies Used âš™
- Flask
- Gunicorn
- Heroku
- PyCharm
- Python
- SocketIO## Challenges 💢
This application was challenging to say the least! I originally wanted to deploy on PythonAnywhere but realized, after deployment, that it was not functioning as intended. After some research on their forums, I learned that they do NOT yet have support for WebSockets. After some further research, I decided to deploy to Heroku using Gunicorn, which was the exact solution I needed to restore proper functionality for the application!
## Insights ðŸ’
This project demonstrated the power of WebSockets as a way to enable simultaneous communication between users. Flask allowed me to develop the back-end with few lines of code. Opportunities to refactor could include database persistence and limiting chat rooms to a specified number of users.
## Contact 📲
[![Static Badge](https://img.shields.io/badge/Send%20me%20an%20email-212121?style=flat-square&logo=gmail&logoColor=EA4335)](mailto:[email protected]?)
[![Static Badge](https://img.shields.io/badge/Connect_with_me_on_LinkedIn-212121?style=flat-square&logo=linkedin&logoColor=0A66C2)](https://www.linkedin.com/in/shabab-h)
[![Static Badge](https://img.shields.io/badge/Follow_me_on_Twitter-212121?style=flat-square&logo=twitter&logoColor=1D9BF0)](https://twitter.com/shussain_5)
[![Static Badge](https://img.shields.io/badge/Follow_me_on_GitHub-212121?style=flat-square&logo=github&logoColor=FAFAFA)](https://github.com/smhussain5)