Exercise - Chat Application
Build a chat application that fulfils these requirements:
- Users can interact with the chat application with a Web Frontend (e.g. built using Blazor)
- When navigation to the web application, users need to enter a nickname, that they want to use when they are chatting.
- The application needs to ensure, that nicknames are unique. Two users can’t use the same nickname.
- When a user has chosen a nickname a list of chatrooms will be displayed.
- There should always be at least one chatroom with the name “General”.
- User’s also need to have a way of creating new chatrooms and deleting existing chatrooms.
- An existing chatroom can only be deleted if the chatroom is empty.
- When entering a chatroom, users will start receiving messages sent in that chatroom.
- Messages that have been sent before the user entered a chatroom, needn’t be displayed.
- Users should also see the nicknames of all other users that are currently in the chatroom.
- Users should be able to send messages in the chatroom. When a message is sent, every user in the chatroom should receive the message.
- Messages displayed in the chat window should include the sender of the message.
- You must not use polling for refreshing the chat messages. Choose one of the following techniques for sending updates to the clients:
- GraphQl Subscriptions
- gRPC Streams
- SignalR