This project implements a CLI-based network distributed chat system, allowing multiple clients to communicate in real-time. It is developed in Java and offers a variety of features to ensure efficient and smooth communication.
- Ensure you have Java and Maven installed on your system.
- Navigate to the project directory.
- Use Maven to compile and build the project:
mvn clean install
- Run the server using the command:
java -jar <server-jar-name>.jar
- Run the client using the command:
java -jar <client-jar-name>.jar
- Modularity through design patterns.
- Testing via JUnit.
- Ensuring fault tolerance.
- Component-based development approach.
- Specify the listening port before server initiation.
- Handle multiple client connections concurrently.
- Designate the first client as the coordinator.
- Regularly verify the coordinator's online status and assign a new one if offline.
- Notify all clients about members who disconnect.
- Specify necessary details like server IP, server port, unique username, client listening port, and client IP before initiating the client.
- Send public (broadcast) messages.
- Send private (direct) messages to specific users.
- Bad Word Checker: Ensures appropriate language by checking for any inappropriate words in messages.
- History Writer: Records all broadcast messages for future reference.
This project is licensed under the MIT License. For more details, see the LICENSE file.