2. What is Syncitall?
• Syncitall basically provides a common interface for most common
cloud storages. The aim of the project is to sync all the data present in
your favourite cloud storages. This project presently merges three
cloud storages namely:
1. Google Drive
2. OneDrive
3. Dropbox
• Entire project is coded in python. Graphical interface has been
provided using PyQt4.
3. Why Syncitall?
Considering the increase in number of online drives but for all ,a
different account and comparatively smaller offered storage
individually, this program is an effort to solve problems of multiple
storage and no universal access to them. One more problem being
faced is the limit of size of file to be uploaded. Combining the spaces of
different drives can solve this purpose.
5. Application Program Interface(API)
• The very basic element of the project is the API.
• Every cloud storage provides APIs for development purposes. APIs
provide functionality like:
1. Upload and download files from cloud storage.
2. Delete files from cloud storage.
3. Retrieve information regarding quota, shared data etc.
• APIs need to be authenticated before use. Users have to provide their
username and password for the corresponding cloud service to
authenticate APIs.
6. Authorization
• Authorization is the process of retrieving authorization token in
exchange of username and password.
• Authorization token is a simple string of numbers and letters. It is
used as a password to avail various API services.
• All the cloud services used in this project use the same standard of
authorization namely OAUTH 2.0.
7. Steps of authorization
1. The very first step involved retrieving authorization URL. This step
requires the developer to provide Client ID, Client Secret, scope,
api_key etc. The developer gets this information from developer
consoles of respective cloud services.
2. In the second step, the user has to provide his username and
password to get authorization token.
3. The authorization token is fed to the application. The user can now
use the APIs
8. The difficulty with authorization
Although quite an easy process, the authorization process, the
authorization process is a hindrance in the smooth working of program.
Therefore, the whole authorization process is automated using
Selenium.
9. Selenium
• Selenium automates browsers. Primarily, it is for automating web
applications for testing purposes, but is certainly not limited to just
that. Boring web-based administration tasks can also be automated
as well.
• Selenium has the support of some of the largest browser vendors
who have taken (or are taking) steps to make Selenium a native part
of their browser. It is also the core technology in countless other
browser automation tools, APIs and frameworks.
10. Graphic User Interface
• The GUI in the project is provided using PyQt4.
• PyQt is one of the two most popular Python bindings for the Qt cross-
platform GUI/XML/SQL C++ framework.
11. What is Qt?
• Qt is an independent technology for cross-platform development.
• It creates connected devices, Uis and applications that run anywhere
on any device, on any operating system at any time.
12. File Splitting
• What if we want to upload a file that is bigger than the size of any
individual cloud storage? This where combining of cloud storages
comes into use.
• Whenever a large file is being uploaded, the program recursively
splits the file and uploads accordingly to various cloud storages. It
allows us to upload large files.
13. A glipse of the Project
• The program starts with a welcome screen which asks for the cloud
storages we want to sync.
• After the user has entered the required information, the user is
redirected to main window which contains all the files present in
cloud storages. The main window consists of:
1. Home: This is the main screen where all the files and folders present in the
cloud are shown. We can move the files, delete them or download them.
2. Trash: The deleted files are stored in trash. These files cannot be accessed.