mbkarle / clock-in

0 stars 0 forks source link

User Information Storage #3

Open mbkarle opened 4 years ago

mbkarle commented 4 years ago

Decide and implement a means to save and preserve user information between sessions. Could use third party backend database, or else local native storage. Will eventually need to store user profile, activities and their associated data, including the current status of clocks. Any progressables will also need to be stored. May be worthwhile to compile a list of information to store when this issue is handled.

mbkarle commented 4 years ago

After reviewing some options, it seems like local MongoDB is the best choice for us. API docs can be found on the front page of github repo. Mongo feels like the right choice here for a few reasons:

  1. The recommended AsyncStorage stores unencrypted data and permanence seems questionable (may be in memory only?).
  2. SQL based solutions are supposedly slower and also don't support javascript objects which could be a useful feature
  3. Realm, a super high quality looking product developed for react native data persistence, is not supported by Expo, which is the client I'm using.
  4. MongoDB reportedly is fast, has encrypted and permanent data storage, and supports JavaScript objects.