We are looking for a Windows desktop application that a user installs on their local computer so that they can backup their local files to Amazon S3. They can then restore those files at a later date. The user selects from a folder tree which folders/files they would like to have backed up and then those files are automatically pushed up to Amazon S3 whenever a change is detected in those files.
The files that are stored for each user on Amazon S3 will have data de-duplication. So if a user has a file in "My Documents" on their local computer called "important-document.pdf" and that same exact file also lives on their "Desktop" then only one copy of "important-document.pdf" should be stored on Amazon S3.
The local files for a user should be incrementally backed up. So if a user has selected to have "important-document.pdf" backed up and this is the first time the file is being backed up then a whole copy of that file should be pushed up to Amazon S3. Each new change made to "important-document.pdf" should be incrementally backed up. So only the newest changes to that file should be pushed up to Amazon S3 rather than a brand new copy of the entire file.
When the user restores "important-document.pdf" then the file should be pieced together from the incremental backups and restored to the newest version of the file.
The desktop application GUI should have two main features, "Backup" and "Restore". The "Backup" feature should display the user's directory tree for their local computer. The user can then select which folders and/or files to have automatically backed up.
The "Restore" feature should display the user's directory tree for Amazon S3. The user can then select which folders and/or files they want to restore.
The application should automatically start at launch and silently run in the background. The application should automatically detect any changes made to the files that the user has selected to backup. If the application has detected a change to a file then the incremental backup should be pushed to Amazon S3. A small dialog pop-up should display near the bottom right task bar to notify the user that the file is being backed up.
The desktop application will need to interface with our internal API which creates the credentials the user's need to upload their files to Amazon S3.
The desktop application will also need to integrate with our user management system so that it will stop working if the user's account with us is inactive. If the user re-activates their account with us then the application should work again. We will handle the user management, you just need to be able to "suspend" and "un-suspend" the application if necessary.
Type of application development required:
Purpose or functionality of application:
Need to efficiently move files from local computer to Amazon S3
Need to restore files from Amazon S3 to local computer
Background service that detects changes in files
GUI for the user to select which files to backup and restore
Call our internal API to check for account status
Platform(s) desired for application:
Graphical User Interface requirements:
Application to run over network: