CSCI 2020U: System Development and Integration
We developed a client-server-based file-sharing system. The application enables users to interact with a shared file repository through a client-server architecture.
The key functionalities of the application include:
-
Uploading Local Files: Users can upload files from their local machine to a centralized shared folder, allowing multiple users to access and retrieve these files.
-
Downloading Files: Users can also download files from the shared folder to their local storage, enabling them to access files uploaded by others in a collaborative environment.
The system is designed to support multiple users simultaneously, with the server acting as the central hub for file storage and the clients communicating with it to upload, download, and list available files. This setup ensures that users can easily share files with one another, contributing to a collaborative work environment.
To increase the readability, make our application more user-friendly, and add some aesthetics our group decided to add the following features:
- Added the name of the client computer to the title of the window.
- Users are able to upload files from the local device
- Users can see the contents of the file in a "Preview" section at the bottom of the window
- Custom icons/buttons beside each file:
- 🗑: Deletes the file from that folder
- ℹ : Gives the user details about the properties of the file including the size of the file, name of the file, and a timestamp of when the file was last updated
To successfully clone and run the application here are the steps the user must take:
- Ensure that the computer in which the application will be running on has the following installed: Java, Git, and an IDE (preferably IntelliJ)
- Go onto the GitHub repository and copy its URL Link to Repository
- Open up the terminal and clone the repository using the following git command: git clone
- Open the project in the IDE of your choice (may have to import as a Maven Project)
- Navigate to the files called FileServer.java (src/main/java/server) and FileClientGUI.java (src/main/java/server)
- Before you can run any of the files please watch this short video on how to edit your configurations Link to Video
- Once you have set up the configurations correctly please run the FileServer.java file first and then the FileClientGUI.java file.
- Give the application a couple seconds to run and then the output should be displayed!
Side Note: When testing the code please upload the following files: "upload1.txt", "upload2.txt", and "upload3.txt", download the following files "download1.txt", and "download2.txt" and delete the "delete.txt" file.



