Reference no: EM133482280
Chat App, Javascript, RabbitMQ, Docker
Some prior knowledge of basic programming and general purpose language JavaScript will prove advantageous in completing the task requirements.
The areas of focus may include: eliciting requirements from the instructor, understanding the chosen middleware technology being used (e.g., RabbitMQ), determining the choice of serialisation (e.g., JSON), defining contracts and protocols between systems, designing GUIs and planning for the demonstration.
Note: The instructor may choose to switch or fix some of these technology decisions. (e.g., this may occur if the company you joined already has a middleware solution).
It is also likely and anticipated that you will need to develop parts of the solution(s) independently and then test them against one another (i.e., you will need to engage in integration testing). you should recognise that integration is a key area of risk (from the first or second prototype) and allow ample time for it in subsequent assignments.
Hopefully, you will quickly realise that you will be developing many standalone command-line applications that simply talk to the middleware. This realisation will assist you to identify useful abstractions to carry forward into subsequent assignments.
Setup Instructions
You will need access to a machine capable of running Docker.
First, you will need to get your middleware up and running. The solution you will use to do this is RabbitMQ-it is free and easily launchable using Docker. Use the following command to launch an instance of RabbitMQ:
Instructions-Chatting Application
Specification
This basic command-line chat application (app) allows multiple chat participants to send and receive messages from a room.
Tasks
1, Set up your middleware.
2, Set up a new topic on the middleware named 'room' (or something equivalent).
o (Note:Keep this portion flexible and re-usable.You will need to create topics for every subsequent assignment).
3, Write a 'chat' command-line application:
o Start-up arguments:
• A username;
• The middleware endpoint (TCP port).
Behaviour:
• Upon starting up, it should subscribe to the above topic;
• Any messages that other users post should be printed to the console, along
with the username of whoever posted the message;
• Any messages entered by the user (terminated by a carriage return) should
be sent to the chat room for the other participants to see.
Final Product
Question 1: Expose the chat application over a simple GUI interface in which multiple users can log in and join a 'room' and begin chatting.
Question 2: Extend the application to allow for multiple rooms, so that a user can select the room they wish to join upon logging in.