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