Question: Networking for Software DevelopersThis is the final project of COMP 2 1 6 . It is a group effort that will replace your second test
Networking for Software DevelopersThis is the final project of COMP It is a group effort that will replace your second test and will contribute towards your final grade. This builds on the previous weeks labs, which may require some tweaking to assemble into a complete IoT solution. We will discuss on a mutually convenient submission date.Before you start.This is a large undertaking considering the time constraints and the number of components required. One person would not do able to and should not be doing all the work because of the volume and the scope. Because the time is not enough sufficient for one person to adequately complete all the prescribe tasks. I suggest short not more than minutes meeting frequent at least time per week where designs are finalized, tasks are farmed out and reported back on You can also examine the milestones and see if more effort is need to bring any lagging task up to the expected completeness. Intellectual PropertySoftware ownership is intellectual property. It is critical to understand that you may not take credit for something that you do not owncreate If you use code or algorithm or ideas from somewhere, it is ethical and the right thing to acknowledge the owner of the intellectual property. Technical ConstraintsYou will only use the libraries that were covered in classes. You will use Python version or later. The only external frameworkslibraries allowable are requests, flask and mosquito. You may use the libraries in a standard python distribution with restraints.Overview.We will implement an endtoend IoT solution that will satisfy your client needs this is based on your previous labs We will use the MQTT protocol for this implementation. There will be publisher clients that sends data to a broker as well as subscriber clients that receives data from the broker. The broker sends data to the appropriate subscriber. You will design and build both types of clients according to specifications. The diagram shows an overly simplified architecture of the intended system.Each component is described more fully below along with the weight contribution towards the final grade. Each component must be implemented be well designed class.Summary rubricThe weight includes design, implementation and demonstration of that particular component.No written documentation is required, only your python code files. Your source files should have only one class per file.ItemMarksBrokerPublisherSubscriberQuality of codeVideo demonstrationTotalDetailed descriptionBrokerYou will install the Eclipse mosquito broker and ensure that it is working as expected.PublisherThe publisher will generate data to send to the broker at regular intervals. The data value must be random with a pattern I know that this is a contradiction Think of the value of a particular stock on the stock exchange or the outdoor temperature around your home. This must be implemented as gui and must include an interface to change the various parameters of this publisher.You will configure and run multiple publisher clients to simulate multiple devices.Publisher Value generationThis must be implemented in a class in a separate file. Just import the filename without the py extension in the file where you want to use the logic The design should be such that it is easy to use and flexible enough to be able to give the data value in the required pattern.Publisher Packaging the above valuesThe above value must be tagged with at least a time stamp packet id and packaged as a json object before transmission. You decide what other features you need to encapsulate in your package.Publisher Sending data to brokerYou will send the above packaged data to the broker under an agreed topic. You must miss transmission with a frequency of about in very transmissions. This must not be deterministic!Publisher ExtrasThese extras are for bonus points and will only be considered if all the normal specifications are satisfied adequately.To simulate a realworld scenario, occasionally skip blocks of transmissions or sets of transmission This condition must not throw the subscriber into confusion.Transmit wild data something that is completely off the chart. Again your subscriber should be able to handle this.Anything that will add value to your project. You must make me aware of these.SubscriberThe subscriber accept data from the broker and process it It will decode the data and decide how to process itThis is best implemented as a GUI application.You will configure and run multiple subscriber clients to simulate multiple devices.Subscriber Receiving data from the brokerYou will listen to messages from the broker under an agreed topic.You will decode the message and decide how to handle the dataSubscriber Handling the dataabsence of dataThis section is important: You have to decide what is out of range data. You also have to be able to detect missing transmission. Handle sensible data. Display data both in text and visual formats.Detecting and handling out of range erroneous data. Detecting and handling missing data. Quality of CodeThese points are to lose. You automatically start with full points and as the instructor notices code aberration these points will evaporate. Code aberration will include design flaws and implementation blunders.Video of ProjectYou make a min video that will demonstrate each of the item in the rubric table. If an item is not clearly demonstrated, there might be a possibility that you might not get a point for that item.You need not demonstrate quality of code.Due: See course shellSubmissionYou will bundle all your files except the video into a single zip file not wrar or anything else The name of the file will be groupyourgroupnumberzip eg groupzipYour publisher code files must be called groupyourgroupnumberpublisher.py eg grouppublisher.pyYour subscriber code files must be called groupyourgroupnumbersubscriber.py eg groupsubscriber.pyAll your other code files must be prefixed by you group number eg groupdatagenerator.pyMust be uploaded to course dropboxThis is due at the end of week If you are going to the bonus marks, then the due date at the start of week The video file must be uploaded directly in the drop box following the same naming conventions.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
