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

UX & Chat Improvements for Gapita #35

Open
curiousgeek123 opened this issue Mar 7, 2020 · 5 comments
Open

UX & Chat Improvements for Gapita #35

curiousgeek123 opened this issue Mar 7, 2020 · 5 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@curiousgeek123
Copy link

curiousgeek123 commented Mar 7, 2020

Hi Ehsan,

Great work in making gapita. i really like using it and its so simple and easy to use. I have few suggestions for you which can make it superb.

  1. [IMPORTANT & URGENT BUG] Add some sort of auto reconnection logic for make chat connected at all times due to poor network or chat disconnection.. same bug happens when i use it on 4g, 3g or poor internet cellular mobile data.. it causes the chat to left many times eventhough i didnot leave the chat myself but it tells me stranger left, but my friend is also online.. it causes random disconnections for no reason in middle of chat.. e.g in case if I am chatting from mobile and if my mobile screen goes to standby due to in activity, then once i come back online. it tells the other connected person, stranger left. even though i was online but my phone went to standby. But it disconnected chat of both people. In case if many users r online and chatting, the app should handle the load of high traffic and reconnection with the correct partner in case if multiple partners r getting mistakenly disconnected. some times the ping timesout, some times server gets auto restarted and my chat is lost, sometimes its network transport errors. Please add reconnection to work perfect so chat does not get lost.this is most important.

  2. autofocus on input on desktop. When i m on the chat start on desktop, everytime i type a key, auto focus me on the input box without me forcing to select the input first by mouse.

  3. Ability to send files including videos/images/documents and voice msgs with chat partner but it should all be 100% responsive.

  4. when i refresh the page during chat, it doesnt tell both partners that stranger left. it only leaves when i hit the skip button. on page refresh event call the skip logic.

  5. add some way of human moderations, such that if 1 user is spamming too many same msgs, tthe app should restrict or limit that user or ban his IP for few minutes. also allow admin and some chat users to become moderators to let the good users kick and stop the bad spammers.

  6. can we do the skip action in ajax like without any page refresh, this will improve and fast the chat connection with new person. but make sure the skip doesnt cause any memory leaks (if many times many people click on skip aggressively) or crashes the JS of the page.

  7. in case if the chat goes too long on the same page, the browser and page starts to hang due to too many msgs, add a way to have infinite scroll or lazy loading of older msgs if msgs go above a threshold, so that at any 1 time only few msgs should be visible on the HTML DOM. Rest if user scrolls on top then it should load older msgs using Ajax. Have some in memory light storage like redis to store all chat msgs and retrive older msgs. u can use redis for reconnecting old connected partners too.

8.Show Direct chat conversations lists, online users, and direct msgs. in another responsive dropdown, have a box which can show all online users lists and names and countries flags. if i hit on 1 username, it should open a direct chat with that person, and this receiving person should get a notification that a some partner sent him a new msg. he can then respond. Have some sort of chat lists of all people i have directly chatted before like whatsapp shows us our chat list. the admin and moderators should have the ability to kick the spammers or bad users from the list.

  1. add some way to store usernames instead of strangers, but keep chat simple to use. Do not add any kind of login or registration /signup on Gapita, else nobody will use. Chat is perfect like this, but we need to fix some bugs. Keep it no login and 1 click.

10. add some blacklist mechanism to block msgs and bad users, so that admin can note the spamming msgs spammers r using and if the admin adds that word in blacklist, then that word should not be passable withtin the msgs.

11. show link previews like slack does

  1. allow html5 drop zone to allow users to drag and upload files in the input box like whatsapp

  2. there is some bug sometimes even if i m online and my friend is also online on gapita, but still it keeps showing us finding chat partner. sometimes it doesnt connect the 2 people correctly.

  3. if gapita gets many online users, will the app be able to scale or it will crash and slow down? add some sort of parallel load balancing or parallel processing to distribute load on different threads in the app.

  4. where is the source code for the native ios and android apps for gapita? i want to install the app and give u more feedback.

  5. add the project on docker using best practices so its easier to run and test.

  6. sometimes if i refresh the page multiple times without connecting to any person in the waiting state, it connects me to myself. and if i send msg the other person doesnt get my msgs, but i know itsconnected to me, coz at that time no body else was online only i was online. so this is a bug it should not connect to myself.

I really like Gapita and i will try my best to make it better. If you try to work on my above suggestions and fix the bugs, i will test again and give you more feedback..it will improve Gapita.

Great work and Happy coding :)
Keep in touch

@ehsan-mohammadi
Copy link
Owner

@curiousgeek123 Hello! I'm so happy to hear from you! These are so cool suggestions. I'll try to add some of these suggestions soon. Also, if you want, you can contribute to the code and help me to make it better!

Good luck!

@curiousgeek123
Copy link
Author

@ehsan-mohammadi Great to hear that you would take my suggestions and implement them.., sadly i am not technically expert in dotNet else would have loved to contribute. If you just work on dockerizing the project, add file uploads and chat reconnection it would be good as a start.

I was trying to run the project found out it uses dotnet 2.2.0 and latest is 3.1, I do believe there r lots of libraries updating which is required. docker can help here. Overall project needs to be updated to cope up with new libs and latest trends.

Do you have any timeline for the development releases for new features?

@ehsan-mohammadi
Copy link
Owner

@curiousgeek123 Hi again and sorry for the delay.
That's true. the project needs to be updated and I'll try to do that. Unfortunately, I'm too busy and I can't add these features soon. But I'll add them to the to-do list, process them and finally add these features.
BTW, thanks for your suggestions and thanks for sharing your idea with me!

Good luck!

@ysakovs
Copy link

ysakovs commented Mar 15, 2021

Hi! Any updates for this? :)

@ehsan-mohammadi
Copy link
Owner

Hello @ysakovs!
Unfortunately, not yet!

@ehsan-mohammadi ehsan-mohammadi added enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed labels Mar 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants