if you want to sync uploaded data even in no-network conditions, the best way is really to create an alternate model to hold objects that have been changed locally but have not yet reached the server.
in this way, you can contain all the latest client changes and upload them reliably to the server using your CRUD routes, this can be fully automated.