This project implements a complete book management system with user authentication and review functionality for the Coursera "Developing Back-End Apps with Node.js and Express" course.
- ✅ Task 1: Get the book list available in the shop
- ✅ Task 2: Get books based on ISBN
- ✅ Task 3: Get all books by Author
- ✅ Task 4: Get all books based on Title
- ✅ Task 5: Get book Reviews
- ✅ Task 6: Register New user
- ✅ Task 7: Login as a Registered user
- ✅ Task 8: Add/Modify a book review
- ✅ Task 9: Delete book review
- ✅ Task 10: Get all books – Using async callback function
- ✅ Task 11: Search by ISBN – Using Promises
- ✅ Task 12: Search by Author – Using Async/Await
- ✅ Task 13: Search by Title – Using Promises
- Install dependencies:
npm install- Start the server:
npm start- For development with auto-restart:
npm run dev- Test the client methods:
npm testGET /books- Get all booksGET /books/isbn/:isbn- Get book by ISBNGET /books/author/:author- Get books by authorGET /books/title/:title- Get books by titleGET /books/:id/reviews- Get book reviewsPOST /register- Register new userPOST /login- User login
PUT /books/:id/reviews- Add/modify book reviewDELETE /books/:id/reviews- Delete book review
For peer review, test each endpoint using:
- Postman
- Browser (for GET requests)
- The provided test client (
npm test)
- ISBN:
9781593279509 - Author:
David Flanagan - Title:
JavaScript - User credentials:
username: testuser, password: testpass123
├── package.json # Dependencies and scripts
├── index.js # Main Express server
├── test_client.js # Node.js client with Axios
├── README.md # This file
└── screenshots/ # Screenshots for peer review
- Node.js
- Express.js
- JWT for authentication
- bcryptjs for password hashing
- Axios for HTTP requests
- CORS for cross-origin requests