This repository contains the source code of a project developed as part of a distributed system that enables communication between servers and clients, user account management, file sharing, and asynchronous notifications.
Before running the project, you need to set up the development environment:
-
Database: Use MySQLWorkbench to create a database by executing the SQL code provided in the
database-code.sql
file. -
User Accounts: Create user accounts with administrative privileges using MySQLWorkbench.
-
Server and Clients: Start one or more servers, providing the IP of the Database and the RMI IP. The server IPs and ports will be indicated during startup.
After setting up the environment, follow the steps below to use the system:
-
Server Initialization: Start the server and provide the Database IP and Registry IP as needed.
-
Client Initialization: Start the client and provide the IP address and TCP port of the server you wish to connect to.
-
Authentication: Authenticate with an existing account or create a new account if necessary, following the instructions provided by the client.
-
File Sharing: Place the files you want to share in the indicated directory. The system will automatically detect the available files.
-
Client Features: Use the options provided by the client to send messages, transfer files, view history, and other available features.
The system uses a distributed architecture, with TCP and UDP communications between servers and clients. The main technologies used include:
- Java RMI: For implementing remote services.
- MySQL: For storing system data.
- NetBeans: Development environment used for creating the project.
Contributions are welcome! If you'd like to contribute to the project, please open an issue to discuss the proposed changes or submit a pull request with your changes.
This project is licensed under the MIT License.