TIP
- This is an extra credit assignment which you can build on top of your FTP client in the previous assignment
- You may work with another classmate
Your assignment
In summary, add a GUI layer to your text-based/command line FTP client. You may continue to use Python and use a GUI library in Python or switch to another language as use a GUI library for that language. If you decide to switch out from Python, the language of choice must be a compiled language: C, C++, Rust, Java, Kotlin, Go, etc.
The grade you earn on this extra credit assignment will be calculated based on the features you implemented from the list of feature below:
- (2 points) An input text field to enter the remote host name
- (3 points) A button to connect to the remote host
- (2 points) A button to disconnect to the remote host
- (2 points) A button to quit your GUI
- (3-5 points) A GUI element to enter your userid and (if required) your password. A higher credit will be given if this input is prompted as a modal dialog (with an "OK" button)
- (3 points) A scrollable text area to show all the response messages sent by the remote FTP server
- (3 points) A scrollable list of remote file names (populated automatically after the user login is accepted).
- (+2 points) handle mouse actions on each row in the list to change directory or trigger a download
- (3 points) A scrollable list of local file names (populated automatically after the GUI is launched)
- (+2 points) handle mouse actions on each row in the list to trigger an upload