diff --git a/src/main/java/com/example/bookmanagement/Book.java b/src/main/java/com/example/bookmanagement/Book.java
index ce0dd851c191458e65c22fcc6cb18d42d03865b0..d058d60bcbd8474ade9a13d6e71e23e4d2f7ae8d 100644
--- a/src/main/java/com/example/bookmanagement/Book.java
+++ b/src/main/java/com/example/bookmanagement/Book.java
@@ -2,20 +2,48 @@ package com.example.bookmanagement;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.Table;
 
 @Entity
+@Table
 public class Book {
-    @Id
-    @GeneratedValue(strategy = GenerationType.AUTO)
-    private long id;
+@Id
+private Long id;
+@Column
+private String book_name;
+@Column
+private String author_name;
 
-    @Column(nullable = false, unique = true)
-    private String title;
+public Book(){ }
 
-    @Column(nullable = false)
-    private String author;
+public Book(Long id, String book_name, String author_name, String isbn) {
+this.id=id;
+this.book_name=book_name;
+this.author_name=author_name;
+}
+
+public Long getId() {
+return id;
+}
+
+public void setId(Long id) {
+this.id = id;
+}
+
+public String getBook_name() {
+return book_name;
+}
+
+public void setBook_name(String book_name) {
+this.book_name = book_name;
+}
+
+public String getAuthor_name() {
+return author_name;
+}
 
+public void setAuthor_name(String author_name) {
+this.author_name = author_name;
 }
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/bookmanagement/BookController.java b/src/main/java/com/example/bookmanagement/BookController.java
index 20939dbfbf060857c707a23b1d4f37ffaa3ce89f..7462f0ac0d8d826d47c869d10252f6282602dbc1 100644
--- a/src/main/java/com/example/bookmanagement/BookController.java
+++ b/src/main/java/com/example/bookmanagement/BookController.java
@@ -1,6 +1,7 @@
 package com.example.bookmanagement;
 
 import java.util.List;
+import java.util.Optional;
 
 import com.example.bookmanagement.error.BookIdMismatchException;
 import com.example.bookmanagement.error.BookNotFoundException;
@@ -17,48 +18,48 @@ import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
-@RequestMapping("/api/books")
 public class BookController {
 
-    @Autowired
-    private BookRepository bookRepository;
+@Autowired
+BookRepository bookRepository;
 
-    @GetMapping
-    public Iterable<Book> findAll() {
-        return bookRepository.findAll();
-    }
+@GetMapping("/getAllBooks")
+public List<Book> getAllBooks()
+{
+return bookRepository.findAll();
+}
 
-    @GetMapping("/title/{bookTitle}")
-    public List findByTitle(@PathVariable String bookTitle) {
-        return bookRepository.findByTitle(bookTitle);
-    }
+@GetMapping("/getBookById/{id}")
+public Optional<Book> getBookById(@PathVariable Long id)
+{
+  System.out.println(bookRepository.findById(id));
+return bookRepository.findById(id);
+}
 
-    @GetMapping("/{id}")
-    public Book findOne(@PathVariable Long id) {
-        return bookRepository.findById(id)
-          .orElseThrow(BookNotFoundException::new);
-    }
+@PostMapping("/addBook")
+public Book addBook(@RequestBody Book book)
+{
+return bookRepository.save(book);
+}
 
-    @PostMapping
-    @ResponseStatus(HttpStatus.CREATED)
-    public Book create(@RequestBody Book book) {
-        return bookRepository.save(book);
-    }
+@PutMapping("/updateBook/{id}")
+public Book updateBook(@PathVariable Long id, @RequestBody Book bookDetails)
+{
+Optional<Book> book = bookRepository.findById(id);
+Book book_new=book.get();
+book_new.setAuthor_name(bookDetails.getAuthor_name());
+book_new.setBook_name(bookDetails.getBook_name());
+book_new.setIsbn(bookDetails.getIsbn());
+return bookRepository.save(book_new);
 
-    @DeleteMapping("/{id}")
-    public void delete(@PathVariable Long id) {
-        bookRepository.findById(id)
-          .orElseThrow(BookNotFoundException::new);
-        bookRepository.deleteById(id);
-    }
+}
 
-    @PutMapping("/{id}")
-    public Book updateBook(@RequestBody Book book, @PathVariable Long id) {
-        if (book.getId() != id) {
-          throw new BookIdMismatchException();
-        }
-        bookRepository.findById(id)
-          .orElseThrow(BookNotFoundException::new);
-        return bookRepository.save(book);
-    }
+@DeleteMapping("/deleteBook/{id}")
+public void deleteBook(@PathVariable Long id)
+{
+Optional<Book> book=bookRepository.findById(id);
+Book book_new=book.get();
+bookRepository.delete(book_new);
 }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/bookmanagement/BookRepository.java b/src/main/java/com/example/bookmanagement/BookRepository.java
index fb72f6cbb20e674d068b49c09ea0a5a97c09bf8e..b3203617a7d5132cc2f9e46097fa5a770a95ad14 100644
--- a/src/main/java/com/example/bookmanagement/BookRepository.java
+++ b/src/main/java/com/example/bookmanagement/BookRepository.java
@@ -1,8 +1,6 @@
 package com.example.bookmanagement;
+import org.springframework.data.jpa.repository.JpaRepository;
 
-import java.util.List;
+public interface BookRepository extends JpaRepository<Book, Long>{
 
-import org.springframework.data.repository.CrudRepository;
-public interface BookRepository extends CrudRepository<Book, Long> {
-    List<Book> findByTitle(String title);
 }
\ No newline at end of file
diff --git a/src/main/java/com/example/bookmanagement/SimpleController.java b/src/main/java/com/example/bookmanagement/SimpleController.java
index 90a1f481fef7bb4dfbea9b703378bb57a44bfa41..8ea0a416e91b0ef22acd2ddf446f9821b21361f0 100644
--- a/src/main/java/com/example/bookmanagement/SimpleController.java
+++ b/src/main/java/com/example/bookmanagement/SimpleController.java
@@ -2,18 +2,46 @@ package com.example.bookmanagement;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 
 @Controller
 public class SimpleController {
     @Value("${spring.application.name}")
     String appName;
 
-    @GetMapping("/")
+    /*@GetMapping("/")
     public String homePage(Model model) {
         System.out.println("qwerty");
         model.addAttribute("appName", appName);
         return "index";
+    }*/
+    @GetMapping("/")
+    public String root() {
+        return "index";
     }
+
+    /*@GetMapping("/user")
+    public String userIndex() {
+        return "user/index";
+    }*/
+
+    @GetMapping("/login")
+    public String login() {
+        return "login";
+    }
+
+    @PostMapping("/")
+    public String checkCredentials() {
+        if(){
+            return "Book";
+        }else{
+            return "loginError";
+        }
+    }
+
+    /*@GetMapping("/access-denied")
+    public String accessDenied() {
+        return "/error/access-denied";
+    }*/
 }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index fc80b544b153b2a4bf797d314ab6b072cef97c3c..33d882699559fb6906725102334a124b8ce1c362 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -6,7 +6,13 @@ spring.thymeleaf.suffix=.html
 
 spring.application.name=Bootstrap Spring Boot
 
-spring.datasource.driver-class-name=org.h2.Driver
-spring.datasource.url=jdbc:h2:mem:bootapp;DB_CLOSE_DELAY=-1
-spring.datasource.username=sa
-spring.datasource.password=
\ No newline at end of file
+
+## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
+spring.datasource.url = jdbc:mysql://localhost:3306/library
+spring.datasource.username =root
+spring.datasource.password =root
+## Hibernate Properties
+# The SQL dialect makes Hibernate generate better SQL for the chosen database
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
+# Hibernate ddl auto (create, create-drop, validate, update)
+spring.jpa.hibernate.ddl-auto = update
\ No newline at end of file
diff --git a/src/main/resources/database.sql b/src/main/resources/database.sql
new file mode 100644
index 0000000000000000000000000000000000000000..850223c24c4140dbc65bd62135d51d684703d681
--- /dev/null
+++ b/src/main/resources/database.sql
@@ -0,0 +1,13 @@
+DROP TABLE IF EXISTS billionaires;
+
+CREATE TABLE billionaires (
+  id INT AUTO_INCREMENT  PRIMARY KEY,
+  first_name VARCHAR(250) NOT NULL,
+  last_name VARCHAR(250) NOT NULL,
+  career VARCHAR(250) DEFAULT NULL
+);
+
+INSERT INTO billionaires (first_name, last_name, career) VALUES
+  ('Aliko', 'Dangote', 'Billionaire Industrialist'),
+  ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'),
+  ('Folrunsho', 'Alakija', 'Billionaire Oil Magnate');
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 4c289ef2dfe98e45af3212511feb1cb2ff45a861..a1d5307123009f54243632478e9a7572e9bccb35 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -7,10 +7,11 @@
 </head>
 <body>
 <div layout:fragment="content" th:remove="tag">
-    <h1>Hello Spring Security</h1>
-    <p>This is an unsecured page, but you can access the secured pages after authenticating.</p>
+    <h1>Click the link below to login</h1>
+    <p></p>
+    <br>
     <ul>
-        <li>Go to the <a href="/" th:href="@{/}">secured pages</a></li>
+        <li><a href="/login" th:href="@{/login}">link</a></li>
     </ul>
 </div>
 </body>
diff --git a/src/test/java/com/example/bookmanagement/SpringBootBootstrapLiveTest.java b/src/test/java/com/example/bookmanagement/SpringBootBootstrapLiveTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..107c311dd81af91f2ea10ca687dc1fbf4509c19e
--- /dev/null
+++ b/src/test/java/com/example/bookmanagement/SpringBootBootstrapLiveTest.java
@@ -0,0 +1,26 @@
+package com.example.bookmanagement;
+
+import javax.ws.rs.core.Response;
+
+import org.apache.tomcat.util.http.parser.MediaType;
+
+public class SpringBootBootstrapLiveTest {
+
+    private static final String API_ROOT
+      = "http://localhost:8085/api/books";
+
+    private Book createRandomBook() {
+        Book book = new Book();
+        book.setTitle(randomAlphabetic(10));
+        book.setAuthor(randomAlphabetic(15));
+        return book;
+    }
+
+    private String createBookAsUri(Book book) {
+        Response response = RestAssured.given()
+          .contentType(MediaType.APPLICATION_JSON_VALUE)
+          .body(book)
+          .post(API_ROOT);
+        return API_ROOT + "/" + ((Object) response).jsonPath().get("id");
+    }
+}