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

Should we use a database? #59

Closed
coreyjjames opened this Issue Nov 13, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@coreyjjames
Copy link
Contributor

coreyjjames commented Nov 13, 2018

Want some opinion's on using a database. Some discussion has already taken place in issues #34, #31 and #53. Lots of great possible solutions have been purposed, so lets talk about them here before we choose.

I narrowed it down to three possible solutions, each with their own option's. If you have any other options I am open to any suggestions as well.

  1. Store user data on a data base

    • Possible database solutions are Parse, Firebase, Redis, MySQL or MongoDB
  2. Managing all data locally on user machine

    • Figure out how to store all data on the user's local machine. Example of data would be Username, Profile Pic and more to come in the future like friends or chatrooms.
    • Possibly, stores messages until they are delivered to the user.
  3. Third party login like google or Facebook and a guest login that stores data locally.

    • Integrate third party login into the app, this make it so someone's else is responsibility to manage the user's data.
    • The Guest users would not have password security a have more limited functionality
@dnguneratne

This comment has been minimized.

Copy link
Contributor

dnguneratne commented Nov 13, 2018

IMO it depends on the project goal. Is it meant to be truly anonymous? If so, local storage is the way to go. If we want to use a database, there's also the cost overhead of running a db. What do we want to achieve by introducing a db (other than storing profile pictures)?

@coreyjjames

This comment has been minimized.

Copy link
Contributor Author

coreyjjames commented Nov 13, 2018

Yes @dnguneratne, we need to work on the project goal.

I can't think of many use case's for a 100% off the record anonymous chat. I am leaning towards having the off the record anonymous chat as more of an option, for the chat system.

And to clarify some of the database's possible uses:(allot of which we don't currently have)

  • Store user data examples login info, participating chat rooms, contact list, statistic's, profile info and I am sure this list would grow quite large.
  • We could store most of the above data locally, but I think it could be limiting since there is no point storing data like a user profile picture locally if its going to be deleted when they logout. I know if I used a program like that I would not personalize anything if its going to be deleted once I logout.
  • store server configuration's.
  • store data about chatroom's participants and configuration settings.

A possible plan

I think we need to be slightly different then the existing chat application's out their, so I don't want to complete abandon the off the record chat idea. Thinking of possible applications for the app, I find a off the record chat a bit limiting. Here is a possible plan for the app that would still implement the off the record functionality but more as an option. This is just a idea not something set in stone.

There is a default channel that you are put inside when you start the app.
You would be in a non logged in state, you are anonymous and the chat history of the default channel is not stored. The usernames could be generated.

You would also have the option to login, which would make's you known and no longer anonymous in the default channel. When logged in you can continue talking in the default channel, or you can move to a private channels or create a private channel. The private channels could be configured as off the record or on the record. They could also be configured to be anonymous.

Let me know your thoughts.

@coreyjjames coreyjjames closed this Dec 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment