This is a network-based multithreaded client-server chat app we were asked to develop in the context of our first Software Engineering master’s year, in the C#/.NET course.
We opted for
- .NET Core 3
In this project, you are asked to create a network based multithreaded client-server chat app.
Chatters establish a connection with the server and can do the following :
- Create a profile (login, password) and save it
- Login
- List topics
- Create topics
- Join topics (only one - bonus : many at the same time)
- Send messages to all chatters on a specific topic
- Send private messages
You are free to add new functions to your app, but don't do that unless you've already implemented the ones given above. A graphical interface can be added to your app but this has to be the last phase in your project.
You should start this project by doing a full object oriented design of your desired app. This has to be documented in your report and presented to your supervisor (use UML diagrams for that purpose; use-case, sequence, state-transition, class diagrams).