https://github.com/aslams2020/textly-chat-app
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.
https://github.com/aslams2020/textly-chat-app
gui java javafx javafx-application javasockets serverclient sockets
Last synced: 5 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/aslams2020/textly-chat-app
- Owner: aslams2020
- Created: 2025-04-12T20:43:31.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-04-12T21:04:47.000Z (11 months ago)
- Last Synced: 2025-04-12T21:33:06.280Z (11 months ago)
- Topics: gui, java, javafx, javafx-application, javasockets, serverclient, sockets
- Language: Java
- Homepage:
- Size: 0 Bytes
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Textly - Real-Time Multi-Client Chat Application
   
## 📌 Overview
A chat application demonstrating core networking principles with:
- **Java Sockets** for low-level communication
- **JavaFX** for modern GUI
- **Thread-per-client** architecture for scalability
## ✨ Features
| Category | Implementation Details |
|-----------------|-----------------------|
| **Messaging** | Real-time broadcast |
| **Concurrency** | Supports 10+ concurrent users via thread isolation |
| **GUI** | Color-coded messages (User/Server/System), Dynamic user list |
| **Stability** | Graceful disconnection handling, Input validation |
## Installation & Running
1. Compile The Project :
```java
mvn clean compile
```
2. Run the Server :
```java
mvn exec:java -D"exec.mainClass=server.Server"
```
3. Run Clients (in separate terminals)
```java
mvn exec:java -D"exec.mainClass=client.Client"
```
## How to Use
1. Start the server first
2. Launch multiple client instances
3. Enter a username (3-20 alphanumeric characters)
4. Start chatting in real-time!
5. Type "exit" to leave the chat
**Screenshot :**


## 🛠Tech Stack
```mermaid
pie
title Technology Distribution
"Java Sockets" : 35
"JavaFX GUI" : 30
"Threading" : 25
"Error Handling" : 10
```
```mermaid
sequenceDiagram
participant Client A
participant Server
participant Client B
Client A->>Server: Connect (Port 1234)
Server->>Client A: UserList
Client A->>Server: Send Message
Server->>Client B: Broadcast Message
Client B->>Server: Typing Notification
```
### 🚀 Installation
- JDK 17+
- JavaFX 19 SDK
🔗 Connect: [GitHub](https://github.com/aslams2020) | [LinkedIn](https://www.linkedin.com/in/aslamsayyad02/)
📧 Contact: sayyadaslam2020@gmail.com