305CDE/320CT Developing the Modern Web 2

305CDE/320CT

Developing the Modern Web 2

Resit Assignment 2015

During the module you learned how to use JavaScript to develop full-stack cloud-based web applications. In this resit you are required to apply these skills to develop a simple API that uses third-party APIs plus a client to allow users to interact with it.

Deadline

The deadline for this resit assignment is Friday 29th June 23:55

Assignment Brief

You need to develop a books API plus a web app that will interact with it. This will allow the user to create an account and log in. They should then be able to enter an ISBN number and be presented with details of the book, including its cover. Any books identified in this manner will need to have their details stored in a database on the server. To achieve this you will need to make use of several APIs. You may find the following URLs helpful:

   https://www.googleapis.com/books/v1/volumes?q=mongodb
   https://www.googleapis.com/books/v1/volumes?q=isbn:9780321995780

The RESTful API must be developed using the NodeJS platform using the JavaScript language. The client may be developed using either pure JavaScript or you may chose to use the AngularJS framework. Work submitted using other languages and/or frameworks will not be considered.

Features

The API should contain the following features:

  1. Theusershouldbeabletocreateanaccountandlogin
  2. TheusershouldbeabletoenteranISBNnumbertoretrievedetailsonthe associated book
  3. Theusershouldbeabletoaddthatbooktotheir‘readinglist’.
  4. BookdetailsassociatedwiththereadinglistshouldbestoredintheAPIusingan appropriate mechanism (filesystem, relational database, document database, graph database)
  5. Theusershouldbeabletoremovebooksfromtheirreadinglist
  6. Theusershouldbeabletoviewdetailedinformationaboutanyofthebooksin their reading list.

Video

Once you have completed the two apps you need to record a screencast showing both the API (using Postman) and the client web app working and explaining the code you used (based on the assessment rubric).

Monday, 29 June 2015

1

Submission

You will be provided with a single upload link on Moodle and will be required to submit the following:

1. AlinktotheGitLabrepositorypageforyourRESTfulAPI

2. AlinktotheGitLabrepositorypageforyourwebapp

3. Alinktotheshortvideoof6minorlessshowingustheworkingAPIandclient and explaining the important features of the code.

Permissions

You should ensure the YouTube video permissions are set to unlisted and that you have provided reporter access to the following users. Failure to do this will result in you being awarded a grade of 0:

      marktyers
      c0lin
      jianhua

2

Monday, 29 June 2015

Marking Scheme

Your assignment will be marked using the following criteria. The main evidence used will be the video so ensure that all aspects listed below are clearly shown.

Monday, 29 June 2015

Version Control 10%

If you have not provided access to your code on GitLab you will get a grade of 0. For a pass grade you need to provide access to your working code on GitLab.
For a higher grade you need to demonstrate a regular commit history over several weeks using sensible commit messages.

For the highest grades you need to show the use of the full range of Git methodologies including but not limited to branching, merging and tagging.

Testing 10%

If you have carried out no testing, you will get a grade of 0.
For a pass grade you need to show the tests you carried out.
To get a higher grade you need to demonstrate a TDD workflow
For the highest grades you need to demonstrate the use of CI using any appropriate tool.

Functionality (API)
20%

If your API does not work you will be awarded a grade of 0.
For a pass you need to demonstrate that the API can be used to create users and add books when a user is logged in.
For a higher grade you need to make use of a range of appropriate methods and handle errors in a way that helps the user understand how to use the API correctly. For the highest grades you need to have made use of a wide range of request and response headers appropriately and implemented more sophisticated authentication and authorisation.

Language (API)
20%

For a pass grade you need to show that you have used basic JavaScript constructs and understand how they work.
For a higher grade you should be using CommonJS modules and functional JavaScript where appropriate. You should be able to explain and justify your choices. Code should be fully annotated.

For the highest grades you should be using a wide range of appropriate JavaScript features and modules, justifying your choices.

Functionality (Client)
20%

If your web app does not work you will be awarded a grade of 0.
For a pass you should provide enough of a client to allow the user to interact effectively with the API.
For a higher grade you should be implementing the web client as a single-page application (SPA) with a clean, intuitive interface.
For the highest grades your web app should be produced to a professional standard.

Language (client) 20%

For a pass grade you need to show that you have used basic JavaScript constructs and understand how they work.
For a higher grade you should be using CommonJS modules and functional JavaScript where appropriate. You should be able to explain and justify your choices. Code should be fully annotated.

For the highest grades you should be using a wide range of appropriate JavaScript features and modules, justifying your choices.

3