{"id":27407221,"url":"https://github.com/aslams2020/textly-chat-app","last_synced_at":"2025-10-24T06:50:42.055Z","repository":{"id":287619586,"uuid":"965291359","full_name":"aslams2020/Textly-Chat-App","owner":"aslams2020","description":"Textly is a multi-client chat application designed to demonstrate core networking principles and real-time communication using Java's socket programming capabilities. Built with performance and extensibility in mind.","archived":false,"fork":false,"pushed_at":"2025-04-12T21:04:47.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T21:33:06.280Z","etag":null,"topics":["gui","java","javafx","javafx-application","javasockets","serverclient","sockets"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aslams2020.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-04-12T20:43:31.000Z","updated_at":"2025-04-12T21:10:19.000Z","dependencies_parsed_at":"2025-04-12T21:43:26.568Z","dependency_job_id":null,"html_url":"https://github.com/aslams2020/Textly-Chat-App","commit_stats":null,"previous_names":["aslams2020/textly-chat-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aslams2020%2FTextly-Chat-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aslams2020%2FTextly-Chat-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aslams2020%2FTextly-Chat-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aslams2020%2FTextly-Chat-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aslams2020","download_url":"https://codeload.github.com/aslams2020/Textly-Chat-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837287,"owners_count":21169374,"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":["gui","java","javafx","javafx-application","javasockets","serverclient","sockets"],"created_at":"2025-04-14T07:10:50.708Z","updated_at":"2025-10-08T13:23:48.382Z","avatar_url":"https://github.com/aslams2020.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Textly - Real-Time Multi-Client Chat Application\n\n![Java](https://img.shields.io/badge/Java-17%2B-blue) ![JavaFX](https://img.shields.io/badge/JavaFX-19-purple) ![Sockets](https://img.shields.io/badge/TCP%2FIP-Sockets-orange) ![Concurrency](https://img.shields.io/badge/Thread--per--client-Model-green)\n\n## 📌 Overview\nA chat application demonstrating core networking principles with:\n- **Java Sockets** for low-level communication  \n- **JavaFX** for modern GUI  \n- **Thread-per-client** architecture for scalability  \n\n## ✨ Features\n| Category        | Implementation Details |\n|-----------------|-----------------------|\n| **Messaging**   | Real-time broadcast |\n| **Concurrency** | Supports 10+ concurrent users via thread isolation |\n| **GUI**         | Color-coded messages (User/Server/System), Dynamic user list |\n| **Stability**   | Graceful disconnection handling, Input validation |\n\n## Installation \u0026 Running\n\n1. Compile The Project  : \n```java\nmvn clean compile\n```\n\n\n2. Run the Server : \n```java\nmvn exec:java -D\"exec.mainClass=server.Server\"\n```\n\n3. Run Clients (in separate terminals)\n```java\nmvn exec:java -D\"exec.mainClass=client.Client\"\n```\n\n## How to Use\n1. Start the server first\n\n2. Launch multiple client instances\n\n3. Enter a username (3-20 alphanumeric characters)\n\n4. Start chatting in real-time!\n\n5. Type \"exit\" to leave the chat\n   \n**Screenshot :**\n\n![image1](https://github.com/user-attachments/assets/4d3234a6-6148-4e84-8b94-b75e2216fb4c)\n\n\n![image](https://github.com/user-attachments/assets/70a79f6e-d147-4c31-bd7d-d3e4c95952b8)\n\n\n\n## 🛠 Tech Stack\n```mermaid\npie\n    title Technology Distribution\n    \"Java Sockets\" : 35\n    \"JavaFX GUI\" : 30\n    \"Threading\" : 25\n    \"Error Handling\" : 10\n```\n```mermaid\nsequenceDiagram\n    participant Client A\n    participant Server\n    participant Client B\n    \n    Client A-\u003e\u003eServer: Connect (Port 1234)\n    Server-\u003e\u003eClient A: UserList\n    Client A-\u003e\u003eServer: Send Message\n    Server-\u003e\u003eClient B: Broadcast Message\n    Client B-\u003e\u003eServer: Typing Notification\n```\n\n\n### 🚀 Installation\n- JDK 17+\n- JavaFX 19 SDK\n\n🔗 Connect: [GitHub](https://github.com/aslams2020) | [LinkedIn](https://www.linkedin.com/in/aslamsayyad02/) \u003cbr\u003e\n📧 Contact: sayyadaslam2020@gmail.com\n\n\u003c!--\nmvn exec:java -D\"exec.mainClass=server.Server\"\nmvn exec:java \"-Dexec.mainClass=client.Client\"\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faslams2020%2Ftextly-chat-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faslams2020%2Ftextly-chat-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faslams2020%2Ftextly-chat-app/lists"}