Project Title: Online Automated Backup Tool (OABT)
OABT software enables a user to specify a folder on their computer which they want to be automatically backed-up (synchronized) to a remote server. Backups are done twice daily and the user can set the time backups are made.
OABT software is made up of two subsystems:
Client-side and the Server-side
Features/Functions of the Client-side:
Provide an interface through which the user can set the folder destination for backup, as well as the times the backups will be done.
Runs on System Start-up and shows on the task bar.
Automatically execute the online backup process on the specified time of the day.
Keep log on successful/failed backups.
Alert the user when there is no internet connectivity during the backup procedure.
Create unique user ID during installation. This ID will be used to identify all synchronizations from a specific computer.
Prior to upload procedure, the specified folder is zipped (compressed) and then sent to the server.
Each client requires a key that is unique to their account. Only users with this key can utilize OABT features.
Users can see the quota of their backup storage space.
System Requirement for Client-side Application:
Preferably developed using Java JDK 8.0.
Must be able to execute the program on Windows 7 and 8.
Features/Functions of Server-side:
Processes upload requests from clients.
Backed-up files are stored in a location that cannot be accessed via http. E.g., root folder.
Contains database tables that associates uploaded files to users using the created user ID as primary key and time stamps.
Contains database table for storing key/serial numbers. Upload requests are only accepted from clients with valid keys.
New users can sign up via the system with their email address and password, after which they are provided with a key/serial number.
Each user has a data quota that can’t be exceeded.
There is member area page. On this page, users can login to see their backup log (last backup date/time and data quota).
System Requirements for Server-side:
Preferably developed using PHP/MySQL.
Multi-threaded – Should be able to handle a minimum of 100 requests at any given moment efficiently.