FTP Backup Project


**FTP Backup Project**

There are three (3) components to the FTP Backup Project.

(1) The FTP server with mySQL DB

(2) The DB API

(3) The Client software (windows)

For more details see *Deliverables

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.

2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):

a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.

b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.

3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).

**FTP Backup Project**

There are three (3) components to the FTP Backup Project.

(1) The FTP server with mySQL DB

(2) The DB API

(3) The Client software (windows)

_(1) FTP Server_

The server needs to run on Linux Operating System.

The server needs to be able to measure, set and control the following parameters via a, account access and configuration database (mySQL) per individual account.

1. password type (permanent or x-time)

2. allow to change password switch

3. settable ip access rules

4. settable directory access

5. home directory path

6. administrator privilege settings

7. login message file path

8. max concurrent users

9. max users from IP

10. max upload speed

11. max download speed

12. idle time-out

13. session time-out

14. quota enable switch

15. current disk quota

16. maximum disk quota

17. automatic expiration of account

18. upload to download ratio min and max

19. API access control

<[url removed, login to view]> has already been suggested as a server

_(2) DB API_

An Application Programming Interface that will allow complete control over the database. Such an API will use https:// as a communication protocol.

The API will have functions to:

(1) Create/Delete user accounts

(2) Update User Accounts

(3) Query User accounts

(4) Perform security checks

(5) Administrative functions

PHP or PERL is preferred as language. Security is very important as this API allows direct control over the database.

_(3) Client Software_


This Windows client software will selectively compress, encrypt and send files to a remote FTP server. The purpose is to create a remote backup system capable of backing up:

· MS Outlook / Outlook Express

o Script will close MS Outlook/Outlook Express

o Duplicate the file in cache (cache size must be appropriately adjusted by client software prior to create the duplicate file)

o MS Outlook/Outlook Express can then be re-launched with a script, if it was previously open, while the client software processes the cached duplicate file for backup.

· ASR (System Recovery)

· Registry Settings

· Windows Explorer - My Favorites

In point form here are most of the MUST HAVE features

1. Self installed executable For windows 98/2000/XP/2003

2. Should have trial period

3. Will encrypt image with AES 128 encryption key that is generated by the software

4. Can schedule backup

5. Will be able to save/load encryption key to diskette

6. Automatic live update of client software

7. Keeps 3 latest versions of backup available online

8. Ability to display ads or messages on client (during trial period) using adserver such as phpadsnew

9. Efficient management of bandwidth (see notes .)

10. Recovery and restore of all backups (one button full recovery)

11. Different service levels for each backup type


In order to conserve on bandwidth (the MAIN design issue) we should utilize rsync to send files to the remote server. FTP would merely be used to retrieve control files and to perform a restore since the rsync server would not be running on the client.

All data from the server should be passed to the client using control files contained in the users home directories. These files will contain information such as specific service level flagging of product type, server to client messages, advertising information to client, and rsync messages etc..

A typical scenario:

1. Client software open

2. Client software connects to remote FTP server and retrieves status control file.

3. Status control file contains account plan info, disk usage etc. and is responsible for all product access control.

4. Client prepares backup file by encryption and compression. Efficient backup file system format will need to be determined.

5. File is sent to FTP server via rsync protocol.

6. Status control file is refreshed and info displayed. Each refresh is an FTP Get command

What needs to be confirmed is as follows:

1. Is Rsync the best solution to conserve on bandwidth during remote file transfer?

2. Design criteria for high volume account activity

3. Exact structure of status files

4. Client software look and feel

5. Creating login info for rsync server

6. Create function list for DB API

* * *This broadcast message was sent to all bidders on Friday Apr 1, 2005 11:37:06 AM:

Revised and final project ready to start

## Platform

Linux/apache/php/mysql for server part

Windows 98/2000/XP/2003 for client part

Skills: Engineering, MySQL, PHP, Software Architecture, Software Testing

See more: windows volume display, what is the most used programming language, what is the best web programming language, what is the best programming language to start with, what is the best programming language for web design, what is the best programming language, what is ms project plan, what is data structure in programming, what is application programming interface, what is an application programming interface, what is a high level programming language, what are the application of data structure, web client programming with perl update, web client programming with perl, transfer express, the linux programming interface, the best web programming language, the best programming language to start with, set o application, self service administrator web design, self programming language, remote key programming, remote full time php, remote control programming, project service agreement

Project ID: #3623544

1 freelancer is bidding on average $340 for this job


See private message.

$340 USD in 45 days
(2 Reviews)