You are on page 1of 8

School of Computing

KH6003CEM Web API Development

Assignment Brief 2022/23

Module Title Ind/Group Cohort Module Code


Web API Development (Sept/Jan/May) KH6003CEM
Coursework Title CW2 Hand out date: Feb 12th 2023

Lecturer Hatem Hassan Due date:


May 23rd 2023
Estimated Time (hrs): 45 Coursework type: % of Module Mark
programming based 75%
portfolio
THIS IS A DRAFT
VERSION
Submission arrangement: Upload an electronic copy on Moodle

Module Learning Outcomes Assessed:


1. Demonstrate systematic knowledge of the current state of the art in web technologies being
deployed by mainstream businesses to create Web APIs.
3. Scope, design and implement a simple web API to solve a give problem.
5. Understand and implement web API security and authentication.
Notes:
1. This document is for TKH – School of Computing students for their own use in completing their assessed work
for this module and should not be passed to third parties or posted on any website. Any infringements of this
rule should be reported to Registry@TKH.edu.eg.
2. The answers to this course work should be submitted electronically through Moodle.
3. To get full credit for each question, please check the attached marking criteria and the marks distribution
below.
4. This is an individual coursework. No cooperation or sharing of answers is accepted.
Any similarity in answers that suggest copying or group work will receive zero for all parties involved.
5. Please notify the registry team and module leader for disability support.
6. Any student requiring an extension or deferral should follow the University process.
7. The University cannot take responsibility for any coursework lost or corrupted on disks, laptop, or personal
computer. Students should therefore regularly back-up any work and are advised to save it on the University
system. For coursework submitted online, students should ensure that all submitted files are uploaded correctly
and can be accessed without problems.
8. If there are technical or performance issues that prevent students submitting coursework through the online
coursework submission system on the day of a coursework deadline, an appropriate extension to the coursework
submission deadline will be agreed. This extension will normally be 24 hours or the next working day if the
deadline falls on the Thursday or over the weekend period. This will be communicated via email as a Moodle
announcement.
Course Work Details:
Submission arrangement: Online via Moodle and GitHub/GitLab
File types and method of recording:
• Code files on GitHub/GitLab with URL mentioned in the project document
• Project document PDF file upload on Moodle
• Video on TKH OneDrive with URL mentioned in the project document
• APIs running on a web server. Use a free app host such as Microsoft Azure App Service, Glitch. Postman
collection for implemented APIs to be uploaded to the project file on GitHub/Gitlab

Project Description
You are requested to implement a tool that is used to facilitate travelers to plan their trip. Traveler will use the
tool in two ways:
1. Provide the tool with specific budget, dates he/she would like to travel, then the tool should provide list
of countries/cities within the budget with the following details.
a. Cost details for all activities take place during the travel such as Airfare cost, accommodation,
meals, ….
b. Weather conditions during the selected dates.
c. Famous food recipes for this country/city
d. Currency exchange rate of the country compared to EGP
2. Select a Country/City and the tool display average cost for
a. Cost for main activities like Airfare cost and Average cost per night for all activities take place
during the travel such as, accommodation, meals, ….
b. Weather conditions during the selected dates.
c. Famous food recipes for this country/city
d. Currency exchange rate of the country compared to EGP

Task 1 (Frontend and APIs)


The first task consists of the following:
1. Build a secure RESTful APIs to achieve the mentioned functionalities. You should build 1 or more APIs
that is matching a web services architecture.
2. Use existing public and free APIs for the following
a. Famous food for the country: https://www.themealdb.com/api.php
b. Weather: https://openweathermap.org/api
c. Currency converter: https://www.currencyconverterapi.com/
3. Build a DB holding all countries/cities costs and details
4. Build a front end to be used to CRUD the data stored and provide the two user journeys mentioned in the
project description
5. Provide sample test cases using postman for all implemented APIs
Notes:
1. Use NodeJS as Backend language. React as front-end language. Any selection for DB can be used.
2. Data exchange between front end and APIs should be in JSON data format by default
3. All APIs implements should be added to a postman collection and attached to the project files
4. Swagger documentation is mandatory for the implemented APIs

Task 2 (Video)
For the second task, a demonstration video recording should include
• The tool usage and presenting the different journeys.
• Quick walkthrough the project structure and APIs created.

Notes:
1. The maximum length of the demonstration video is 5 minutes.
2. Voice over the video should be used to describe what is happening and some of reasoning throughout
the video.
3. It should be made sure that all UI elements are an appropriate size to view and they are not blur and free
from noise. Also, the student should make sure that the audio is clear.

Marks Distribution:

Assessment Criteria Mark


Required components
• URLs ( GitHub, TKH OneDrive or Moodle -if needed)
1 • Source-code (with appropriate comments, correct format and /10
commit)
• Demonstration video
API Implementation
• RESTful API implementations using NodeJs providing the needed
functionalities.
• OAUTH2 Authentication is implemented.
2 /30
• JSON format is used
• Request/Response is handled correctly with error handling
• Third party APIs are integrated with the implemented API
• Web services Architecture is implemented
Documentation
• Swagger documentation for implemented APIs

3 /15

Frontend
• Front end is built using react
4 o Having 2 different flows/journeys /15
o CRUD pages to manage data existing in DB

Database
5 • Database is implemented with countries/cities data /10

Third part APIs usage


6 • 3 mentioned APIs used /10

Testing
7 • Test cases are provided using postman collection /5

Demonstration
• 5 minutes video
• 2 journeys covered in the video
8 • Voice over is exist /5

Total /100

Each of the components above, will be assessed according to the below marking criteria
Mark Range Guidelines
• 90 – 100% • In addition to that for 70 – 79% below, an outstanding answer that could
• 80 – 89% hardly be bettered. High degree of understanding, critical/analytic skills and
• 70 – 79% original research, where specified. Outstanding in all respects.
• In addition to that for 70 – 79% below, the answer will demonstrate an
excellent level of understanding, presence of clear description,
critical/analytical skills or research, as appropriate.
• Answer entirely relevant to the assignment set. Answer will demonstrate
clear understanding of theories, concepts, issues and methodology, as
appropriate. There will be evidence of wide-ranging reading and/or research,
as appropriate, beyond the minimum recommended. Answers will be
written/presented in a clear, well-structured way with clarity of expression.
At level 3, evidence of independent, critical thought would normally be
expected.

• 65 – 69% • Answer demonstrating a very good understanding of the requirements of


• 60 – 64% the assignment. Answer will demonstrate very good understanding of
theories, concepts, issues and methodology, as appropriate. Answer will be
mostly accurate/appropriate, with few errors. Little, if any, irrelevant
material may be present. Reading beyond the recommended minimum will
be present where appropriate. Well organized and clearly
written/presented.
• A good understanding, with few errors. Some irrelevant material may be
present. Well organized and clearly written/presented. Some
reading/research beyond recommended in evidence.

• 55 – 59% • Answer demonstrating a good understanding of relevant theories, concepts,


• 50 – 54% issues and methodology. Some reading/research beyond that recommended
may be present. Some errors may be present and inclusion of irrelevant
material. May not be particularly well-structured, and/or clearly presented.
• Answer demonstrating a reasonable understanding of theories, concepts,
issues and methodology. Answer likely to show some errors of
understanding. May be significant amount of irrelevant material. May not be
well-structured and expression/presentation may be unclear at times.

• 45 - 49% • An understanding demonstrated but may be incomplete and with some


• 40 – 44% errors. Limited use of material with limited reading/research on the topic.
• <40 Likely to be poorly structured and not well-expressed/presented. Irrelevant
material likely to be present.
• Basic understanding demonstrated, with some correct description. Answer
likely to be incomplete with substantial errors or misunderstandings. Little
use of material and limited reading/research on the topic in evidence. May
be poorly structured and poorly expressed/presented. Some material may
be irrelevant to the assignment requirements.
• Inadequate answer with little relevant material and poor understanding of
theories, concepts, issues and methodology, as appropriate. Fundamental
errors and misunderstandings will be present. Material may be largely
irrelevant. Poorly structured and poorly expressed/presented.

Notes:

1. This is an individual coursework. No cooperation or sharing of code is


accepted. Any similarity in submitted projects and reports that suggest copying or
group work will receive zero for all parties involved.
2. Please notify your registry team and module leader for disability support.
3. Any student requiring an extension or deferral should follow the university
process.
4. The University cannot take responsibility for any coursework lost or corrupted
on disks, laptops or personal computer. Students should therefore regularly back-up
any work and are advised to save it on the University system.
5. If there are technical or performance issues that prevent students submitting
coursework through the online coursework submission system on the day of a
coursework deadline, an appropriate extension to the coursework submission
deadline will be agreed. This extension will normally be 24 hours or the next working
day if the deadline falls on a Thursday or over the weekend period. This will be
communicated via email and as a Moodle announcement.

Extensions and Mitigating Circumstances

We want you to do your best in each assessment. However, we know that sometimes
events happen that are either beyond your control or not easy to predict which mean that
you will not be able to submit your coursework by the deadline. If this happens, you can
apply for an extension to your assessment deadline. If you need longer than the maximum
two-week extension, you can apply for a deferral, which takes you to the next assessment
period. You must apply for an extension or a deferral before the assignment deadline given
as part of the assessment instructions. Late requests are rejected.

Information about the process and what is/is not considered can be found on our policy
website page (https://tkh.edu.eg/policies/) and the ‘Extenuating circumstances policy’.
Please note that your module teachers are unable to give extensions.

Late or non-submission

If your assignment is submitted online please do not leave it until the last minute to submit.
Aim to submit several hours prior the deadline, in case you have any technical problems
submitting. If you fail to submit work for the module or submit an assessed piece of work
late without an agreed extension, you will receive a mark of 0% for that piece of work, even
if it is only a few minutes late. You will however be eligible for a re-sit attempt at the next
available assessment opportunity where, if you pass, your mark will be capped at 40%.

If you fail the resit assignment, or do not hand in any submission, you are allowed one
further resit attempt at the assignment. After a second failed/non-submitted resit attempt
you will have failed the module. This may have an impact on your ability to progress on your
course and/or on your final marks for your degree.

Academic Misconduct

Academic misconduct covers any action by a student to gain unfair advantage (e.g. extra
marks) for her/himself, or for another student, in their assessed work. It not only damages
your personal reputation, but also the reputation of the entire university, and it will not be
tolerated at The Knowledge Hub Universities. There are severe penalties for students who
are found guilty of academic misconduct ranging from obtaining a mark of 0% for the piece
of work concerned, through to exclusion from the University.

Many modules require you to demonstrate knowledge and understanding of the work of
others (artists, makers, practitioners, academics, designers, performers, etc.). It is vital that
you make it absolutely clear when you are using work from other sources, and that you
reference it clearly and correctly. If you are unsure how to reference, please speak to a tutor
for clarification.

For full details of what constitutes academic dishonesty and how to avoid it, please see the
section in the Student Handbook, available on Moodle and the TKH policy web pages.

You might also like