Skip to content

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