Extend the design of a Synchronization module to allow for:
1. Extend the structure of tables to allow a single user to use multiple machines/
devices and have his files synchronizing correctly with the S3 storage.
2. Plan for allowing multiple users to share multiple files/folders.
3. Plan for using the cloud version of the postgresql DB or cloud version of other
Database management systems like RDS of the AWS.
4. Investigate the possibility of using SQLite instead of a Database management
system for a lite version of the cloud society system.
5. Investigate the possibility of avoid using a server application that centrally control
the system. Instead the goal is to have distributed client applications managing the
system and communicating using a central DB on the cloud.
Extend the functionalities of a python module to allow for:
1. Ensure separating the synchronization of each root in a separate thread to allow for
pausing the synchronization of a single root while the others might still run.
2. Fix a list of bugs and enhance the code.