Reference no: EM132514358
ICT705 Data and System Integration - University of Southern Queensland
Case Study: Overseas Shipping Logistics Ltd
Assignment tasks
This assignment consists of two deliverables:
1. Demonstration code - demonstrating the principles of data merging, RESTful Web Services and Mashups
2. Integration report - explaining the principles of data merging, RESTful Web Services and Mashups and applying them to the case study organisation
Demo code
There are three major components in the demo system:
• Data integration demo. In this demo, there are two data source files:
• "owid-covid-data.csv" contains COVID-19 statistical data from over 200 countries for dates ranging from the 31st December 2019 to 30th March 2020*. You may like to download the latest file from Our World in Data - Coronavirus Source Data,
• "Country_location.xml" contains country location coordinates for each country.
Instructions:
• Before importing the COVID-19 data into Python you are required to:
i. Choose 15 countries from the "owid-covid-data.csv" dataset you think would be applicable to the case study,
ii. Retain the most current day's statistics for each of these 15 countries,
iii. Add 2 or 3 extra columns to your dataset. These columns will contain other 2 or 3 other interesting statistics of your choosing for each of your
selected countries (you will need to do some quick research on the countries you choose to include)
iv. Populate these extra columns with the statistics you research for each country
v. Save this new dataset into a new .csv file which you can import into Python
• Create a Python scrip file with the name "data_merger.py"
• This Python script will use the Python petl framework to:
i. Import your new CSV and "Country_location.xml" files into Python. HINT: hard-to-find code to import this XML file using petl - etl.fromxml('Country_location.xml', './/tr', ('th', 'td'))
ii. Merge the country geolocation data from the XML file with the COVID- 19 data, and
iii. Export the merged data as a .csv file named "covid_countries.csv"
• RESTful Web service server demo. In this demo, you are required to build a RESTful Web service
• This Web Service requires the Python bottle and petl frameworks
• This Web Service server accepts a ‘getcountry' query from the client browser similar to "/getcountry?country=xxxx",
• The server Web Service will return a JSON object to the client with all the attributes required by the client browser.
HINT: the data will be returned as a Json / Dictionary object - etl.cut(datatable, "data", "data", "etc", "etc", "etc").dicts()[0]
HINT: in order for your code to return the JSON object to an AJAX request insert the following code before returning the JSON object - response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Content-type'] = 'application/json'
• The data for this JSON object will be retrieved from the "covid_countries.csv" file created in component 1.
• A Python scrip file with the name "country_locator.py" will contain this RESTful Web Service server demo.
• Mashup demo. In this demo, you are required to build a mashup application
• Your HTML page accepts a country name as the input. If the country can be found in your dataset, then its location is displayed in Google Map. (See sample Mashup figure 1),
• A HTML file "country_map.html" should be implemented.
• In this file, a text field is provided at the page top to accept user's input of country name.
• In addition, a Submit button will trigger an AJAX "getcountry" Web Service GET query to retrieve the country's corresponding latitude, longitude and other country specific data, and highlight and centre the location in Google map.
• In addition to highlighting the country's positon on the map, a user is able to click on the marker bubble and see an information window containing country specific COVID-19 information and 2 to 3 other country statistics you have included in your dataset.
Integration Report
In addition to the above demo code you are required to include a Report explaining the key concepts around the demo design and implementation.
Your report should follow the following template:
Executive Summary Table of Contents
Table of Figures (if needed) Table of Tables (if needed)
1.0 Introduction
2.0 Service Oriented Architecture (SOA)
Key System Concepts
Data Cleaning & Merging
RESTful Web Services
Mashup Design
4.0 Demo Running Instructions
5.0 Conclusion & Recommendations Reference List
Appendices (if needed)
Please address the following in your report:
• Outline the theory and technologies under each of the headings.
• Explain how these technologies can be applied by OSL. Outline the difficulties, advantages and disadvantages to OSL. Give examples in addition to the COVID-19 application,
• Explain how to run your code and the principles behind each step - you may use screenshots of Mashups, etc. if you wish,
• Reflect on your journey as you developed the demonstration - the problems you faced, how you researched and found answers.
Attachment:- Data and System Integration.rar