辅导304CEM课程编程、 写作web/CSS编程语言

” 辅导304CEM课程编程、 写作web/CSS编程语言This document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite.Faculty of Engineering, Environment and Computing304CEM Web API DevelopmentAssignment BriefModule TitleWeb API DevelopmentIndividualAssignmentCohortSeptModule Code304CEMCoursework Title (e.g. CWK1)Coursework 1: RESTful API with client, video demo and short reportHand out date:29/09/20LecturerColin StephenDue Date and time:Date: 07/12/20Online: 18:00:00Estimated Time (hrs): 50-75Word Limit for Report: 3000 / 8 pagesLength Limit for Video: 5 minutesCoursework type:Individual Practical plus WrittenReport and Video% of Module Mark100%Submission arrangement online via Aula: Upload through assignment linkFile types and method of recording: 1x PDF document containing a written report and URL links (to twogit repositories and to your uploaded application demonstration video).Mark and Feedback date (DD/MM/YY): 21/12/20Mark and Feedback method: rubric marks and written commentsModule Learning Outcomes Assessed:1. Develop a secure, open-standards-based API to support server-client communication.2. Create modern web content involving asynchronous data retrieval, client-side DOMmanipulation, standards adherence and user-user interaction.3. Manage data persistence cross both server and client web-based solutions.4. Design and implement an API and client based on given, non-trivial requirements using a rangeof appropriate developer tools.Task and Mark distribution:1. Back-end RESTful API: 40%2. Front-end Single Page Application: 35%3. Report on technology resources for full stack JS web development: 20%4. Video demonstration of application functionality: 5%Notes:1. You are Expected to use the Coventry University APA style for referencing. For support andadvice on this students can contact Centre for Academic Writing (CAW).2. Please notify your registry course support team and module leader for disability support.3. Any student requiring an extension or deferral should follow the university process as outlinedhere.This document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.4. The University cannot take responsibility for any coursework lost or corrupted on disks, laptopsor personal computer. Students should therefore regularly back-up any work and are advised tosave it on the University system.5. If there are technical or Performance issues that prevent students submitting courseworkthrough the online coursework submission system on the day of a coursework deadline, anappropriate extension to the coursework submission deadline will be agreed. This extension willnormally be 24 hours or the next working day if the deadline falls on a Friday or over theweekend period. This will be communicated via your Module Leader.6. You are Encouraged to check the originality of your work by using the draft Turnitin links on Aula.7. Collusion between students (where sections of your work are similar to the work submitted byother students in this or previous module cohorts) is taken extremely seriously and will bereported to the academic conduct panel. This applies to both courseworks and exam answers.8. A marked difference between your writing style, knowledge and skill level demonstrated in classdiscussion, any test conditions and that demonstrated in a coursework assignment may result inyou having to undertake a Viva Voce in order to prove the coursework assignment is entirely yourown work.9. If you make use of the services of a proof reader in your work, you must keep your original versionand make it available as a demonstration of your written efforts.10. You must not submit work for assessment that you have already submitted (partially or in full),either for your current course or for another qualification of this university, with the exception ofresits, where for the coursework, you may be asked to rework and improve a previous attempt.This requirement will be specifically detailed in your assignment brief or specific course or moduleinformation. Where earlier Work by you is citable, i.e. it has already been published/submitted,you must reference it clearly. Identical pieces of work submitted concurrently may also beconsidered to be self-plagiarism.Mark allocation guidelines to students this applies to the code the report and the video. Pleasesee detailed Rubrics at the end of the document.0-39 40-49 50-59 60-69 70+ 80+Work mainlyincompleteand /orweaknesses inmost areasMost elementscompleted;weaknessesoutweighstrengthsMost elementsare strong,minorweaknessesStrengths in allelementsMost workexceeds thestandardexpectedAll worksubstantiallyexceeds thestandardexpectedThis document is for Coventry University students for their own use in completing theirAssessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.Assignment BriefScenarioAs a full stack web developer, you have been asked to develop a Node based RESTfulAPI on the backend plus a React JS single page application (SPA) on the frontend toreplace a clients existing unmaintained PHP-based website. In addition to the APIand SPA, the client requires a short report targeted at their internal development team,exploring how the developed application fits in to the wider context of JavaScript fullstack technologies. Finally, the client has requested a short video demonstration of theapplication, targeted at end-users.Please choose ONE client from the list of two at the end of the brief for yourassignment.The application specifications and requirements are set for you in the clients projectbrief. Please note that it is very important to follow the requirements and the designconsiderations listed for each application. What follows next are instructions relevantto all of the Client projects.Code General RequirementsThe application itself should be composed of reusable components rather than a singlestand-alone application. That means your code architecture should allow you to plugin or extract any component easily from your application. For example, if you arerequired to create a feature that allows users to comment on an item and reply to otherusers comments, then you would develop a component to handle this commentingfunctionality on its own, independent from and reusable in other full stackapplications when required.BackendAll 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.The Node frameworks and modules you choose to build the backend are up to you:options include Koa, Express, Restify, and others.DatabaseSimilarly, the choice of database integration on the backend is up to you: optionsinclude MySQL, SQLite, MongoDB, and others.FrontendAll the frontend components you develop should be React JS components. In terms ofvisual design the CSS framework you choose, if you decide to use one, is up to you:options include React Bootstrap, Ant Design, Material UI, and others.If in doubt as to the Suitability of a particular framework, Node module, or DBMSplease ask the Module Leader first.This document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.Code Professional PracticeYour workflow, software architecture, coding style and conventions, anddocumentation should follow general good practice as introduced in this module.Above all: Your code should be consistent, readable and well documented. However,your choice of specific code convention(s), such as using JavaScript Promisechains versus async await expressions, or what style you use to lint yourcode, is up to you. Your API functionality should be clearly documented for other developers,either in text-based documentation files (such as Markdown) in yourrepository, or as HTML documentation created with a framework such as APIBlueprint or Swagger. Your SPA functionality should be clearly documented for end-users, eitherin text-based documentation files (such as Markdown) with appropriatescreenshots, in your repository, or as HTML-based user documentation.Code Key ConstraintsYou should use Only the programming languages and frameworks as advised in thisbrief, no other alternatives are permitted: JavaScript with a preference for ES6 language constructs React JS on frontendWritten ReportYour client has asked for a background report to be compiled for their developmentteam, who are unfamiliar with the JavaScript full stack ecosystem.The report should cover 6-8 one-page topics (see below for sources) chosen toillustrate: the benefits of full stack for application development, how the JS full stack ecosystem is developing at its cutting edge, emerging commercial best practices the developers should be aware of.To choose the topics and write the report: browse the archives of the following industry newsletters, or subscribe:o JavaScript Weeklyo Node Weeklyo React Status choose 6-8 resources linked from them, keeping the report objectives in mind summarise each resource and explain its significance: why should thedevelopment team be made aware of it (maximum 1 page per resource).The final report should be clearly formatted for readability and include screenshots,external references, and examples from your own application code when appropriate.This document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.The maximum length of the report should be 8 A4 pages including references.Video DemonstrationYour client wants to quickly introduce the new full stack application to its productteam and end users. For this purpose, they have requested that you provide a videodemonstration of the application functionality.Produce a video Walk-through of your applications features and functionality usingscreen recording software such as Microsoft Streams browser-based screen recordingor a one-person Zoom meeting recording with shared screen.There should be no audio on the recording. Instead you must communicate using texton the screen: e.g. prepare a slide deck with descriptions of the demonstration stepsbeing carried out.The length of the video should be between 2-5 minutes and it must be uploaded toCoventry Universitys Microsoft Stream page (log in with your Coventry Universitycredentials).The uploaded VIdeo can be private, but you must provide full access to Colin Stephen(CU username ab5169) and be prepared to give access to other CU staff if requested.A demonstration of how to do this will be given in class before the Courseworkdeadline.Task SummaryTo prepare your final submission a rough breakdown of the key tasks is as follows.First Steps Review the client projects at the end of this document and choose one. Decide on a database to use and a Node framework to build the API with. Sign up for the three industry newsletters linked above. Set up two repositories on httpss://github.coventry.ac.uk/304CEM-2021SEPJAN, one for your frontend code and its documentation and one foryour backend code and its documentation. Prototype and plan your project based on the client requirements.o Wireframe or sketch the UI, decide which UI components to developand decide how these will fit together in a React component hierarchy.o Design a data schema for a database to store the API data you need tomanage. An Entity-Relationship diagram can be useful for this.o Be clear on what the main resources provided by the API are.o Design an appropriate JSON representation of these API resources.Often this will parallel your DB schema, but it may differ if yourdatabase contains additional information or relationships.This document is for Coventry University students for their own use in completing theirassessed Work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.o Design the URI endpoints of your API and which HTTP methods canbe used to access them, corresponding to the resources you wish toexpose, using RESTful principles.During Semester Develop your back- and front-end code with associated project and in-linedocumentation using good version control practices and testing:o Make regular small git commits with relevant messages.o Develop features on new branches.o Fix bugs on new branches.o Merge branches with features and fixes to the master branch only oncecomplete.o Write tests for key parts of your code using an appropriate testframework such as Jest, Mocha, or Jasmine. Write your full stack development resource summaries in your reporto e.g. one Page per week describing one relevant resource Extend your API documentation and end-user documentation as your code andfeatures develop.Before Submission Commit your final code changes and merge all code to be assessed into your masterbranch. Push all branches of your repositories to the remote origin branches in yourrepositories on httpss://github.coventry.ac.uk/304CEM-2021SEPJAN before thesubmission deadline. Code committed after the deadline will be ignored. Record a video demonstrating your final application, upload it to MicrosoftStream and ensure the Module Leader (username:ab5169) has full accessbefore the submission deadline. Videos published after the deadline will beignored. Complete your report with an introduction and conclusion. Add a final blank page to your report and to it add three URL links to:o your frontend repository on CU GitHubo your backend repository on CU GitHubo your uploaded Video on CU MS Stream Export/Print your report-plus-URLs document to PDF format.SubmissionUpload a single PDF file, containing the following, to the assignment link on Aula: your report, the URLs for your repositories and video.Files submitted after the deadline will not be marked unless you have beenawarded an extension or deferral from Registry.This document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.Client ProjectsClient 1 We Sell Houses: A Real Estate Listings Web AppWe Sell Houses would like a new web application that allows users (estate agents) tolist houses for sale to the general public.Main features The general public cano view a list of all items (properties)o search/filter items based on their features and/or keywordso view any item detailo message item Owners (estate agents) to express interest New users (estate agents) can register on the app if they have a sign-up codeo They need to supply a unique email and a password to sign upo For this prototype the sign-up code is always we_sell_houses_agent Registered users cano log in to the appo see their current list of propertieso search/filter their current list of propertieso add a new item (property) for saleo add or update the item category (commercial, terrace, apartment, )o add or update a descriptiono add or update a list of features has garden, needs refurbishment etc.o add or update an asking price,o add or update the locationo attach or delete imageso mark as under offero archive/unpublish the item (property) from sale so it is no longer visibleto the publico delete an item entirelyo mark an item as high priorityo view the current list of high priority itemso view all messages sent from the general publico view, archive, or delete an individual message sent from the generalpublicThis document is for Coventry University students for their own use in completing theirassessed Work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.Challenge features choose one or more: Agents can upload video walk-throughs for their listings Send in-browser notifications to the user when they receive a new message Use the Zoopla API, or similar, to provide agents with average historicalhouse sale prices in the location of their individual items, or other relevantdata. External data should be stored in your API database when retrieved, notqueried from the external API each time. Confirm the users email when they sign up by sending them an emailmessage containing a validation link that needs to be clicked to validate.Client 2 Public Library: A Book Lending Web AppDue to recent physical branch closures, a consortium of local libraries across thecountry have teamed up. They wish to provide a platform for their members to lendtheir books to one another online.Main Features The general public cano list all items (books) available on the siteo search/filter items based on their features and/or keywords (author, title,ISBN, etc.)o view any item detail New users Can register on the appo They need to supply a unique email and a password to sign upo They must also provide a mailing address for book postage Registered users cano log in to the appo add new items (books) available for borrowingo view individual book detailso update any fields describing their booko delete a book they owno attach or delete book imageso see a list of owned bookso search/filter owned books (author, title, ISBN, etc.)o request or cancel a request to borrow another users item only books not marked on loan can be requested only books not marked requested can be requested a short message to the lender can be added to the requesto view requests made and requests received each request should also include any messages associated to ito archive a request and its associated chat messageso reply to messages in requestsThis document is for Coventry University students for their own use in completing theirassessed work for this module and should not be passed to third parties or posted on anywebsite. Any infringements of this rule should be reported tofacultyregistry.eec@coventry.ac.uk.o view user details of the user who is requesting a booko mark any Book as on loan if the book had an open request then this request is removedo mark any book as available (meaning no longer on loan)Challenge features choose one or more: Send in-browser notifications to the user when they receive a new bookrequest Use the Goodreads API, or similar, to provide additional item information foreach book: reviews, author information, etc. External data should be stored inyour API database when retrieved, not queried from the external API eachtime. Confirm the users email when they sign up by sending them a messagecontaining a validation link. Allow the user to download a CSV file of all currently available books in theapp.This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to thirdparties or Posted on any website. Any infringements of this rule should be reported to facultyregistry.eec@coventry.ac.uk.304CEM Marks Breakdown and Rubric for Backend API (40%)0 1 2 3 4 5Version Control5%No access givento the remoterepository.Code does not matchthe code demonstratedor the projectrequirements.No evidence of regularcommits.Evidence of regular commits. Evidence of regularcommits over an extendedperiod of time. Minor use ofbranching.Evidence of regular commitsover an extended period of time.Effective use of branching andmerging.APIArchitecture5%No API codesupplied.An attempt to write theAPI however it fails towork correctly.All code for routing andbusiness logicmaintained in a smallnumber of files.Code Split into several smallerfiles but shows overlap betweenrouting, business, andpersistence logic in places.Clear separation betweencore API routing, business,and persistence logic.Evidence of clear separationplus encapsulation offunctionality into fully pluggableand well documented modules.API Design andTesting10%No API codesupplied.An attempt has beenmade to implement abasic API however thisdoes not work asexpected.Simple functional APIdemonstrating a basicUnderstanding of RESTprinciples (resources,collections, methods andheaders).The API is fully functional. TheAPI demonstrates a goodunderstanding of REST principleswith effective URI design andJSON data representations.Some attempt at testingendpoints has been made butthis may be flawed or minimal.The API provides feedbackfor invalid requests throughAppropriate response codesand messages. Includesfiltering and sorting andconditional GET requests.Several API actions havebeen tested.Fully REST-compliant APIincluding implementation ofHATEOAS principles. Uses thefull range of request andresponse headers and cachingwhere relevant. Many or most ofthe API endpoints have beentested with a standard testframework.Code Qualityand Unit Testing10%No API codesupplied. No testcode supplied.An attempt has beenmade to write code toimplement some of thebasic functionalityalthough this may not besuccessful. No or limitedattempt at flawed tests.Working code baseshowing the applicationof basic programmingprinciples. Code mayContain linting errors andwarnings. An attempthas been made to writesome tests.Well written code withinconsistencies in some places.Some code duplication. Wouldbenefit from mild refactoring.Error handling is present but mayhave holes. Validation is presentbut may not cover all possibleissues. Evidence of a limitednumber of tests written and run.The code is modular,Follows a consistent style,and includes full or close tofull exception-handling.Data are thoroughlyvalidated before passing tothe persistence layer. Mostcomplex functions havetests defined.The API demonstrates a widerange of appropriate languageconstructs including clearModular structure and use ofabstract design patterns orparadigms such as functionalprogramming. Concise easilymaintainable code. Wide rangeof relevant automated testsdefined.UserAuthenticationNo userauthentication.An attempt at userauthentication has beenSimple authenticationthat allows users to loginAn authentication system thatallows users to login using JSONFully working authenticationSystem using JWT or moreFully working authenticationsystem that allows multipleThis document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to thirdparties or posted on any website. Any infringements of this rule should be reported to facultyregistry.eec@coventry.ac.uk.andAuthorization5%made but it is notfunctional or is insecure.using Basic Auth. Thereis no difference in userpermissions or userroles.web tokens. Limited use of userpermissions or user roles.advanced techniques.Includes effective userpermissions and/or roles toprovide appropriateProtection to data.different authenticationmethods. Provides a flexibleroles and permissions structurethat allows an admin to managepermissions without changingcode.API and CodeDocumentation5%Nodocumentationprovided.Basic limiteddocumentation in codeand/or text documentsthat does not add muchmore understandingthan reading the codeitself.Attempt at documentingcode or API but one orthe other is not fullypresented.Both API and code aredocumented well but could bemore detailed on key aspectssuch as URIs or JSON datastructures. Code documentationwould benefit from a morestandardised approach such asJSDoc or similar.Clearly presented andstandardiseddocumentation on API URIendpoints and JSON datastructures used by the API.Code documentation usesJSDoc or similar. Could beeasier to read or betterformattedExtensive well formattedinteractive HTML-based APIDocumentation at a professionallevel. Extensive relevant codedocumentation adding clarityand maintainability.304CEM Grading Rubric for Front-end Application (35%)0 1 2 3 4 5Documentation5%No attempt Limited codedocumentation and nouser documentation.Or vice versa.An attempt to commentoccasionally on the code, anattempt to generate userdocumentation but lackingany detail.Some of the code iscommented, an attempt togenerate userdocumentation but still needsmore work to be complete.Most of the code is commentedto a level that would help withmaintenance. A clear but shortuser manual has been created.Fully commented code usingJSDoc or similar, all userFunctionality and every appfeature have been clearlyexplained and professionallypresented.Connecting toAPIs5%No codesupplied, orno attempt toconnect tothe API.An attempt forconnecting andretrieving data from theAPIs was done but thisdoes not work or isincomplete.Some pages connect andretrieve data from the API.These may have minor ormajor issues in connecting.Some connections are notattempted.Most of the pages connectand retrieve data from theAPI with few having minor ormajor issues in connectingAll pages/components connectand retrieve data from the API.Some potential issues remainDue to error handling.All pages connect and retrievedata from the API, withappropriate error handling inplace for unusual situationssuch as timeouts etc.This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to thirdparties or posted o”

添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导