A chat app where you chat with a local stranger
- presence
- Message sent logic
- Message received logic
-
user is typing
logic with text just above footer - when user 1 leaves chat, alert user 2 with
user has left
red text just above footer (see: https://medium.com/@a.carreras.c/using-action-cable-for-private-messaging-presence-indicators-on-react-rails-app-526b3e34c14d) show time in the text bubble for sent/received- add recipient avatar to header with empty or green dot to show presence
- avatar
- random avatar for a user from https://getavataaars.com/
- optimize avatar to download and precache svg file on rails server, save that to db.
- brand
- text/colors match brand in chat
- loading
- sending messages disabled until user joins
- loading lottie file is fun (uses https://www.humaaans.com/)
- loading has random chats from db show up
- error
- handle user create error
- handle user update error
- handle chat create error
- handle message create error
- handle getJWT error in sagas (make this its own saga)
- generic error screen with button to reload.
- redux
- api call for chats and messages thru redux/sagas
- stathat
- client stats for redux events
- server stats either like this https://blog.appoptics.com/monitoring-rails-get-hidden-metrics-rails-app/ or this https://guides.rubyonrails.org/active_support_instrumentation.html
- nav
- custom nav to match branding
- hamburger menu
- menu has exit button to take to home screen
- menu has report button to send message, message received on server, stathat
- longer term
- if user waits more than n seconds, alert me, I join chat
- store device ID when creating users on backend
- Optional password added for user account in edit profile.
- withUser updates location on each page it loads.
- see old chats and keep on chatting, Home renders HomeComponent for first time, returning renders similar to iMessage with button to start new
- if you wait n seconds to chat, give option to chat with trivia bot
- local
- get location on client, send to server, get nearest chat to location on server. Alternately, get location via IP on server.
- bugs
- typing/presence notifications don't show until after first message. should show before it.
- server stat queue shouldnt be interval / should be when it hits an amount
- delete JoinChatJob of chat thats deleted
- keyboard hides input on Home
- location isn't updating
- if user1 on Messages, and user2 sends message to chat, when user1 enters chat, user1 wont see that new message
- testing
- dist
- splash screen
- icon
- build with "production" secrets
- apple feedback
- EULA acceptance on first app open on device
- users create accounts anc can sign back into accounts. No password needed from device.
- edit profile functionality to update name, get new random avatar.
- users can deny a chat request.