This is a FTP Client program built using Python and the PyQt5 GUI framework. It allows users to connect to remote servers, browse their remote & local file systems, transfer files from remote to local & local to remote, and delete files on both remote and local file systems.
It also includes a SFTP server that the user can run locally.
I built this application primarily in order to gain experience making small projects using Python and to mentor new Python developers on Python software development.
- Python 3.9.x
- PyQt5.x
- pysftp 0.2.9
- pathlib
- sftpserver
This program was developed on Windows but can also run on Unix like operating systems such as Linux and Mac OSX.
- Clone repo
- open project folder in IDE of your choice
- Create and activate a virtual environment by running the following commands:
pip install virtualenv
virtualenv dev_env
.\dev_env\Scripts\activate # for Windows users
source dev_env/bin/activate # for Linux and Mac users
- install all dependencies via
pip install -r requirements.txt
- run
python main.py
- Enter your hostname, username, and password in the corresponding field at the top, where hostname is the server ip address of your remote server(it can be a DigitalOcean droplet)
- Click the
Quick Connect
button
- Double click a directory to traverse the local & remote file systems
- Double click to select file, then click corresponding arrow button to transfer from local to remote or visa versa
- Double click and press Trash icon button to delete selected file
FTP Client starting screen after FTP login:
FTP Client Remote to Local file transfer success:
FTP Client file deletion success:
Please feel free to contribute to this project however possible by forking this repo, making changes and initiating pull requests. Thanks!