Skip to main content

[Chat App] Requirements

Please design a chat system like following video:



Requirements

As the candidate, it is important to understand the functional (basic) requirements first.

Here are some questions we can ask the interviewer to clarify the requirements:

🧑‍🎓 Candidate🧑‍🏫 Interviewer
What are the core functionalities needed?
  • Sending a message to a user.
  • Getting user's chat room list.
  • Receiving messages from a user.
  • See one's chat history with a user.
Is the message receiving real-time?Yes, users should receive messages in real-time, as fast as possible without having to refresh the page
What kind of message formats should be supported?Let's support formats text at first. We can discuss supporting emojis, images if there's time.
What kind of chat app shall we design? 1 on 1 or group based?It should support both 1 on 1 and group chat.
Is there a message size limit?Yes, text length should be less than 100,000 characters long.
How long shall we store the chat history?Forever.
Should the messages be updated in real-time?Yes, users should see the messages in real-time.