Search for question
Question

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) 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. Upload a maximum-10-minute video demonstration of your API, API client (if implemented), API integration (if implemented), API documentation, and API endpoint tests. API endpoint functionality should be demonstrated on screen using Postman or a similar HTTP request-response GUI. API client (i.e., SPA) functionality (if present) should be demonstrated in a browser. API documentation and code documentation should be shown in a browser. 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: URL links to your Codio environment and CU GitHub repository. о O A 200-words written summary of your RESTful API service. 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.