https://github.com/andre-lucs/filesharingapp
Project made for Distributed Systems class to further develop my skills in IO, Socket and DesktopDevelopment.
https://github.com/andre-lucs/filesharingapp
desktop-app file-transfer io javafx networking socket-programming
Last synced: about 1 month ago
JSON representation
Project made for Distributed Systems class to further develop my skills in IO, Socket and DesktopDevelopment.
- Host: GitHub
- URL: https://github.com/andre-lucs/filesharingapp
- Owner: Andre-lucs
- License: mit
- Created: 2025-01-09T19:54:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-13T18:16:21.000Z (over 1 year ago)
- Last Synced: 2025-03-27T20:47:34.414Z (about 1 year ago)
- Topics: desktop-app, file-transfer, io, javafx, networking, socket-programming
- Language: Java
- Homepage:
- Size: 218 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# FileSharingApp
## Overview
FileSharingApp is a Java-based application that allows users to share and download files seamlessly. The frontend client interface is built using JavaFX, and the connection is established using sockets with a protocol defined for a college project.
## Features
- Share files with other users
- Download files from other clients
- Download files from multiple owners and combine them for faster download
- Track file transfer progress
- Intuitive JavaFX-based user interface
## Technologies Used
- Java
- JavaFX
- Maven
- Sockets
- Concurrency
## Getting Started
### Prerequisites
- Java 21 or higher
- Maven
### Installation
1. Clone the repository:
```sh
git clone https://github.com/Andre-lucs/FileSharingApp.git
cd FileSharingApp
```
2. Build the project using Maven:
```sh
mvn clean install
```
3. Run the application:
```sh
mvn javafx:run
```
## Usage
### Server
1. Run the server class. : `src/main/java/com/andrelucs/filesharingapp/communication/server/Server.java`
2. The server will start listening for client connections.
### Client
1. Launch the application.
2. Enter the server IP address to connect.
3. Use the interface to upload or download files.
## Project Structure
- `src/main/java/com/andrelucs/filesharingapp/` - Main application source code
- `src/main/java/com/andrelucs/filesharingapp/communication/client/` - Client-side code
- `src/main/java/com/andrelucs/filesharingapp/communication/server/` - Server-side code
- `src/main/resources/` - Application resources
- `pom.xml` - Maven configuration file
## Contributing
Contributions are welcome! Please fork the repository and submit a pull request.
## License
This project is licensed under the MIT License.
## Acknowledgements
- Communication protocol defined by the college
- JavaFX community
- Open source libraries used in this project