The task will involve creating an Ubuntu VM which acts as a UPnP server (similar to PLEX), setting up a basic UPnP event service and writing detailed documentation explaining how to build the VM as well as how the system works and what technologies it uses (e.g specific network protocols)
Create a GUI Ubuntu VM from scratch (using your preferred method for easy set up on our end) which will act as a UPnP server on the local network (similar to PLEX). The server does not need to be able to host any content, it simply needs to show up when using SSDP from other devices on the local network.
The device description XML (SCPD) will contain an eventing service which will simply host a string which can be changed at any time from user input in the Ubuntu GUI.
Writing this in Python would be ideal.
Write a python script which will connect to the UPnP server from another machine on the network, it will use SOAP to register an event listener on the service and print the string to the command line whenever it is changed.
Write documentation explaining what technologies are used (SCPF, SSDP, SOAP etc.), what they do and how they are used (happy for you to source this and use references). Also write documentation to explain how to create a VM with relatively layman terminology.
The project will need to be committed to a github repo (not at the end, whilst you're working on it) which will be provided upon awarding the task. I'm in Sydney, Australia so if you can communicate in GMT+10 that would be ideal.
The following resources may be helpful: