I need a software product developed that has 2 components. A client side, and a server side. The software is to provide a backup solution to our customers.
Client Side: Software will be easy to install, users will be able to create backup sets (multiple if required). User will be able to select files using standard windows interface to include in the backup sets. User will be able to schedule the backup sets independently. Software needs to encrypt and compress file, send file over encrypted tunnel to server component. Encryption will be hashed against a password that the user provides on the client side. The user should be able to click on the backup set in real time to see what file is currently being copied and the state it is in (encrypting, compressing, uploading). The client software will need to use the ShadowCopy service so it can copy locked files with ease. The software should have the ability to keep a specified number of revisions (set in the user interface). The user interface will have the ability to restore from the backup sets from their software. Client Software will authenticate through a web server. (We will provide web services and MySQL database for this). Software need to be extremely simple from the user's perspective. (Special features should be included on an advanced tab for any features that aren't standard. Software will download the previous backup definition from the server, look for file changes, and upload only changed files on subsequent backups.
Server Side: Software will accept incoming requests for backup and restore processes from client software. Software will allow you to specify Volumes or Folders for Backup Storage. Software will have checks in place to automatically assign new customer to volume with maximum free space. Software will keep track of customer backups and their locations. Software will allow a backup to be relocated to another volume through the user interface. Software will provide realtime feedback on current backup and restore operations. The administrator should be able to look at all current operations, click on the backup, and see in realtime what files are being transferred, GB left, size of total backup, etc.
Please look at the LogMeIn backup system as an example of how it should work.