data 编程辅导 、讲解 SQL 语言程序
Student Assignment Brief
Contents:
• Assignment Information
• Assignment Task
• Marking and Feedback
• Assessed Module Learning Outcomes
• Assignment Support and Academic Integrity
• Assessment Marking Criteria
The work you submit for this assignment must be your own independent work, or in the case of a group assignment your own groups’ work. More information is available in the ‘Assignment Task’ section of this assignment brief.
Assignment Information
Module Name: Web API Development
Module Code: 6003CEM
Assignment Title: RESTful API Software Portfolio Assignment Due: 2nd April, 2024, 18:00 GMT Assignment Credit: 15
Word Count (or equivalent): 200 Assignment Type: Coursework
Percentage Grade (Applied Core Assessment). You will be provided with an overall grade between 0% and 100%. You have one opportunity to pass the assignment at or above 40%.
Page 1 of 7
Assignment Task
You work for a company that specialises in providing API-backed web applications to small and medium sized enterprises (SMEs) and charities. The company has several clients and a large backlog of projects which need to be completed.
You have been asked to complete ONE project either from the existing client list (below) to reduce the backlog or a demo project of your own design, to add to your company's sales demo portfolio.
To complete the project you select, your manager has specified you do the following subtasks:
1. Design an industry standard OpenAPI Specification (OAS) document that describes and fully documents your API.
2. Build a secure RESTful API using Node JS libraries, to implement your OAS design.
3. Design and implement automated API endpoint tests, to verify your API works according to
specification.
4. Build a functional and secure web client single page application (SPA) for the API.
5. Showcase your API and client/integration in a demonstration video.
Your developed API should be populated with realistic user/resource/collection data to show it working in the demonstration and/or in the automated tests.
Marks Breakdown
For an explanation of how the marks are divided between the subtasks, see the grading rubric at the end of this document. Project Backlog Choose one of the following API services to develop for your project or propose your own using the form below. Some example REST resources are provided after the service names, but these are just suggestions: it is up to you to decide which resources/collections your RESTful API will provide and manage.
NB: as this is an individual portfolio project assessment, students submitting the same project will be carefully compared for similarity/possible plagiarism. Please do not share code with your classmates.
1. Social media platform API (e.g. users, posts, comments, likes)
2. E-commerce platform API (e.g. products, categories, orders, payment)
3. Calendar and scheduling API (e.g. events, reminders, attendees)
4. Weather forecast API (e.g. current weather, forecast, alerts)
5. News aggregator API (e.g. sources, articles, categories)
6. Translation API (e.g. text, speech, languages)
7. Music streaming API (e.g. songs, albums, artists, playlists)
8. Recipe search and management API (e.g. recipes, ingredients, meal plans)
9. Fitness and wellness tracking API (e.g. exercise, nutrition, progress)
10. Public transportation schedule and route API (e.g. buses, trains, stops)
11. Movie and TV show database API (e.g. titles, cast, reviews)
12. Real estate listings API (e.g. properties, agents, locations)
13. Job listing and application API (e.g. jobs, resumes, applications)
14. Book and literature database API (e.g. books, authors, reviews)
15. Currency exchange rate API (e.g. rates, conversion)
16. Public data and statistics API (e.g. GDP, population, crime)
17. Image recognition and tagging API (e.g. image, labels, description)
18. Video hosting and sharing API (e.g. videos, channels, comments)
Page 2 of 7
19. Geolocation and mapping API (e.g. maps, routes, points of interest)
20. Gaming platform API (e.g. games, scores, leaderboards) OR your own API service idea (must
be proposed to, and confirmed by, Module Leader)
The resources managed by your REST API should have appropriate CRUD endpoints and you should aim to include middleware to ensure that appropriately structured JSON data is used in the relevant requests and responses, and to ensure that the API is secure (authentication and authorisation).
Realistic example data should be populated into all your API's resources for the purposes of demonstration and testing.
Submission Instructions:
The following must be submitted for this assessment.
1. Codio
• Use the Web API Development environment set up for Coursework on https://codio.co.uk to complete all your assessed work.
• Ensure you select "Mark as Completed" on the Codio assessment when you are ready to submit your API. This sets the Codio environment to "read only". Do this before the deadline. See https://docs.codio.com/students/courses/complete-assignment.html
• Note: Codio features including its Plagiarism Checker and Code Playback are used to help ensure assessment integrity.
2. CU GitHub
• Commit and push all code and documentation to a private repository on Coventry University GitHub and then add the module leader as a collaborator (ae2851@coventry.ac.uk).
• Do NOT use github.com for your submission - it will not be marked, and you will receive a zero grade.
• If the module leader cannot access your repository, you will receive a zero grade. 3. Aula HandIn
• Upload a maximum-10-minute video demonstration of your API, API client (if implemented), API integration (if implemented), API documentation, and API endpoint tests.
o API endpoint functionality should be demonstrated on screen using Postman or a similar HTTP request-response GUI.
o API client (i.e., SPA) functionality (if present) should be demonstrated in a browser. o API documentation and code documentation should be shown in a browser.
o API tests should be demonstrated by running them on screen and showing their
output (e.g., in the Terminal or in Postman). • Upload a text document containing:
o URL links to your Codio environment and CU GitHub repository. o A 200-words written summary of your RESTful API service.
Constraints
Page 3 of 7
Backend
All the backend services you develop should provide a Node JS based RESTful API. This must communicate with your application using the JSON data format by default, but you can provide other representations in addition, if you wish. You should use the Koa Node JS framework to build the backend. However, if you wish to use other frameworks, please discuss it with your module leader.
Database
You should use MySQL or MongoDB for your database. The use of any other databases systems should be discussed with the module leader beforehand.
Frontend
For your frontend, it should be a ReactJS single page application (SPA) web client. If you wish to use a different framework, you should discuss this with the module leader beforehand.
Marking and Feedback
How will my assignment be marked?
The assignment will be assessed using the grading rubric. For each criteria the rubric is cumulative which means you need to achieve the lower grades before you can be awarded the higher ones.
How will I receive my grades and feedback?
When the marks are released, you will be provided with:
1. A breakdown of marks you received for each part of the rubric.
2. Feedback explaining this decision indicating why you missed the higher grade.
Assessed Module Learning Outcomes
The following module learning outcomes are assessed in this task:
1. Demonstrate systematic knowledge of the current state of the art in web technologies being deployed by mainstream businesses to create Web APIs.
2. Scope, design and implement a simple Web API to solve a given problem.
3. Understand and implement Web API security and authentication.
Page 4 of 7
Assessment Marking Criteria
Mark allocation guidelines for: RESTful API Full Stack Software Portfolio. Evidence used for grade allocations: demonstration video, runnable API/documentation/client application, GitHub code repositories.
Page 7 of 7