Goals : Tracking activities on IoT devices Description: IoT devices have become common place. From smart bulb to smart washing machine, all kinds of devices are being used by end-users. It is desirable to keep track of various actions performed on the devices by various users. This may be required for purposes of security and safety. Using tabular or textual audit logs may not be useful since the analyst needs to perform expensive analytics on these files. The goal of the project is to create a graphical database using Neo4j for logging device activities. There are several devices that can be operated by several users. The graph database should be able to answer interesting queries in real-time and provide a security analyst with good answers. Skills Required: 1.Python Specifications 1. The following are the devices and the operations allowed on them. For each user operation the device responds with status: (Success/Failure) Hue Light --On --Stand_by --Increase_brightness --Reduce_brightness --Current_brightness_level (High/Medium/Low) --Change_color_blue/green/red/mixed --Reort)Current_color_status (blue/green/hue) --Report_firmware_version Smart Bulb --On --Stand_by --Increase_brightness --Reduce_brightness --Current_brightness_level (High/Medium/Low) --Report_firmware_version Camera --On --Stand_by --Change_direction --Report_current direction (East facing/West Facing/ North Facing/ South Facing) --Start_Record_stream (Writes the video data to database) --Stop_Record_stream (Stops writing the video data) --Change orientation (Up/Down) --Report_current_orientation (Up/Down) --Report_firmware_version Speaker --On --Stand_by --Play_last_song --Connect_to_radio --Connect_to_cell_phone --Connect_to_Alexa --Play_stored_playlist --Store_playlist --Report_songs_in_playlist --Increase_volume --Reduce_volume --Surround_sound --Preset_equalizer --Reset_audio_settings Motion sensor --On --Stand_by --Increase_sampling (by fixed amount) --Reduce_sampling (by fixed amount) --Write_log (start writing sensor values to data base) --Stop_log (stop writing sensor values to data base) --Report_current_sampling_rate (Samples/second) --Report_last_logged_time (end and begin times) --Report_size_of_last_logged_data (bytes) Tasks Assume that there are 50 users operating these devices and that there are no concurrency issues, i.e., each device can be operated by one user only at a given time. Task 1 (2 weeks). Model the above scenario and show the relationships in a graph database Task 2 (2 weeks). Generate random usage data on these devices for each of the users and record them in a graphical database. The random data should include . Justify the randomization model used. Record all such actions in the graphical database. Task 3. The queries to be supported are (more queries will be added later): a. The usage sequence of devices in a given time period across all users b. The sequence of actions performed by a user on a particular device of interest c. The sequence of actions performed by a user across all devices in a given time period d. The number of failures reported by devices e. The maximum across number of failures of device f. The best operational device, i.e., the device that has the most success rate.