cryptpad/chainpad

Can this be used in a mobile app that could go offline for long periods?

Didericis opened this issue · 5 comments

I'd like to build an app that allows a user to edit encrypted journal entries. If they edit an entry on their computer while offline, edit the same entry on their phone while offline, and then both devices go online, I'd like those two entries to be reconciled.

The readme suggests this project can handle delays and race conditions/does some form of reconciliation, but it doesn't seem to be designed for long periods of users being offline. Is that correct? If it's not set up for long periods of being offline, do you have a rough idea how hard it would be to make that work?

sir, I am contributing to this issue.
If you're interested in the problem of synchronizing encrypted journal entries between multiple devices, then you may want to contribute to the project in order to add support for longer periods of offline usage.

As a mentor for the XWiki project, I would be happy to help you with any questions or issues you have while contributing to the project. If you're interested in tackling a core branch code issue, there are a few things to keep in mind.

First, make sure you understand the scope of the issue and what the expected outcome is. This may involve reviewing the codebase, discussing the issue with other contributors, and reading any relevant documentation.

Next, create a plan of attack for addressing the issue. This may involve writing new code, modifying existing code, or debugging existing code to identify the source of the issue.

As you work on the issue, be sure to test your changes thoroughly to ensure they don't introduce new bugs or regressions. This may involve writing unit tests, manually testing the code in various scenarios, or using automated testing tools.

Finally, once you've made your changes, submit a pull request for review. Be sure to follow the project's guidelines for contributions, including coding standards, documentation, and testing requirements.

As a mentor, I can help you navigate these steps and provide guidance on best practices for contributing to the XWiki project. Don't hesitate to reach out if you have any questions or need help with an issue.

@coderstar1234 is not affiliated with the XWiki project and definitely not a mentor. Actual contributions are of course welcome, nevertheless.

Ok...

  1. Implement a local storage mechanism on each device to store the encrypted journal entries while offline. This can be achieved using technologies like IndexedDB or local file storage.
  2. Develop a conflict detection mechanism to identify conflicts that may arise when the same entry is modified on multiple devices while offline.
  3. Design a user interface that communicates conflicts clearly and provides a seamless experience for users to resolve conflicts when devices come online.****