This project is a simple chat application built using Java Socket programming. It features a client-server architecture, enabling real-time text and image communication between multiple clients. The application also includes an emoji picker, allowing users to send emojis in their chat messages.
- Features
- Technologies Used
- Setup
- How to Run
- Usage
- Screenshots
- Contributing
- License
- Contact
- Real-time text communication between clients.
- Ability to send and receive images.
- Emoji picker for sending emojis in chat.
- User authentication based on a simple name validation.
- Responsive and intuitive user interface.
- Java: Core programming language.
- JavaFX: Used for the graphical user interface.
- Socket Programming: Used for client-server communication.
- FXML: For defining the UI layout.
- CSS: For styling the UI components.
To set up the project locally, follow these steps:
1. Clone the repository:
https://github.com/sasmithx/Chat_Application_Socket_Progrmming.git
2. Import the project:
- Open your favorite IDE (like IntelliJ IDEA, Eclipse, or NetBeans).
- Import the project as a Maven/Gradle project.
- Ensure that the JavaFX library is properly configured in your IDE.
3. Configure JavaFX:
- Download JavaFX SDK if you haven't already.
- Configure the JavaFX SDK path in your project settings.
1. Run the Server:
- Run the Server.java file to start the server.
- The server will start listening on port 5003 by default.
2. Run the Client:
- Run the ClientController.java file to start the client.
- Enter your username in the login screen.
- Start chatting with other connected clients.
- Login: Enter a username (between 4 and 15 alphabetic characters) to join the chat.
- Send a Message: Type your message in the input field and press enter or click the send button.
- Send an Image: Click on the image icon to select and send an image.
- Send an Emoji: Click on the emoji icon to select and send an emoji.
- Receive Messages: All incoming messages, images, and emojis will be displayed in the chat window.
Contributions are welcome! Please fork this repository and submit a pull request with your changes.
This project is licensed under the MIT License - see the MIT License file for details.