We wanted to build a file sharing system of our own to enable quick file transfer between individuals and keep these files stored in a database.
The project allows users to get a list of current files on the system, download them to their local device and upload new files to the system.
We built a multi-threaded java server which opens desired amount of threads on the machine the server currently runs on. Each thread handles the socket connection with a specific user, which resets when a user logs out and waits for another user. In each thread, the server awaits for a set of inputs from the server socket. It then uses these to determine weather the user wants to get a list of files, share a new file or download an already-shared file. If a file is to be sent to the user, the server converts the file into an array of bits to be red and re-assembled into a file on the client end. The reverse of this process happens when the user wants to share a file.
Building a web based user interface proved hard, which is why we had to settle with a windows-terminal as the user interface of the client.
We learned how server sockets work in java, and got a better understanding of multi-threading in this project.
While we are proud of our product we built in this hackathon, we are still planning to improve it. The first step would be the construction of a website which may act as the client-side, simplifying the usage of the program and increasing it's compatibility. After accomplishing that, our next objective would be the initialization of a user system, complete with access permissions to files and account security.
Log in or sign up for Devpost to join the conversation.