Implementing an FTP Client and Server with GUI

2023-04-4

project lapse time: 2022-10-12 - 2022-11-21


Introduction

For my computer network's course project, I was the group leader and the project involved implementing both an FTP client and server with GUI using PyFTPlib, PyQT , and SQLite3. Our goal was to create a user-friendly and feature-rich FTP client and server that could be used by anyone, from beginners to advanced users.

Project Details

Our team consisted of six members, and each member was responsible for a different part of the project. I was responsible for the overall project management, including coordinating team meetings, dividing tasks, and overseeing the project's progress. I also participated in the implementation of the FTP client and server and the design of the user interface.

For the backend, we used PyFTPlib, a Python library that provides a high-level FTP protocol implementation. PyFTPlib allowed us to implement both the FTP client and server quickly and easily.

server page

For the user interface, we used PyQT, a Python binding for the popular Qt framework. PyQT provided us with a wide range of tools and widgets for building a modern and responsive UI.

client page

We also used SQLite3, a lightweight database system, to store the FTP server's user account information. This allowed us to implement user authentication and authorization quickly and easily.

login page

Features

Our FTP client and server with GUI had a wide range of features, including:

  • User-friendly and responsive UI with modern design
  • Easy to use FTP client with drag and drop support
  • Multiple file transfer support
  • Concurrent FTP client and server operations
  • Ability to pause and resume file transfers
  • User authentication and authorization using SQLite3 database
  • Log file support for server operations

Conclusion

Overall, this project was a great learning experience for our team. We were able to gain experience in Python programming, PyFTPlib, PyQT, and SQLite3. The project also allowed us to improve our teamwork and project management skills.

Our project is open source and available on GitHub, which we hope will benefit the wider community. We believe that our FTP client and server with GUI is a valuable tool for anyone looking to transfer files securely and efficiently.