This project is a secure, local-network chat application with file sharing capabilities. It uses strong encryption to protect messages and allows administrators to manage user information. Built with Java, it leverages multithreading for efficient performance and a MySQL database for storing chat logs. It's made as the final report for the Course "Computer Network Programming" at Ton Duc Thang University
- Multithread programming
- TCP/IP Socket (Local Network)
- AES Encryption
- Database (MySQL)
- JavaSwing GUI
- Send/Receive messages in a group
- Clear/Load Chat Log from Database
- Encrypt and Decrypt messages
- Upload File to Server
- Get the uploaded File
- Show Users Information
- Add/Remove Users
- Edit Users Information
Ngo Tan Loi ([email protected])
Le Vu Phuong Quang ([email protected])
This project requires below technologies to implement:
- MySQL 8
- Netbean 16 (JDK 19) (Other IDE such as IntelliJ)
- Clone this repository
- Open the repository in your IDE
- Import
chat_app.sql
to MySQL Database - Config the Database information in
src/core/Database.java
- Build the project
- Run the
ServerInitialize.java
to start the Server - Run the
App.java
to start a client
ServerInitialize.java
turn on the Server to accept the Client Socket, also create a Client represent to it's own
App.java
turn on a Client each time it's started. The client search for Server Socket constantly and automatically.
- The Chat feature only available when it's connected to the Server
- The User Management feature only available to User has Role = 1 and the Server
- Witt Code - "Java Socket Programming - Send and Download Files Between Client and Server" - (https://youtu.be/GLrlwwyd1gY)
- Witt Code - "Java Socket Programming - Multiple Clients Chat" - (https://www.youtube.com/watch?v=gLfuZrrfKes)
- Coding with John - "Multithreading in Java Explained in 10 Minutes" - (https://www.youtube.com/watch?v=r_MbozD32eo)