<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Uki</title>
    <description>The latest articles on DEV Community by Uki (@ukihunter).</description>
    <link>https://dev.to/ukihunter</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2865495%2F9a02ac1b-d889-4549-82d9-c333259959e2.jpeg</url>
      <title>DEV Community: Uki</title>
      <link>https://dev.to/ukihunter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ukihunter"/>
    <language>en</language>
    <item>
      <title>📚 Offering Free Help with GitHub Project Documentation – Let Me Write It for You!</title>
      <dc:creator>Uki</dc:creator>
      <pubDate>Sun, 11 May 2025 04:17:11 +0000</pubDate>
      <link>https://dev.to/ukihunter/offering-free-help-with-github-project-documentation-let-me-write-it-for-you-32la</link>
      <guid>https://dev.to/ukihunter/offering-free-help-with-github-project-documentation-let-me-write-it-for-you-32la</guid>
      <description>&lt;p&gt;Hey everyone!&lt;/p&gt;

&lt;p&gt;I'm looking to contribute to open source by helping developers with their GitHub project documentation—for free.&lt;/p&gt;

&lt;p&gt;If you have a project that could use a clearer README, better installation/setup instructions, or structured usage guides, I'd love to help out. Whether it's a personal project, something you're building with a team, or just something you haven’t had time to document, I’m here for it.&lt;/p&gt;

&lt;p&gt;What I can help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing or rewriting README files&lt;/li&gt;
&lt;li&gt;Creating setup guides (installation, usage, prerequisites, etc.)&lt;/li&gt;
&lt;li&gt;Adding examples or usage instructions&lt;/li&gt;
&lt;li&gt;Structuring existing documentation&lt;/li&gt;
&lt;li&gt;Improving clarity and grammar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just drop a comment with a link to your repo or DM me. I’ll reach out and we can get started. I'm doing this both to practice my technical writing and to give back to the dev community.&lt;/p&gt;

&lt;p&gt;Looking forward to helping out! 🚀&lt;/p&gt;

</description>
      <category>programming</category>
      <category>github</category>
      <category>documentation</category>
      <category>freelance</category>
    </item>
    <item>
      <title>Ftp client with GUI Python🐱‍🏍</title>
      <dc:creator>Uki</dc:creator>
      <pubDate>Sun, 02 Mar 2025 09:28:58 +0000</pubDate>
      <link>https://dev.to/ukihunter/ftp-client-with-gui-python-e82</link>
      <guid>https://dev.to/ukihunter/ftp-client-with-gui-python-e82</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5mvcqla6kt68aohechs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5mvcqla6kt68aohechs.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok let's dive in to the project. and this is my first post hear so you know what I'm talking about. Main libraries I use are the FTPlib and customtinter for the GUI.&lt;/p&gt;

&lt;p&gt;Source code : &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ukihunter" rel="noopener noreferrer"&gt;
        ukihunter
      &lt;/a&gt; / &lt;a href="https://github.com/ukihunter/Python-FTP-Client" rel="noopener noreferrer"&gt;
        Python-FTP-Client
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A simple and efficient FTP client built with Python, allowing users to connect to FTP servers, upload/download files, and manage directories seamlessly.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌐🚀 Python FTP Client&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A &lt;strong&gt;powerful yet simple FTP client&lt;/strong&gt; built with Python, allowing seamless file transfers between local and remote servers. Perfect for managing FTP connections with ease!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/ukihunter/Python-FTP-Client1/1.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fukihunter%2FPython-FTP-Client1%2F1.jpg" alt="forest"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 Key Features&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;✔️ &lt;strong&gt;Connect&lt;/strong&gt; to any FTP server securely&lt;br&gt;
📂 &lt;strong&gt;Upload &amp;amp; Download&lt;/strong&gt; files effortlessly&lt;br&gt;
📁 &lt;strong&gt;Manage Directories&lt;/strong&gt; (list, rename, delete)&lt;br&gt;
🔄 &lt;strong&gt;Transfer Status Updates&lt;/strong&gt; in real-time&lt;br&gt;
🔒 &lt;strong&gt;Secure &amp;amp; User-Friendly&lt;/strong&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔧 Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;1️⃣ &lt;strong&gt;Clone the Repository&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/Ukihanter/Python-FTP-Client/tree/main
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; your-repo-name  &lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;2️⃣ &lt;strong&gt;Install Dependencies&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;pip install -r requirements.txt  &lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 How to Use&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;⚡ Run the FTP Client:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;python gui.py  &lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;💡 Enter FTP server details and start transferring files easily!&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📦 Requirements&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;🔹 Python 3.x&lt;br&gt;
🔹 &lt;code&gt;ftplib&lt;/code&gt; (Built-in)&lt;br&gt;
🔹 Any additional dependencies in &lt;code&gt;requirements.txt&lt;/code&gt;&lt;br&gt;
🔹 Defult local path is set to D:\ Feel free to edit it.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📜 License&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;📄 Open-source under the &lt;strong&gt;MIT License&lt;/strong&gt; – Feel free to contribute!&lt;/p&gt;
&lt;p&gt;🔗 &lt;strong&gt;Contribute &amp;amp; Star ⭐ the project if you find&lt;/strong&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ukihunter/Python-FTP-Client" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;strong&gt;Making the GUI&lt;/strong&gt; 

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;First i created the GUI using Figma.and i used a tool called Tkinter-Designer to import them to the python Gui it is a very easy way to make python GUI but it has some downfalls.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tkinter-Designer :&lt;code&gt;https://github.com/ParthJadhav/Tkinter-Designer&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Video Tutorial : &lt;code&gt;https://www.youtube.com/watch?v=oLxFqpUbaAE&amp;amp;t=562s&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation : &lt;code&gt;https://github.com/ParthJadhav/TkinterDesigner/blob/master/docs/instructions.md&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After creating the GUI you can go to the next step 🤓&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Cording
&lt;/h2&gt;

&lt;p&gt;Requirements :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This project uses Python's standard libraries only.
# No additional packages need to be installed.

# Optional: Specify Python version if needed
# python_version &amp;gt;= 3.9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we have to import the libraries that we used for this project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os                  # For operating system/file handling
from pathlib import Path   # For path manipulation
from ftplib import FTP     # For FTP protocol operations
import datetime            # For timestamp handling
from tkinter import ttk, messagebox     # GUI components
import tkinter as tk
from tkinter import Tk, Canvas, Entry, Text, Button, PhotoImage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the Generated by the Tkinter-Designer and you don't have to worry about that&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Set up paths for GUI assets
OUTPUT_PATH = Path(__file__).parent
ASSETS_PATH = OUTPUT_PATH / Path(r"C:\Users\GIGABYTE\Desktop\New folder (4)\build\build\assets\frame0")

def relative_to_assets(path: str) -&amp;gt; Path:
    """Helper function to create absolute paths for GUI assets"""
    return ASSETS_PATH / Path(path)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basic GUI model&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create main application window
window = Tk()
window.title("FTP client By uki")
window.geometry("1280x720")
window.configure(bg="#2B2B2B")  # Dark background color
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Defining the Default file path to the client&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Global variables for FTP connection and navigation
ftp = None  # Will hold the FTP connection object
current_ftp_path = "/"  # Current directory on FTP server
current_local_path = "D:/"  # Current directory on local machine
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;issue&lt;/strong&gt; : I used the default &lt;code&gt;"D:/"&lt;/code&gt; because if you put this in to &lt;br&gt;
        &lt;code&gt;C:/&lt;/code&gt; it will return with access denied error.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now we going to received the files from the local machine in hear i used the Tree view to show case the files it also use &lt;code&gt;try&lt;/code&gt; function to update the file list .in the end as you can see it has Error handling and to &lt;code&gt;Permission Error&lt;/code&gt; and &lt;code&gt;Exception&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkckzftsrm7an6qvxic0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkckzftsrm7an6qvxic0n.png" alt="File receiving" width="800" height="741"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This part in the code handle the navigation in the local machine decretory using Double click function.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4am9czrb9cmnhfjaz0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4am9czrb9cmnhfjaz0n.png" alt="Navigation in local machine " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now&lt;code&gt;local_go_back&lt;/code&gt; function handle the back navigation in the local machine directory. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgou29isjuu6t15vs82ol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgou29isjuu6t15vs82ol.png" alt="GO back function" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now it take the input &lt;code&gt;host&lt;/code&gt;&lt;code&gt;username&lt;/code&gt;&lt;code&gt;password&lt;/code&gt; and it use &lt;code&gt;try&lt;/code&gt; function to establish the connection to the server. if the connection successful it return the log as &lt;code&gt;✅ Connected successfully!&lt;/code&gt; if not it return the &lt;code&gt;Exception&lt;/code&gt; Error &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn9cb1ofespkqdvcxjnw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn9cb1ofespkqdvcxjnw.png" alt="Stablish the connection to server" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now List down the Host files as same as local machine and also error handling &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdrtyu1kq8fbut806jmrm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdrtyu1kq8fbut806jmrm.png" alt="List down the Host files" width="800" height="690"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Handling the file navigation in the Host :&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l8r5xb6e73t7k3emgj4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l8r5xb6e73t7k3emgj4.png" alt="navigation in the Host" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Host and local file Tree view stretcher : &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpt0g0um8x9bdmgvkg8f0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpt0g0um8x9bdmgvkg8f0.png" alt="local file " width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kt6scj4akk98r422ou7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kt6scj4akk98r422ou7.png" alt="Host file " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;loading the decretory when loading(in this case it Drive&lt;code&gt;D:/&lt;/code&gt;)&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvrr0yqcen6dxygg8az8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvrr0yqcen6dxygg8az8.png" alt="Image description" width="788" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Button stretcher and function calling :&lt;/strong&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8ynrkz8769yzclj4k75.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8ynrkz8769yzclj4k75.png" alt="Connecting button " width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This Button is the tiger that to connect to the ftp server  &lt;code&gt;command=connect_to_ftp,&lt;/code&gt; other variables are the  design and the position of the button &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Delete Button&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2af27bk0ltn5kxf22s56.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2af27bk0ltn5kxf22s56.png" alt="Delete Button " width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This Button is the tiger that to delete selected file from the ftp server &lt;code&gt;command=delete_file,&lt;/code&gt; other variables are the  design and the position of the button &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Upload Button&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w6ofrip9e4ftu7insgf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w6ofrip9e4ftu7insgf.png" alt="Upload Button " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This Button is the tiger that to Upload selected file from the local client &lt;code&gt;command=upload_file,&lt;/code&gt; other variables are the  design and the position of the button &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Download Button&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qiaugi8wmvgom2p4svm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qiaugi8wmvgom2p4svm.png" alt="Download Button " width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This Button is the tiger that to Download selected file from the Host Server &lt;code&gt;command=download_file,&lt;/code&gt; other variables are the  design and the position of the button &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Main function in the Ftp client
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Download function&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsh085s02yy6f4i98z1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvsh085s02yy6f4i98z1o.png" alt="Download function " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;when the &lt;code&gt;download_file&lt;/code&gt; function tiger it check the connection and try to dowanlad the selcted file from the host if not it return error massages using &lt;code&gt;messagebox&lt;/code&gt; if all good it save the file to the local path.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Upload function&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdq33g3y4ho3d14bssmmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdq33g3y4ho3d14bssmmi.png" alt="Upload function " width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This function also have the same procedure except it upload file to the host and also provide necessary error massages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Deleting function&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d13q1u3nno3fzacitge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3d13q1u3nno3fzacitge.png" alt="Deleting function " width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Function that delete file from the host this can't be perform in the local machine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Path verification&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Upload log&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp1fyxyikv2iko646s8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp1fyxyikv2iko646s8o.png" alt="Upload path" width="800" height="268"&gt;&lt;/a&gt;&lt;br&gt;
logging the uploading success This Enter the text to entry_4  &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Download log *&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqbjrx7n7oqepm6net2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqbjrx7n7oqepm6net2l.png" alt="Download path" width="800" height="257"&gt;&lt;/a&gt;&lt;br&gt;
logging the Downloading success. This Enter the text to entry_4  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ok now you know how it happened. I know this can be a real boring one for you .maybe not.However this is my first article you can wish me luck 😉&lt;/p&gt;

</description>
      <category>python</category>
      <category>productivity</category>
      <category>programming</category>
      <category>programmers</category>
    </item>
  </channel>
</rss>
