This week has been about figuring out scope and design – so truly, defining what I’ve gotten myself into with this project. đ It’s difficult to project how long something is going to take when you’ve never worked with it before, so I’ve given myself a list of milestones I expect to actually get through by the end of the quarter with some more complex stretch goals that I can get into if time permits.
Requirements
How does it work?
It will be a client and server pair – client GUI and server console application that supports multiple client connections. The server is started via the command line and will track connections with their associated handle. Within the client, a handle must be entered. The client initializes a connection with the server using their handle. If this handle is already in use, the server will reject the connection with notification and the client can reattempt connection with a different handle. When a client sends a message, it it received by the server and then broadcast back to all connected clients. At any time, a client can choose to disconnect and the server will be notified. If the client cannot connect to the server, an error is reported in the GUI.
Project Milestones
- Environment setup
- Project planningÂ
- Mock up and build GUI
- Console application server and client for testing
- Connect client GUI to server
- Server accepts multiple connections
- Server broadcasts to all connected by handle/socket
- Polish up GUI, more extensive final testing
Stretch Goals
- User groups – specified upon connection and broadcast only to the group
- Encryption