Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"The big rewrite" #180

Open
9 of 50 tasks
Cu3PO42 opened this issue Jan 19, 2018 · 0 comments
Open
9 of 50 tasks

"The big rewrite" #180

Cu3PO42 opened this issue Jan 19, 2018 · 0 comments

Comments

@Cu3PO42
Copy link
Owner

Cu3PO42 commented Jan 19, 2018

KeySAVe will be transitioning to a web app. In this process I intend to rework a lot of features, put a heavy focus on UX and get some fresh features is as well. This is going to be a lengthy process and should be thought of as a 2.0 version.

Goals

The goals of this are to

  • make the tool more accessible for users
  • have a wider range of devices it runs on; specifically Chromebooks and tablets
  • have a tool that loads faster
  • make it easier to push small updates
  • hopefully have fewer platform specific bugs

ToDo

Things that need to be done

Engineering

  • Write a small native app for TEA
  • Add features back in that were removed during the initial conversion to a web app
    • Mass scanning
    • TEA
    • Import from KeySAV2 (maybe?)
  • Write a KeyStore based on IndexedDB
  • Lazy load localization and stats
  • Make sure the app works offline
    • Get a basic service worker going
    • Offer user the option to warm the cache with all resources
    • Make sure the app handles loss of network connectivity gracefully
  • Integrate with SVEx DB
  • Change the 'cloud' button to always download a 'boxes' file
  • Evaluate higher compression of image assets achieved with pngquant
  • Migrate back to TypeScript
  • Investigate new logging mechanisms (Add logging #147)
  • Evaluate ways to sync keys and config
  • Build a user friendly changelog display
  • Let the user enter filenames for downloads
  • Add a 'share boxes via $cloudprovider' feature (both text and boxes file)
  • Get rid of lots of technical debt
  • Split the app into chunks to enable aggressive caching
  • Upgrade dependencies
    • react-router
    • reselect (maybe?)
    • Material UI
    • React HMRE ⇒ react-hot-loader (maybe?)
    • Babel 7 (when it releases as stable)
  • Investigate using Preact or Inferno instead of React
  • Investigate removing Immutable
  • Investigate removing Babel lodash loader
  • Investigate versioning of the website
  • Add Prettier
  • Investigate moving to a JSS-like solution for CSS
  • Get a web manifest
  • Setup preload tags
  • Add setting/key up-/download function
  • Investigate automatic syncing of keys and configuration options
  • Look into using shared workers for decryptions Only supported in Firefox and Chrome and provides little benefit over other methods
  • Resize icons once rather than at every compile (might be covered by Cache resized icons for faster builds arthurbergmz/webpack-pwa-manifest#45)
  • Investigate storing the config in a format decoupled from the store layout
  • Make sure icons, etc. are not precached

UX

This is very much a preliminary list and is likely to grow as I continue working on points.
At this point no specific release date is targeted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant