Librarians can maintain database of new books and books that are borrowed by members along with their due dates. Tracks the records of the number of books in the library, number of books issued and returned and calculates fine charges, etc.
(Implementation of Template driven & Reactive forms, Form validation, Password hashing, Role based access, JWT Authentication, AuthGuard, Middleware, HTTP Interceptors, Services, Proxy Configuration, HTTP requests, Controller, Components & Directives, Profile, Pagination, Pipes, Primary & Foreign Key, Populate, Add, Update, Delete, Bulk upload & Bulk delete concepts.)
* User
* Admins
* Librarians
* Postman
* MongoDB Atlas
PROXY CONFIGURATION:
THE PRIMARY FUNCTIONS OF MEAN STACK TECHNOLOGIES ARE:
* Angular: Accept requests and display results to end-user.
* Node.js: Handle Client and Server Requests.
* Express.js: Make requests to Database and return a response.
* MongoDB: Store and retrieve data.
TEMPLATES:
* CoreUI Angular Admin Template
TO KNOW MORE:
* JavaScript | Object Oriented Programming | JavaScript Events | JavaScript Eventloop | Asynchronous Javascript | JavaScript DOM | ES6 | JavaScript Programs | Time Complexity and Space Complexity | JavaScript Compiler | JavaScript Questions
* Node.js | Node.js - Express Framework | Express: req.params, req.query and req.body
* MongoDB | MongoDB Questions | Mongoose
* Font Awesome | DaFont | Google Fonts
* Angular | Add / Remove Multiple Input Fields Dynamically in Template Driven Form – Angular | Angular Questions
* JWT | JSON Web Tokens
* A common use of JSON is to exchange data to/from a web server.
When sending data to a web server, the data has to be a string. Use JSON.stringify() to convert a JavaScript object into a string.
When receiving data from a web server, the data is always a string. Parse the data with JSON.parse(), and the data becomes a JavaScript object.
* Calling app.use(cors()) will enable the express server to respond to preflight requests. A preflight request is basically an OPTION request sent to the server before the actual request is sent, in order to ask which origin and which request options the server accepts.
* Mongoose schemas support a timestamps option. If you set timestamps: true, Mongoose will add two properties of type Date to your schema:
createdAt: a date representing when this document was created
updatedAt: a date representing when this document was last updated
TOOLS AND TECHNOLOGIES:
* Visual Studio Code
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git. Users can change the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality.
* Express.js
Express.js is a Node.js web application framework that provides broad features for building web and mobile applications. It is used to build a single page, multipage and hybrid web application. It is a layer built on the top of the Node js that helps manage servers and routes. Express was created to make APIs and web applications with ease. Express.js provides simple routing for requests made by clients. It also provides a middleware that is responsible for making decisions to give the correct responses for the requests made by the client.
* Middleware
Middleware is software that different applications use to communicate with each other. It provides functionality to connect applications intelligently and efficiently so that you can innovate faster. Middleware acts as a bridge between diverse technologies, tools and databases so that you can integrate them seamlessly into a single system. The single system then provides a unified service to its users. For example, a Windows frontend application sends and receives data from a Linux backend server, but the application users are unaware of the difference. The primary or most commonly-used HTTP methods are POST, GET, PUT, PATCH, and DELETE.
* Joi
Joi in Express.js is a popular module for data validation. This module validates the data based on schemas. There are various functions like optional(), required(), min(), max(), etc which make it easy to use and a user-friendly module for validating the data.
* MongoDB
MongoDB stores data records as documents which are gathered together in collections. A database stores one or more collections of documents. MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL) which is deemed non-free by several distributions.
* Postman
Postman is an API platform for developers to design, build, test and iterate their APIs.
TO RUN THE APPLICATION:
* LMS Angular
-> npm install
-> npm start
* LMS Server
-> npm start
API’s BASED ON ROLES:
* Users
POST - /api/usersauth/userregister
POST - /api/usersauth/userlogin
GET - /api/users/bookcount/book_id (view stock count of a book)
GET - /api/users/userbooks?page=1&limit=2 (view all books owned by a user)
GET - /api/users/userbooks (view all books owned by a user)
GET - /api/users/user (view signed in user)
GET - /api/books/categorybooks (for getting a category of books)
GET - /api/books/allbooks (view all books)
* Admins
POST - /api/adminsauth/adminregister
POST - /api/adminsauth/adminlogin
GET - /api/admins/alladmins (view all admins)
GET- /api/admins/allmembers (view all members)
GET- /api/admins/alllibrarians (view all librarians)
GET - /api/admins/users/allusers (view all users)
POST- /api/admins (add an admin)
GET - /api/admins/admin_id (view an admin)
PUT - /api/admins/admin_id (update an admin)
DELETE - /api/admins/admin_id (delete an admin)
POST- /api/admins/users ( add a user)
GET - /api/admins/users/user_id (view a user)
PUT - /api/admins/users/user_id (update a user)
DELETE - /api/admins/users/user_id (delete a user)
* Librarians
GET - /api/librarians/userbooks (view details of books owned by a user)
GET - /api/librarians/bookusers/book_id (view details of users who own a book with same id)
GET - /api/librarians/status/pending (for getting pending status user details)
GET - /api/librarians/status/returned (for getting status returned user details)
GET - /api/issuebooks/issue_id (for getting all records in IssueBooks)
POST - /api/issuebooks/issue_id (for adding a record in IssueBooks)
PUT- /api/issuebooks/issue_id (for updating a record in IssueBooks)
DELETE - /api/issuebooks/issue_id (for deleting a record in IssueBooks)
PUT - /api/librarians/fineentry/issue_id (for updating fine amount)
POST - /api/books/book_id (for adding a book)
PUT - /api/librarians/bulkupload (for bulk uploading books)
GET - /api/books/book_id (for getting details of a book)
PUT- /api/books/book_id (for updating a book details)
DELETE - /api/books/book_id (for deleting a book)
PUT - /api/librarians/bulkdelete (for bulk deleting with book id’s)
VIDEOS:
* Build A Node.js API Authentication With JWT Tutorial | Joi Validation
* CRUD REST API using Node , Express & MongoDB
* Create A Paginated API With Node.js
* ng-select dropdown in Angular - Install, Change, Disable, Read only, Multi select demo with Forms | How to Bind/Get selected value/Set Default in SelectList