You have been asked to design and develop an email application that will allow users to set up an account with the system, log in and retrieve their emails as well as sending emails to other users of the system. Users should also be able to log out of the system, which should close down the client program. The email application must communicate via TCP and should be able to handle an infinite number of concurrent client connections.
This concurrent functionality must be provided through the use of threading. Your email and user data must be maintained in data structures within your program for the duration of its execution, not externally (i.e. no database/file storage while it is running. You may store this data in a database or file prior to the application’s termination and read it in when the application starts up, but you may not use external storage other than this)
For this assignment you will need to provide:
You must design & specify a suitable protocol for your email service. This must include all standard protocol descriptor components and should detail all acceptable requests along with their appropriate responses. Finally, you must include sample exchanges for all requests.
You must design & develop a suitable interface for your client program. This should be a DOS command-line interface
You will need to consider:
You are required to thoroughly test your project. You should include a test plan documenting test cases covered, along with the unit tests corresponding to these test cases.