Reference no: EM132653462
301163 Modern Software Architectures - Western Sydney University
Applied Project
Introduction: The goal of this activity is improving the learning of concepts related to Software Architectures with a hands on take on the problem. You will be putting together the skills you developed during the labs in a single solution you (with your group colleagues) will develop in the form of a web service. Besides developing a complete solution, you also need to document the architecture of the developed system.
Report submission: Submit a complete report (MS Word or PDF) that contains the description and architecture details of your service and also a user manual. The whole document should have around 12pages.
Video demonstration:By the submission deadline, your group must submit a zip file containing your project's source code and a short videodemonstrating the service. Submission of the file is also via vUWS. There will be 2 different submission links, one for the reports and one for the codes and videos.
Allowed resources: You are allowed to use any resource available. You are not allowed to reproduce content (text or code) found on the Internet or elsewhere as part of your solution. It is ok (and you are encouraged to) using third-party software libraries (example, Jackson) that offer useful features for your system. It is not ok copying the code of the library and use in your system as if you had written the code yourself.
Group size: Each team will be composed of 3 or 4 members. Students are free to form their own groups.You cannot work in this project individually.
Task description
Develop a RESTful web servicethat implements its own API toprovide a service by making at least two calls for third-party APIs and aggregating the returned data in a meaningful way. For example, you could combine data from two sources of prices of products to provide a price comparison, or you could obtain some information that is plotted on Google Maps.
At the end of this document there is a list of suggestions of projects. Nevertheless, you are encouraged to provide an innovative use for data to solve a problem you identified. Regardless the problem you choose to solve; your solution needs to meet all the mandatory requirements below.
You are not required to use Java and Jersey to implement the project. You can use the language and REST framework of your choice (for example, Ruby on Rails or .NET).
Mandatory requirements
• Your system needs to make two accesses to remote systems, and consume data these services provide, via their REST APIs. This data needs to be somehow aggregated to provide the functionality of your service.
• Your system needs to provide a REST API that enables consumers to access the service your system offers. This API must be at least Richardson's maturity level 1, must accept user parameters, and must return JSON or XML data.
• Your system must include two of the optional features below.
Optional requirements
• Deploy your system on a Docker container.
• Deploy your system on AWS.
• Develop a reactive web frontend that is a consumer of your API.
• Develop a mobile app that is a consumer of your API.
• Other features proposed by your team (and agreed by the lecturer) that has a similar level of challenge than the other optional requirements.
Project report and user manual
Your project report need to explain in detail the problem being solved, the system architecture, and technical details about how your system solves the problem (and also technologies utilized in the project). It should contain diagrams that explain the components of the system and how your system interacts with external parties (consumers and external services). Your report also need to document your API and provide examples on how your functionality can be accessed via such API. Suggested structure for the report is:
• Introduction
• The problem being solved
• Requirements
• System architecture
• System technical details
• API
• User manual
o How to deploy and execute your system
o How to deploy and execute the client code (if developed)
• Suggestion of future enhancements
• Conclusions
Attachment:- Modern Software Architectures.rar