/expressBookReviews

nodejsFinalModule

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Simple API for IBM Express/Node Course Final Project


Fully rewrote on TypeScript
npm run dev

Project Overview: Scenario and Review Criteria

Project Overview


You will have the chance to practice and put your skills, knowledge, and abilities to use Node.JS & Express.JS by developing Online Book review application in your final project.

FINAL PROJECT SCENARIO


In this project you will assume the role of a back-end developer working for an online retailer selling books. You have been tasked with developing a server-side application that stores, retrieves and manages book ratings and reviews.

Your server-side application is required to provide the following features and capabilities to allow users to:

  • Retrieve a list of all books available in the bookshop
  • Search for specific books and retrieve their details based on the book’s ISBN code, author names and titles
  • Retrieve reviews/comments for specified books
  • Register as a new user of the application
  • Login to the application
  • Add a new review for a book (logged in users only)
  • Modify a book review (logged in users can modify only their own reviews)
  • Delete a book review (logged in users can delete only their own reviews)
  • (Multiple users) Access the application at the same time to view and manage different book reviews simultaneously
  • As is the case with most software development projects, different people in the team work on different parts of the application. Another front-end developer in your team is working on the web-based client-side application that will communicate with your server-side application using REST. Therefore your job is to implement your server-side application as a RESTful web service. A software architect on your team has written the skeleton code for your server-side application using Node.js and Express.js.

To complete the project you will fork the skeleton code into your own repo, clone it locally into your development environment, and develop the code further to implement the CRUD capabilities listed above as HTTP methods in your Express server and test them using Postman. You will also implement Session and JWT authentication to allow only logged in users to perform certain operations. For your reference, this application comes preloaded with all of the book information.

Furthermore you will need to enhance your code using Promises, Callbacks or Async/Await functions to allow multiple users to interact with the application simultaneously and not have to wait for each other’s operations to complete.

Evaluation Criteria –30 marks total


Please take the particular screenshots for each particular task for your peer review as mentioned in the lab instructions. Your peers who are also completing the course during the same session will grade this project. This project carries 30 points toward your final grade and is weighted as follows:

General users:

  • Task 1: Get the book list available in the shop.- 2 Points

  • Task 2: Get the books based on ISBN.- 2 Points

  • Task 3: Get all books by Author. -2 Points

  • Task 4: Get all books based on Title - 2 Points

  • Task 5: Get book Review. - 2 Points

  • Task 6: Register New user – 3 Points

  • Task 7: Login as a Registered user - 3 Points

Registered Users:

  • Task 8: Add/Modify a book review. - 2 Points

  • Task 9: Delete book review added by that particular user - 2 Points

Node.JS program with 4 methods:

Use Async/Await or Promises with Axios in Node.js for all the four methods.

  • Task 10: Get all books – Using async callback function – 2 Points

  • Task 11: Search by ISBN – Using Promises – 2 Points

  • Task 12: Search by Author – 2 Points

  • Task 13: Search by Title - 2 Points

  • Task 14: Submission of Project GitHub Link - 2 Points

Next Steps

Be sure to read the Overview before starting the step-by-step instructions.

Author(s)

Lavanya T S

Sapthashree K S

K Sundararajan

Changelog

Date Version Changed by Change Description 15-09-2022 1.0 Sapthashree K S Initial version created 10-10-2022 1.1 K Sundararajan Updated instructions 2022-11-15 1.2 K Sundararajan Title & instructions updated based on review 2022-11-18 1.3 K Sundararajan Grammar corrections based on Beta testing feedback © IBM Corporation 2022. All rights reserved.