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

List of features to consider #36

Closed
tonowoe opened this issue Nov 26, 2018 · 7 comments
Closed

List of features to consider #36

tonowoe opened this issue Nov 26, 2018 · 7 comments

Comments

@tonowoe
Copy link

tonowoe commented Nov 26, 2018

List of random thoughts after using emberclear:

  • Read receipts feature would be a good feature to have. It's really familiar to users from almost every chat app nowadays. I think it could be done if you listen browser's tab activity and don't mark the messages as read if the recipient's tab is not active. Show the "✔️" mark when the message is successfully sent/received on the server-side, and "✔️✔️" when it's actually read in the client-side (tab is active). Option for users to opt-out from this (so it shows only "✔️").
  • Open graph response feature and its privacy issues. If I want to send some URL to a contact, let's say like https://google.com, I don't want that my browser makes a http request to Google. Please make it so that the open graph data is served from the emberclear servers rather than the server where I linked to. Also the receiver will make a http call to the received URL to fetch the open graph data.
  • Make the chat UI look like how almost all modern chat UI's do, where the sender's messages are floating on the right with some color, and the recipient's messages are gray floating on the left side, like WhatsApp, Signal etc. And also keep the current "IRC like" styling, so a user can choose how the chat UI looks.
  • When the chat is opened, why is there are "Chat" link in the top right navigation bar?
  • Is adding a contact somewhat confusing right now? You can add a friend from the left sidebar "+" link, which is fine I think. But then the top-right corner dropdown has its own button "Add Friend", which seems odd. I would remove the button from the dropdown menu, and just show list of links (Contacts, Settings, <hr> Logout). Then in the Contacts page, I would display a button to add a contact. I think that would be more straightforwarded/coherent.
  • I wouldn't use two different words to convey the same information. Now "Contact" and "Friend" are both used to mean the same thing. Use only "contact"?
  • A feature where user can mute contacts.
  • A feature where user can turn on an "invisible mode" (so the online status is hidden) from the settings.
  • If there will be an emoji support in the future, make it so that the user can disable emojis from the settings.
  • "Last seen" feature. Should be done in a way users can opt-out from it.
  • The red unread number count tag in the left sidebar and the "x new messages since Nov 26, 01:26 AM | Mark all as read" notifiaction are sometimes bugging. Red unread tag won't disappear unless I switch to some other chat or other page like settings. And the notify message won't disappear even I send new messages to the contact, meaning I have to manually click the "Mark all as read".
  • A feature where a sound is played when a message/notification is received.
  • A feature where the title of the page is updated by the count of unread messages. So if my tab is inactive and a contact is sending me messages, title would update everytime I receive a new message from the chat I have open in the tab. So if I have 6 unread messages in the chat, title would be "(6) emberclear", and when I open the tab, title would go back to "emberclear".
  • A feature where you can sort the contacts list how you want.
@NullVoxPopuli
Copy link
Owner

wow @tonowoe thanks for spending the time to come up with all of that.
There is some really good stuff in there.

I'll address each of your bullets later today, but wanted to address concerns first.

Open graph response feature and its privacy issues. If I want to send some URL to a contact, let's say like https://google.com, I don't want that my browser makes a http request to Google.

Here is an example of an open graph request
image
I pasted the link to this issue (thanks again, btw!), and it make a request to one of the relays.
If you'd like to audit the code for open graph, it's here: https://github.com/NullVoxPopuli/mesh-relay-phoenix/blob/master/lib/mesh_relay_web/controllers/open_graph_controller.ex#L1

what is more of a concern, is the lack of rel="noopener" on the links, which is described here: #34

Is adding a contact somewhat confusing right now?

It was -- haven't heard feedback until now about the current setup -- it used to be two buttons for adding / inviting -- I combined them into one button/modal.
I agree that the "Add Friend" button in the dropdown is out of place. I'll do some pondering on this. Thanks!

@tonowoe
Copy link
Author

tonowoe commented Nov 26, 2018

About the open graph request. I think I wasn't fully clear what I meant. But this is what I meant: https://streamable.com/8f1q2

Both recipient's and sender's browser makes a request to the URL linked (to the host where the open graph image is served from). I don't like that, I would like that all data (the image and possible all other data) would be served from the relays.

@NullVoxPopuli
Copy link
Owner

Both recipient's and sender's browser makes a request to the URL linked (to the host where the open graph image is served from).

ah yes! that should def be proxied! good find!

@NullVoxPopuli
Copy link
Owner

  • Read receipts feature would be a good feature to have. ... Show the "✔️" mark when the message is successfully sent/received on the server-side, and "✔️✔️" when it's actually read ... Option for users to opt-out from this (so it shows only "✔️").

I like this idea! enhancement issue made here: #38

Open graph preview image

this is def pretty serious: tracked issue here: #39

Make the chat UI look like how almost all modern chat UI's do, where the sender's messages are floating on the right with some color, and the recipient's messages are gray floating on the left side ... also keep the current "IRC like" styling, so a user can choose how the chat UI looks.

related: #23
also, #40

  • When the chat is opened, why is there are "Chat" link in the top right navigation bar?

So you can navigate to a chat if you have the sidebar closed?
image

idk, it might be redundant

I would remove the button from the dropdown menu, and just show list of links (Contacts, Settings, <hr> Logout).

this is done :)

Then in the Contacts page, I would display a button to add a contact. I think that would be more straightforwarded/coherent.

#41

I wouldn't use two different words to convey the same information. Now "Contact" and "Friend" are both used to mean the same thing. Use only "contact"?

#42

A feature where user can mute contacts.

#43

A feature where user can turn on an "invisible mode" (so the online status is hidden) from the settings.

#44

If there will be an emoji support in the future, make it so that the user can disable emojis from the settings.

#29

"Last seen" feature. Should be done in a way users can opt-out from it.

can you explain more on this one?

The red unread number count tag in the left sidebar and the "x new messages since Nov 26, 01:26 AM | Mark all as read" notifiaction are sometimes bugging. Red unread tag won't disappear unless I switch to some other chat or other page like settings. And the notify message won't disappear even I send new messages to the contact, meaning I have to manually click the "Mark all as read".

#47

A feature where a sound is played when a message/notification is received.

#45

A feature where the title of the page is updated by the count of unread messages. So if my tab is inactive and a contact is sending me messages, title would update everytime I receive a new message from the chat I have open in the tab. So if I have 6 unread messages in the chat, title would be "(6) emberclear", and when I open the tab, title would go back to "emberclear".

#46

A feature where you can sort the contacts list how you want.

I don't think I want to do this one. There is ctrl+k searching :)

Thanks again for all of these ideas!

@tonowoe
Copy link
Author

tonowoe commented Nov 27, 2018

When the chat is opened, why is there are "Chat" link in the top right navigation bar?

So you can navigate to a chat if you have the sidebar closed?
image
idk, it might be redundant

Ah I see, it's fine imo, idk.

"Last seen" feature. Should be done in a way users can opt-out from it.

can you explain more on this one?

Last seen refers to the last time the contact used emberchat. Basically the server would store a last seen timestamp when you've last had your emberchat tab active. If I close/leave the emberchat tab at 27th November 04:20 AM, my contacts would see my last seen status, which would be that 27th November 04:20 AM.

A feature where you can sort the contacts list how you want.

I don't think I want to do this one. There is ctrl+k searching :)

Hmm, how about pinning chats? I've noticed it's really useful feature in WhatsApp.

Thanks again for all of these ideas!

No problem, this is really important and cool project!

@NullVoxPopuli
Copy link
Owner

Basically the server would store a last seen timestamp when you've last had your emberchat tab active.

the servers can't store anything. One of the constraints on this project is that we don't trust the servers, because they are maintained by heroku, AWS, google, etc -- so relying on stateful features seems risky to me.

Hmm, how about pinning chats?

This could be a thing, for sure. #48

No problem, this is really important and cool project!

thanks! :D

@tonowoe
Copy link
Author

tonowoe commented Nov 27, 2018

the servers can't store anything. One of the constraints on this project is that we don't trust the servers, because they are maintained by heroku, AWS, google, etc -- so relying on stateful features seems risky to me.

Agreed, makes sense.

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

No branches or pull requests

2 participants