Welcome to the Real-Time Chat System! This project is a desktop-based chat application built with JavaFX for the user interface and Socket for real-time communication. It allows users to connect, exchange messages instantly, providing a seamless, interactive experience.
-
User Management:
- View, add, update, and delete user accounts.
- Lock user accounts and reset passwords.
- View login history and friend lists.
-
Group Chat Management:
- Manage chat groups, including viewing members and admins.
- Sort and filter groups by name or creation time.
-
Spam Reports:
- View, sort, and filter spam reports.
- Ban users based on spam activity.
-
User Statistics:
- Monitor active users and display visual reports.
- View the number of new registrations per month with graphs.
-
Account Management:
- Register, log in, update profile information, and reset passwords.
-
Friend Management:
- Send, accept, and decline friend requests.
- Block users, view online friends, and filter by name.
-
Real-Time Messaging:
- Instant message delivery with real-time updates.
- View chat history, search within conversations, and delete messages.
-
Group Chat:
- Create and manage groups with admin privileges.
- JavaFX: For building the graphical user interface.
- AsynchronousSocket: For real-time, two-way communication between the client and server.
- Java SE: Core backend logic and handling.
- Gradle: Dependency and project management.
- Java Development Kit (JDK) 21+
- Gradle
- Start the SocketServer.
- Launch the UserClient.
- Login/Register to begin chatting.
- Use the AdminClient to manage users, groups, and reports.
- End-to-End Encryption (E2EE) for private chats.
- Theming options for UI customization.
This project is licensed under the MIT License.