Home - gameraccoon/easy-photo-backup GitHub Wiki
Roadmap
v0.2 - Basic unencrypted TCP client-server for file transfer
- Simple unencrypted TCP server and a test CLI TCP client
- File transfer works over the unencrypted TCP
- Ability to configure the destination folder for synchronized files for the server
- Ability to set which folder should be synchronized from the client
v0.3 - Unencrypted proof of concept client and server communication
- Ability to discover the server in a local network from the client
- Ability to only connect to the trusted server
- Ability to only accept connections from trusted clients
v0.4 - Encrypted connection
- Add encryption via TLS to the TCP connection
- Ability to verify that the connection doesn't include MITM
- Fix the max length for the strings and variable-size arrays that can be sent
- Make sure pairing or using TLS can't be bypassed
- Make sure files can't be saved outside of the target directory
v0.5 - Proof of concept Android app
- The app can discover the server
- The app can establish a permanent trusted connection with the server
- The client app can request the correct permissions to read files
- The client app can send files to the server
v0.6 - Android app basic functionality
- Only synchronize new files (tracking which files have changed)
- Ability to trigger synchronization from the running app
- Ability to choose folders to synchronize in the app and save the preferences
- Showing the status of synchronization
- User-friendly error handling for connection/transfer issues
v0.7 - Server usability improvements for Windows
- GUI for configuring the server
- Add Windows app icon
- Show the app icon of the server in the Windows System Tray
- Ability to run the server as a background service and the app to detect the service and connect to it for configuration
v0.8 - Android app usability improvements
- Ability to set a schedule for synchronization
- Ability to limit tries for synchronization to only when connected to Wi-FI
- Requesting correct permissions on demand
- User-friendly handling of issues related to missing permissions, and not being able to schedule
- Detecting and reporting missing opportunities to transfer over long periods
v0.9 - UX improvements
- Add instructions or a link to instructions to both apps
- Make sure all options are named in a good way and descriptions are exposed when needed
- Run a "corridor test" on a couple of users to find bad UX
- Fix other UX issues that could make the app unusable for new users
v1.0 - Preparation for publishing on F-Droid or some other Android app store
- Create a simple landing page for the app
- Prepare all the legal notes required for publishing
- Create signing keys
v1.x - Preparation for publishing on Google Play Store
- Make sure the Android app uses a supported Android SDK and is otherwise compliant with Google rules
- Prepare screenshots and descriptions for the Google Play Store
v1.x - Clean up
- Remove extra dependencies to reduce the binary size, and make sure the rustls crate uses only what's needed
v1.x - Optimizations
- Make sure the Android application consumes as little CPU as possible when idle
- Make sure the Desktop client doesn't use extra memory and doesn't consume extra CPU when idle