diff --git a/8-Libray Management/Readme.md b/8-Libray Management/Readme.md
new file mode 100644
index 00000000..94c54fbb
--- /dev/null
+++ b/8-Libray Management/Readme.md
@@ -0,0 +1,68 @@
+# Simple Library Management
+
+A simple library management project that is easy to use and helps the learner to understand the basic concept of JS.
+
+Visit Website: [Online Library](https://delightful-coast-00b51a700.1.azurestaticapps.net/)
+
+
+
+
+
+
+## Functionalities :-
+Input book name, author and book type to add the book. If book name is missing it will shown you error. As I used LocalStorage if you refresh or close the tab your books will not disappear. You can clear book shelf just by clicking on **clear shelf**. You can also search book by book name, author and type.
+
+## Adding
+
+### Adding Book in Shelf:
+
+
+
+
+
+
+### Adding Book Without Entering Book Name:
+
+
+
+
+
+### Clearing Book Shelf:
+
+
+
+
+
+## Searching
+
+### Search Book by type:
+
+
+
+
+### Search Book by author:
+
+
+
+
+### Search Book by name:
+
+
+
+
+
+## Built with :-
+- HTML
+- CSS
+- Bootstrap
+- JavaScript
+
+## How to use :-
+- Clone the repository
+- Go to the directory
+- Run index.html file
+- Enter book name, author and type of book
+- Press add book
+
+
+
diff --git a/8-Libray Management/Solution/Readme.md b/8-Libray Management/Solution/Readme.md
new file mode 100644
index 00000000..0a156837
--- /dev/null
+++ b/8-Libray Management/Solution/Readme.md
@@ -0,0 +1,8 @@
+# Simple Library Management
+
+## How to use :-
+- Clone the repository
+- Go to the directory
+- Run index.html file
+- Enter book name, author and type of book
+- Press add book
diff --git a/8-Libray Management/Solution/index.html b/8-Libray Management/Solution/index.html
new file mode 100644
index 00000000..f4d841d3
--- /dev/null
+++ b/8-Libray Management/Solution/index.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+ Online Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Welcome To Online Library
+
+
+
+
+
+
+
+
Your Book Shelf
+
+
+
+
+
+
+
+
+
No.
+
Name
+
Author
+
Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/8-Libray Management/Solution/script.js b/8-Libray Management/Solution/script.js
new file mode 100644
index 00000000..4ae469d2
--- /dev/null
+++ b/8-Libray Management/Solution/script.js
@@ -0,0 +1,262 @@
+displayBooks(); //As the browser open it show all the stored books
+
+let libraryForm = document.getElementById('libraryForm');
+
+// Adding Books
+libraryForm.addEventListener('submit', (e) => {
+
+ e.preventDefault();
+
+ let name = document.getElementById("bookName").value;
+ let author = document.getElementById("author").value;
+
+ let fiction = document.getElementById('fiction');
+ let programming = document.getElementById('programming');
+ let science = document.getElementById('science');
+ let others = document.getElementById('other');
+
+ let type;
+
+
+ if (fiction.checked) {
+ type = fiction.value;
+ programming.unchecked;
+ science.unchecked;
+ }
+ else if (programming.checked) {
+ type = programming.value;
+ science.unchecked;
+ fiction.unchecked;
+ }
+ else if (science.checked) {
+ type = science.value;
+ fiction.unchecked;
+ programming.unchecked;
+ }
+ else if (others.checked) {
+ type = others.value;
+ fiction.unchecked;
+ programming.unchecked;
+ science.unchecked;
+ }
+
+
+ let shelf = localStorage.getItem('shelfOfBooks');
+ let objOfBook; //object which stores books
+
+ if (shelf == null) {
+ objOfBook = [];
+ }
+ else { //We might have multiple books
+ objOfBook = JSON.parse(shelf); //By using JSON we convert it into Object
+ }
+
+ if (name == "") {
+ errorMessage();
+ }
+ else {
+ let myObj = {
+ book: name,
+ bookauthor: author,
+ bookType: type
+ }
+ objOfBook.push(myObj);
+ addMessage();
+ }
+
+ localStorage.setItem('shelfOfBooks', JSON.stringify(objOfBook));
+
+ name = "";
+ author = "";
+ type.value = "";
+
+ UpdateBook();
+ displayBooks();
+})
+
+
+//Function to show elements(books) from LocalStorage
+function displayBooks() {
+ let books = localStorage.getItem('shelfOfBooks');
+ let clearBtn = document.getElementById("clear");
+ let objOfBook;
+
+ if (books == null) {
+ objOfBook = [];
+ }
+ else {
+ objOfBook = JSON.parse(books);
+ }
+ let html="";
+ let index = 1;
+
+ objOfBook.forEach( (books)=> { //index is the length of the array
+
+ html += `
+
+ Message: Your book shelf is clear! To add more books refresh the browser.
+
+
`
+
+ setTimeout(() => {
+ navbar.style.display = "flex";
+ message.innerHTML = ``;
+ }, 2000);
+}
+
+
+// Clearning shelf (Deleting all books)
+let clearBtn = document.getElementById("clear");
+
+clearBtn.addEventListener('click', ()=> {
+ localStorage.removeItem("shelfOfBooks");
+ localStorage.removeItem("getBookNumber");
+
+ document.getElementById("books").innerHTML = "No. of Books: " + 0;
+ let table = document.getElementById('tableBody');
+ table.style.display = "none"
+ clearBtn.style.display = "none";
+
+ let noDisplayMsg = document.getElementById('emptyMsg');
+ noDisplayMsg.innerHTML = `Nothing to display! Use "Add book" above to add books`;
+
+ clearMessage();
+})
+
+//Searching book by bookname, author and type
+let searchNote = document.getElementById('searchText');
+searchNote.addEventListener('input', function () {
+
+ let search = searchNote.value.toLowerCase();
+
+ let tableRows = document.getElementsByClassName('rows');
+
+ Array.from(tableRows).forEach(function (element) {
+
+ let bookName = element.getElementsByClassName("name")[0].innerText.toLowerCase();
+ let authorName = element.getElementsByClassName("author")[0].innerText.toLowerCase();
+ let type = element.getElementsByClassName("type")[0].innerText.toLowerCase();
+
+ if (bookName.includes(search)) {
+ element.style.display = "table-row";
+ }
+ else if(authorName.includes(search)){
+ element.style.display = "table-row";
+ }
+ else if(type.includes(search)){
+ element.style.display = "table-row";
+ }
+ else {
+ element.style.display = "none";
+ }
+ })
+
+});
+
+
+// Update Number of books in Shelf section
+function UpdateBook() {
+ let bookNumber = localStorage.getItem("getBookNumber");
+ bookNumber = parseInt(bookNumber);
+
+ if (bookNumber) {
+ localStorage.setItem("getBookNumber", bookNumber + 1);
+ document.getElementById("books").innerHTML = "No. of Books: " + (bookNumber + 1);
+ }
+ else {
+ localStorage.setItem("getBookNumber", 1);
+ document.getElementById("books").innerHTML ="No. of Books: 0" + 1;
+ }
+
+}
+
+
+//Show Number of books in Shelf section
+function showNumberOfBooks() {
+ let getBookNumber = localStorage.getItem("getBookNumber");
+ getBookNumber = parseInt(getBookNumber);
+
+
+ if (getBookNumber) {
+ document.getElementById("books").innerHTML = "No. of Books: " + getBookNumber;
+ }
+ else {
+ document.getElementById("books").innerHTML = "No. of Books: " + 0;
+ }
+}
+
+showNumberOfBooks();
\ No newline at end of file
diff --git a/8-Libray Management/Web Storage/Readme.md b/8-Libray Management/Web Storage/Readme.md
new file mode 100644
index 00000000..7154d54a
--- /dev/null
+++ b/8-Libray Management/Web Storage/Readme.md
@@ -0,0 +1,116 @@
+# What is web storage ?
+
+With web storage, web applications can store data locally within the user's browser.
+
+Large amounts of data can be stored locally without affecting website performance, and web storage is more secure. Web storage is based on the origin (per domain and protocol). All pages from a single source can store and access the same information.
+
+## Web Storage Objects
+
+There are two types of web storage which are as follow:
+
+- window.localStorage
+- window.sessionStorage
+
+**window.localStorage** - stores data with no expiration date.
+
+**window.sessionStorage** - stores data for one session (data is lost when the browser tab is closed).
+
+Before using web storage, check browser support for localStorage and sessionStorage:
+
+```
+ if (typeof(Storage) !== "undefined") {
+ // Code for localStorage/sessionStorage.
+ }
+ else {
+ // Sorry! No Web Storage support.
+ }
+```
+
+### The localStorage Object:
+
+The data is stored in the localStorage object with no expiration date. When the browser is closed, the data is not deleted, and it will be available the next day, week, or year.
+
+```html
+
+
+
+
+
+
+
+
+```
+
+ Maria
+
+
+Example explained:
+- Create a localStorage name/value pair with name="firstname" and value="Maria"
+- Now go to the application tab in any browser's devtools, where you'll find a local storage with the key and value columns, and you'll see "firstname" in the key column and "Maria" in the value column.
+- Fetch the value of "firstname" and insert it into the element with id="output"
+- Now this will print "Maria"
+
+### The sessionStorage Object:
+
+The sessionStorage object is similar to the localStorage object, with the exception that it only stores data for one session. When the user closes the specific browser tab, the data is deleted.
+
+The following example counts the number of times a user has clicked a button, in the current session:
+
+```html
+
+
+
+
+
+
+
+
+
Click the button to see the counter increase.
+
+ Close the browser tab (or window), and try again, and the counter is
+ reset.
+
+
+
+```
+
+ Output:
+
+ 
+
+ Example Explained:
+
+ - It will first check whether the clickcount key is present or not in the session storage, and if it is not, it will create the key "clickcount" with a value of 1.
+ - Now if you click on the "click me" button then the value of clickcount is get incremented by 1.
+ - You can check session storage in devtools, and the value of clickcount in the value column will show the number of times you clicked.
+ - If you close the browser tab, the counter will be reset to zero, and the value of clickcount will be 0.
+
\ No newline at end of file