benmatteson / cs410_agile_group2 Goto Github PK
View Code? Open in Web Editor NEWCS410 Agile Practice Project - FTP Client
CS410 Agile Practice Project - FTP Client
As a non-tech-savvy FTP user, I want an FTP client installer, so I can easily install the program on my own.
When FTP_main.py parses SFTP commands using split
, it is splitting substrings (e.g., mkdir "file name"
is interpreted as mkdir file name
), which causes some valid commands to produce errors.
It appears that this can be resolved fairly easily by using split()
from the shlex
module (https://docs.python.org/3/library/shlex.html)
FTP users should be able to recall saved connection information so that the FTP client is able to re-initate a connection to the same FTP server using the previously-used information.
The user should be able to put multiple files onto the remote server with a single command. Upon being uploaded, the remote files are identical to their local counterparts.
After upload, file is available on the server. file on server is identical to original file.
As an FTP user, I want to be able to resume a failed file transfer, so I can quickly transfer files after my connection is interrupted.
When a user runs the client they should be met with a prompt where they can enter the commands to perform the desired actions so they can use the client directly.
FTP users should be able to change the permissions of files and folders on a remote server so that files can be secured.
To be able to use saved connection information from within the SFTP client, it will be necessary to allow a user to enter the interactive shell without an active connection (the software's current behavior is to: exit if a connection can't be made).
Tasks #29 and #30 require this feature to exist before they can be implemented.
In order to aid with overall usability and testing, we need to be able to list the remote working directory.
After the remote file is selected, and a new name is supplied, it's name will change to the new selected name. The client will output a message if the name change was successful or not.
As an FTP client user I want to be able to log into a remote server so I can authenticate with the server.
FTP users should be able to recursively copy directories on the remote server so that directories can be duplicated.
FTP users should be able to delete directories on the remote server so that the remote directory tree can be managed via FTP.
After deleting a file from the remote server, it will not longer exist on the server; users should be able to delete files that they have permission to delete; the file must exist before the user attempts to delete it
As a user of the SFTP client, I want to be able to change directories locally because that should be included in a basic SFTP client done via CLI.
FTP users should be able to delete directories on the remote server so that the remote directory tree can be managed via FTP.
The user should be able to list files and directories on their local machine.
As an FTP user, I want to be able to rename a file on the local machine, so that I can rename files on my local machine without closing the FTP client
Test Resume Failed File Transfer
Test Tracking Activity
Test Timeout Disconnection
FTP users should be able to save connection information so that the FTP client is able to 'remember' the previous host, port and username
Test testing issue
As a user of the SFTP client, I want to be able to know what my current directory is because sometimes I forget which directory I'm in and this would help jog my memory.
As an FPT user, when I am idle from the remote server, I get disconnected from the server so that the server remains secure.
Depends on:
Acceptance Criteria:
Upon creating a directory on the remote server, it should persist across log ins. The user who created the folder should have the necessary access rights (i.e. write access).
The user should be able to retrieve multiple files from the remote server with one command, and after being downloaded, the local versions match their remote counterparts.
The user should be able to see a directory tree upon authenticating with the remote server, which correctly lists all directories in their appropriate hierarchies.
because command history is saved in the local working directory and cdl changes the local working directory, new command_history.txt
files are created in each new directory after cdl.
FTP users should be able to delete directories on the remote server so that the remote directory tree can be managed via FTP.
Upon logging out, the sftp client will no longer response to user input, however the user should be able to log back into the client should they choose to do so.
A decision needs to be made on the how program will be delivered to the client, and under what conditions is its use supported.
Possible solutions:
In order to aid in the overall functionality of the Client and testing suits, a feature needs to be implemented so that we can change remote directories.
The user should be able to download a file from a remote server to their local machine. Once downloaded, the new file must be an exact copy of the remote version.
Some of the tests need to be rewritten to pass reliably (or so others can pass) (see TODOs). Alternately, a setup guide/script/something for the server that's to be tested against.
Some of the integration tests count on certain behavior from other tests which isn't currently happening. they should be rewritten to so the other tests can pass.
(e.g. this test was written, but it does something else and is called after the chmod tests.)
Alternately, we drop the "unit test" pretext because in reality we've got a bunch of integration tests written like unit tests, some of which, mine included, casually call functions that are "tested" later in the same way. so we could instead roll them together into test cases that actually test sequences of actions like mkdir -> chmod -> rm, rather than enforcing specific side effects in the faux unit tests. But that's more work...
As an FTP user, I want to be able to see all recent actions done in the program so that I can track FTP activity.
Test Create FTP Client Installer
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.