Local Chat Simulator
A local chat for exams.
Please refer to the video: 📽️ Video (It is advisable to opt for downloading due to the video resolution limitations of the Google Drive player.)
- Users can input their names and enter the chat room.
- Users can input another username when opening a brand new browser tab.
- If a username has been entered in a browser tab, the name should be kept after refreshing the tab.
- Names can be duplicated across tabs and are treated as the same user.
- The scrollbar remains at the bottom unless manually scrolled away from the bottom (consider all possible scenarios).
- When a message is sent by me (current tab's user), the scrollbar automatically scrolls to the bottom.
- Pressing Enter sends the message, and Shift + Enter sends line breaks.
- Messages containing only spaces or line breaks are not allowed to be sent.
- Showcase and pitch your design enhancements in the pull request.
- Unleash your creativity to enhance functionality or improve the user experience.
- Use TypeScript, React hooks, and function components to develop the application.
- Using third party packages installed with pnpm is welcome; you aren't required to write everything from scratch, but we may ask about why you chose a particular approach.
- Clean and readable code style is encouraged!
- Please fork the
main
branch to work on the application. - When the application is ready for review open a pull request to
main
branch using the template provided. - Use Conventional Commits style to name your branch, commit(s), and pull request.
- Team members may leave some comments on your PR as code review; feel welcome to respond and interact there, or send a private message if you prefer.
If you have any questions about the assignment or the process, you are welcome to send an email and ask. Thank you for taking the time to complete this application, and good luck!