1. [On first setup] configure what files must be saved and their ID, configure sync mode you want to use (reflect up, reflect down, or bidirectionnal) 2. authenticate to the serv 3. [On first setup] Choose if you want to download or upload existing files 4. // index the files 5. // Check if changes were made, if not, do nothing 6. // Encode the files 7. Transfer the files over tcp with ssl 8. // Decode the files 9. // [On server] [if there are conflicts] take the last modified file 10. Reupdate every hour Authentication: Register: - client sends registration request to the server - server returns fail/success code and a token - client stores the token locally then authenticate Authenticate: - client sends token - server returns bool isTokenValid and link client to the token temporarly