{"id":29057563,"url":"https://github.com/djdurga/real_time_chatbot","last_synced_at":"2025-06-27T06:06:03.522Z","repository":{"id":299877823,"uuid":"1004499035","full_name":"Djdurga/real_time_chatbot","owner":"Djdurga","description":"It allows: Multiple users to connect to a central server and exchange messages in real-time.  Users to choose between:  Terminal/CLI chat client, or  Desktop GUI chat client (with Tkinter).  Smooth bi-directional communication over TCP sockets.","archived":false,"fork":false,"pushed_at":"2025-06-18T18:44:51.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-18T19:42:03.052Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Djdurga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-18T18:07:04.000Z","updated_at":"2025-06-18T18:53:22.000Z","dependencies_parsed_at":"2025-06-18T19:52:06.482Z","dependency_job_id":null,"html_url":"https://github.com/Djdurga/real_time_chatbot","commit_stats":null,"previous_names":["djdurga/real_time_chatbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Djdurga/real_time_chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Djdurga%2Freal_time_chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Djdurga%2Freal_time_chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Djdurga%2Freal_time_chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Djdurga%2Freal_time_chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Djdurga","download_url":"https://codeload.github.com/Djdurga/real_time_chatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Djdurga%2Freal_time_chatbot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262202495,"owners_count":23274380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-27T06:06:00.791Z","updated_at":"2025-06-27T06:06:03.515Z","avatar_url":"https://github.com/Djdurga.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## 💬 Real-Time Chatbot using Python (Terminal + GUI)\n\nThis project is a simple yet powerful real-time chat application built using **Python's socket programming** and **threading**. It supports both **terminal-based clients** and a **desktop GUI** made with **Tkinter**. The server can handle multiple clients chatting simultaneously in real time.\n\n---\n\n## 🧾 YAML Summary\n\n```yaml\nproject:\n  name: Real-Time Chatbot\n  tech_stack:\n    - Python\n    - Socket Programming\n    - Threading\n    - Tkinter\n  interfaces:\n    - Terminal-based chat client\n    - GUI-based chat client\n  communication: TCP sockets\n  concurrency: Multithreaded server \u0026 client\n  version: 1.0\n  license: MIT\n````\n\n---\n\n## 📁 Project Structure\n\n```\nreal_time_chatbot/\n│\n├── realtime_chatbot/\n│   ├── __init__.py\n│   ├── server.py               # Core server code\n│   ├── clients.py              # Terminal-based client\n│   └── gui_client.py           # GUI-based client using Tkinter\n├── screenshots/                # Images of terminal and GUI chat\n├── pyproject.toml              # Poetry dependency manager config\n└── README.md                   # Project documentation\n```\n\n---\n\n## ⚙️ Prerequisites\n\n* Python 3.x\n* [Poetry](https://python-poetry.org/docs/#installation) (for managing dependencies)\n\n### 📦 Install Poetry\n\n```bash\npip install poetry\n```\n\n### 📥 Install Project Dependencies\n\n```bash\npoetry install\n```\n\n---\n\n## 🛠️ Libraries Used\n\n| Library      | Purpose                                          |\n| ------------ | ------------------------------------------------ |\n| socket       | Real-time communication between server \u0026 clients |\n| threading    | Handles multiple clients concurrently            |\n| tkinter      | GUI interface for chat client                    |\n| scrolledtext | Scrollable chat window in GUI                    |\n| simpledialog | Prompt for username in GUI client                |\n| poetry       | Dependency and virtual environment management    |\n\n---\n\n## 🚀 How to Run\n\n### 1️⃣ Start the Server\n\n```bash\npoetry run python -m realtime_chatbot.server\n```\n\nExpected output:\n\n```\nServer started on port 5555\n```\n\n### 2️⃣ Start a Terminal Chat Client\n\nOpen a new terminal and run:\n\n```bash\npoetry run python -m realtime_chatbot.clients\n```\n\n### 3️⃣ Start a GUI Chat Client (Optional)\n\nIn another terminal, run:\n\n```bash\npoetry run python -m realtime_chatbot.gui_client\n```\n\n\u003e Each client will be prompted to enter a **username** upon joining.\n\n---\n\n## 🖼️ Screenshots\n\n### 🧑‍💻 Terminal Clients\n\n**Durga’s Chat:**\n\n![Durga Terminal](screenshots/durga_terminal.png)\n\n**Akanksha’s Chat:**\n\n![Akanksha Terminal](screenshots/akanksha_terminal.png)\n\n### 🪟 GUI Client (Tkinter)\n\n**Desktop Chat Window:**\n\n![GUI Chat](screenshots/gui_client.png)\n\n\u003e 📁 Make sure to store these images in the `screenshots/` folder inside your GitHub repository.\n\n---\n\n## 📊 Features\n\n* 💬 Real-time chat communication\n* 👩‍💻 Terminal and desktop (GUI) chat options\n* 🧑‍🤝‍🧑 Multi-client support with threads\n* 🪟 Scrollable chat window in GUI\n* 🧾 Clean and readable messages with usernames\n\n---\n\n## 💡 Highlights\n\n* 🔗 Uses `socket` and `threading` for efficient real-time communication\n* 🧱 Clean folder structure for CLI and GUI components\n* 🧪 Easy to extend into a production-grade chat server\n* 🎯 Great learning project for Python networking and GUI design\n\n---\n\n## 🚧 Future Enhancements\n\n* 🕒 Add timestamps to messages\n* 🔐 Add encrypted messaging (SSL/TLS)\n* 🌐 Build a web version (FastAPI + WebSockets)\n* 🤖 Integrate ChatGPT or LLM chatbot\n* 📊 Save chat history in SQLite or MongoDB\n* 📦 Dockerize the full application\n\n---\n\n## 👩‍💻 Author\n\n**Durga Rani**\n*M.Tech in Data Science \u0026 AI | Passionate about Python, Analytics, and Communication Systems*\n\n---\n\n## 📜 License\n\nThis project is licensed under the **MIT License**.\nSee the [LICENSE](./LICENSE) file for details.\n\n---\n\n## 🙌 Acknowledgment\n\n* 💾 Inspired by real-world chat systems and client-server architecture\n* 🧠 Built as a hands-on networking + GUI programming project\n\n---\n\n## 📌 Summary\n\nThis project provides a solid foundation in:\n\n* Python network programming\n* Multithreaded client-server architecture\n* GUI interface design using Tkinter\n\nWhether you're building a collaborative tool or learning real-time systems, this is a great starting point!\n\n\u003e 💬 “Code is like humor. When you have to explain it, it’s bad.” – *Cory House*\n\n---\n\n## ✅ What to Do Next\n\n1. **Save this file as `README.md` in your root project folder**\n2. **Create a `screenshots/` folder**\n3. **Add the 3 images you captured and rename them to:**\n\n   * `durga_terminal.png`\n   * `akanksha_terminal.png`\n   * `gui_client.png`\n4. **Commit and push everything to GitHub!**\n\n---\n\n## 📦 Optional Extras\n\nWould you like the following files added to complete your project setup?\n\n* ✅ `LICENSE` file (MIT)\n* ✅ `.gitignore` file (Python + Poetry support)\n\nLet me know and I’ll generate them for you!\n\n```\n\n---\n\nLet me know if you’d like this exported as a downloadable file or if you need me to generate the `LICENSE`, `.gitignore`, or `requirements.txt` as well!\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdurga%2Freal_time_chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjdurga%2Freal_time_chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdurga%2Freal_time_chatbot/lists"}