Quarter 2, 2023
COS60016: Programming for Development Assignment 1: Build a web-based API integration framework
Word/time limit: 1000 (+/- 10%)
Weighting: 40%
Due date: 5pm AEST Monday 29 May 2023 (Week 5)
After you have read this information, head over to the Assignment 1 Q&A
(https://swinburneonline.instructure.com/courses/4650/discussion_topics/691856)
discussion board to ask any questions and see what your peers are saying about this assignment.
Assignment overview
In this assignment, you will use at least one API, plus HTTP, JSON, HTML, Flask, and Python to create a web-based solution for a defined scenario. You will submit a
1000-word report to showcase your work.
This assignment supports unit learning outcomes 1 and 2.
Assignment details
For this assignment, you’ll build a web-based framework to retrieve data from an API and write a 1000-word report. Your report should reflect on the lessons you have
learned.
Python is the most popular choice for working with APIs. In this assignment, you will use an API, HTTP, JSON, Flask and Python to address a business scenario.
Step 1: Read the scenario
Scenario
A travel blogger has been commissioned by a tourist website to explore
England and post regular updates on their trip. In preparation for this blog series, the owners of the website have asked you to develop an integrated
web-based solution which will return weather data for each specific location on the travel blogger’s itinerary.
Itinerary:
Lake District National Park (54.4609° N, 3.0886° W) Corfe Castle (50.6395° N, 2.0566° W)
The Cotswolds (51.8330° N, 1.8433° W)
Cambridge (52.2053° N, 0.1218° E)
Bristol (51.4545° N, 2.5879° W)
Oxford (51.7520° N, 1.2577° W)
Norwich (52.6309° N, 1.2974° E)
Stonehenge (51.1789° N, 1.8262° W)
Watergate Bay (50.4429° N, 5.0553° W)
Birmingham (52.4862° N, 1.8904° W)
Step 2: Selecting and using an API
-
You will create a draft plan for a web-based solution which integrates with an API, describing how this will address the requirements detailed in the scenario. This
should include a justification for using an API in this context.
-
You will then document and build your solution in Python, demonstrating your ability to use the code you have learned in weeks 1-4 in a practical application.
-
You will also access Python libraries to use HTTP, JSON, HTML and Flask to create a functional app which can send queries to and receive data from an external API.
Note
At a minimum, your solution should demonstrate successful integration with an API and provide a text-based response.
You will demonstrate proficiency by using what you have learned to create an input and output that go a bit beyond basic text.
To excel, you will need to demonstrate additional elements, for example, a map within your framework that illustrates the destination points of the
scenario.
Step 3: Complete your report
Your 1000-word PDF report should include:
-
an analysis of the scenario, an outline plan of your solution and a justification for your choice
-
documentation of your solution, including API methods, description of elements, and examples of usage
-
code snippets demonstrating the use of HTTP, JSON, HTML and Flask and the integration with an API
-
screenshots of the working solution
-
a conclusion and short reflection on your learning.
Tables, images and code snippets do not count toward the word limit.
Suggested approach
The assessment is broken down into five components to support you in completion and submission.
Part |
Task |
1 |
Analysis and plan:
Analysis of the scenario, with a proposed solution A brief outline plan
A justification for this solution |
2 |
Documentation of your solution:
API methods, such as example requests and responses and descriptions of elements in each
A brief explanation of how to use your solution |
3 |
Snippets of commented code: |
Demonstrate the use of HTTP, JSON, HTML and Flask, as well as integration with an API
Include code that addresses any identified limitations of the API |
|
4 |
Screenshots of your working solution:
Show a user query and a response within a web framework |
5 |
Conclusion and reflection of learning:
Write a summary of the process you followed to complete the assessment.
Include information about how you addressed errors in your code and how you researched solutions to challenges you faced.
Discuss practical business/commercial applications of your solution and how you could enhance it in the future.
You could also briefly mention how you might integrate your learning into your current work or career aspirations. |
Tips for success:
A Python programmer needs to visualise the flow of their code. Therefore, your report needs to indicate how to use scaffolding to build your solution, the URL patterns, any blockers experienced, new avenues to explore (recommendations), and a summary of findings (interpretation/conclusion).
To succeed in this assignment, you should follow these steps:
Read the guidelines carefully before you start.
Ensure you’ve completed all the relevant sections. Ensure that your writing is concise and clear.
Provide clear explanations for each step. (For example, “I experienced a problem with the API call, but implemented the following workaround…”) Proofread your document and ensure that it adheres to basic grammatical principles.
Submission details overview
This assignment will be submitted through Canvas. When you are ready to submit your assignment, select the ‘Start Assignment’ button at the top of this page. You will be taken to the ‘File Upload’ tab where you can choose your file or submit your URL.
Please note: When you submit your assignment through Canvas, you are also
submitting the assignment through Turnitin, which is a text-matching service that compares your work with an international database of information sources. You will need to agree to using it.
Once you have submitted your assignment, select ‘Submission Details’ on the right of your screen to view your originality report if you haven’t already done so.
Please allow a 24-hour turnaround for an originality report to be generated. See the ‘Turnitin originality report’ area of the Academic practice (https://studenthub.swinburneonline.edu.au/academic-practice) page in the Study Resources section of the Student Hub for several guides to assist with the
submission process.
Resubmissions after the due date without prior approval from your Unit Coordinator may not be marked.
Assignment criteria
You will be assessed against the following
-
An analysis of the scenario, an outline plan of your solution and a justification for your choice.
-
Documentation of your solution, including API methods, description of elements and examples of usage.
-
Code snippets demonstrating the use of HTTP, JSON, HTML and Flask, as well as integration with an API.
-
Screenshots of the working solution.
-
A conclusion and short reflection on your learning.
Your work will be assessed using the following marking guide:
Assignment 1 marking guide
Criteria |
No Pass |
Pass 50–59% |
Credit 60–69% |
Distinction 70–79% |
|
Analysis and plan Justify the appropriate use of APIs in a business context. |
No attempt to justify or contextualise decisions. |
An attempt has been made to justify decisions made, with some context provided. |
Clear justification and context for decisions made. |
Clear justification and context for decisions made. |
i j f |
(10%) |
|||||
Documentation Write and document an API call. (20%) |
No API methods or examples. |
An attempt at documentation with at least one example of an API method. However, there is little or no description of usage. |
Basic documentation with at least one example of an API method. Usage not fully described. |
Complete documentation of API methods, with clear examples provided. Usage clearly described. |
|
i |
|||||
Commented code samples Use Python to write a simple program. (30%) |
No attempt to complete the code. No attempt to address limitations. |
Code displays limited understanding of Python programming. Some attempt |
The code is mostly complete, may lack commenting or logical flow but works on a |
Code is complete, with clear commenting. Evidence of efficient coding |
f r |
Criteria |
No Pass |
to address Pass limitations. 50–59% |
basic level. Credit Attempts 60–69% made to address |
structure. Key Distinction limitations are 70–79% addressed. |
i |
limitations. |
|||||
Working solution Use Python libraries to access data through APIs. (30%) |
No attempt has been made to build the framework. |
The API call does not work, but an attempt has been made to build the framework. |
The API call is almost entirely complete and mostly functional. May have bugs. The framework meets basic requirements. |
The API call is complete and fully functional, without bugs. The framework fully meets the requirements. |
f f f r f |
Reflection of learning (10%) |
No evaluation of approach. |
Little or no justification or critical evaluation of approach to the assignment. Thoughts not clearly organised. |
Superficial justification and evaluation of approach. Thoughts unclear in some parts and concepts are not communicated logically. |
Clear justification and evaluation of choices made. Writing is organised, with concepts communicated in a mostly coherent and logical manner. |
t j l |
Request assignment extension
We understand that at times your studies may be adversely affected by illness,
misadventure or some other extraordinary cause or circumstance reasonably beyond your control. If you feel this is the case and you need an extension to support you in completing your assignment, please select ‘I would like to request an extension’
below to access the request process.
Please note: For team assignments, each team member must submit a request.
I would like to view an existing request (../external_tools/2948)
extension (../external_tools/2948)
Assessment declaration
All students must agree to the following declaration when submitting assignment items.
Declaration and Statement of Authorship
-
I have not impersonated, or allowed myself to be impersonated by any person for the purposes of this assignment.
-
This assignment is my/our original work and no part of it has been copied from any other source except where due acknowledgement is made.
-
No part of this assignment has been written for me by any other person except where such collaboration has been authorised by the lecturer/teacher concerned.
-
I have not previously submitted this work for this or any other course/unit.
-
I give permission for my assignment response to be reproduced, communicated, compared and archived for plagiarism detection, benchmarking or educational
purposes.
I understand that:
Plagiarism is the presentation of another person’s work as though it is your own. It is a form of cheating and is a very serious academic offence that may lead to exclusion from the university.
Plagiarised material may be drawn from published and unpublished written
documents, interpretations, computer software, designs, music, sounds, images, photographs, and ideas or ideological frameworks gained through working with another person or in a group.
Plagiarised material can be drawn from, and presented in, written, graphic and visual form, including electronic data and oral presentations. Plagiarism occurs when the
origin of the material used is not appropriately cited.
I agree and acknowledge that:
-
I have read and understood the Declaration and Statement of Authorship above.
-
I accept that use of my Swinburne account to electronically submit this assignment constitutes my agreement to the Declaration and Statement of Authorship.
-
If I do not agree to the Declaration and Statement of Authorship in this context, the assessment outcome may not be valid for assessment purposes and may not be
included in my aggregate score for this unit.
-
I am aware that it is not acceptable to resubmit the same piece of work (in part or as whole) for multiple assignments without permission from the Unit Coordinator.
Penalties for plagiarism (https://www.swinburne.edu.au/current-students/manage- course/exams-results-assessment/plagiarism-academic-integrity /plagiarism-misconduct/) range from a formal caution to expulsion from the university, and are detailed in the Student Academic Misconduct Regulations 2012. (https://www.swinburne.edu.au/about/leadership-governance/policies-regulations/statutes- regulations/student-academic-misconduct/)
Reviews
There are no reviews yet.