Coding Implementation
o Admin-Login
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
<script src="js/[Link]" type="text/javascript"></script>
</head>
<body>
<div class="outer">
<div class="container">
<h1>Admin Login</h1>
<form action="[Link]" method="post">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1"
placeholder="Email">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control"
id="exampleInputPassword1" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary btn-lg">Login</button>
</form>
</div>
</div>
</body>
</html>
o Admin Panel
Figure of admin login page
JSP Code of Admin-login
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
<script src="js/[Link]" type="text/javascript"></script>
</head>
<body>
<div class="outer">
<h2>Welcome to LMS</h2>
<a href="[Link]" class="btn btn-danger">Add Book</a>
<a href="[Link]" class="btn btn-danger">Add User</a>
<a href="[Link]" class="btn btn-danger">Issue Book</a>
<a href="[Link]" class="btn btn-danger">Return Book</a>
<a href="[Link]" class="btn btn-danger">Book</a>
<a href="[Link]" class="btn btn-danger">User</a>
</div>
</body>
</html>
o Add-Book
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="outer">
<div class="add">
<h1>Add Book</h1>
<form action="[Link]" method="post">
<div class="form-group">
<label for="ISBN">Enter ISBN</label>
<input type="text" name="isbn" class="form-control" id="ISBN"
placeholder="Enter ISBN">
</div>
<div class="form-group">
<label for="Title">Enter Title</label>
<input type="text" name="title" class="form-control" id="Title"
placeholder="Enter Title">
</div>
<div class="form-group">
<label for="Author">Enter Author</label>
<input type="text" name="author" class="form-control" id="Author"
placeholder="Enter Author">
</div>
<div class="form-group">
<label for="Edition">Enter Edition</label>
<input type="text" name="edition" class="form-control" id="Edition"
placeholder="Enter Edition" >
</div>
<div class="form-group">
<label for="Publication">Enter Publication</label>
<input type="text" name="publication" class="form-control"
id="Publication" placeholder="Enter Publication">
</div>
<div class="form-group">
<label for="quantity">Quantities</label>
<input type="number" name="quantity" class="form-control"
id="quantity" placeholder="Quantities">
</div>
<div class="button">
<input type="submit" value="Add Book" class="btn btn-success">
</div>
</form>
</div>
</div>
</body>
</html>
JSP code of add-book:
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<%
int qnt;
String isbn,edition,title,author,publication;
edition = [Link]("edition");
qnt = [Link]([Link]("quantity"));
isbn = [Link]("isbn");
title = [Link]("title");
author = [Link]("author");
publication = [Link]("publication");
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
//
////step4 execute query
String sql = "Insert into book
values('"+isbn+"','"+title+"','"+author+"','"+edition+"','"+publication+"','"+qnt+"')";
[Link](sql);
[Link]("Record insert successfully");
[Link]();
}catch(Exception e){
[Link](e);
}
%>
</body>
</html>
o ADD-User
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action="[Link]" method="post">
<div class="outer">
<h1>Add User</h1>
<table class="table table-hover">
<tr>
<td><label>User Id</label></td>
<td><input type="text" name="uid"></td>
</tr>
<tr>
<td><label>User Name</label></td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td><label>Gender</label></td>
<td class="rad">
<input type="radio" name="gen" value="M">Male
<input type="radio" name="gen" value="F">Female
</td>
</tr>
<tr>
<td><label>Mobile</label></td>
<td><input type="text" name="mob"></td>
</tr>
<tr>
<td><label>Email</label></td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>
<label>Course</label>
</td>
<td>
<select name="course">
<option>Select Course</option>
<option value="B.A">B.A</option>
<option value="BCA">BCA</option>
<option value="[Link].">[Link].</option>
<option value="MCA">MCA</option>
<option value="[Link]">[Link]</option>
<option value="[Link]">[Link]</option>
<option value="B.E.">B.E.</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" class="btn btn-success" value="Add User">
</td>
<td></td>
</tr>
</table>
</div>
</form>
</body>
</html>
JSP code of add-user
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<%
String name,gender,mobile,email,course,id;
id = [Link]("uid");
name = [Link]("name");
gender = [Link]("gen");
mobile = [Link]("mob");
email = [Link]("email");
course = [Link]("course");
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
//
////step4 execute query
String sql = "Insert into user1
values('"+id+"','"+name+"','"+gender+"','"+mobile+"','"+email+"','"+course+"')";
[Link](sql);
[Link]("Record insert successfully");
[Link]();
}catch(Exception e){
[Link](e);
}
[Link]("[Link]");
%>
</body>
</html>
o Issue-Book
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="outer">
<div class="add">
<h1>Issue Book</h1>
<form action="[Link]" method="post">
<div class="form-group">
<label for="ISBN">Book Id</label>
<input type="text" name="id" class="form-control" id="ISBN"
placeholder="Enter ISBN">
</div>
<div class="form-group">
<label for="Title">User Id</label>
<input type="text" name="uid" class="form-control" id="UserId"
placeholder="Enter User">
</div>
<div class="form-group">
<label for="Author">Issue Date</label>
<input type="date" name="date" class="form-control" id="Author">
</div>
<div class="form-group">
<label for="Edition">Due Date</label>
<input type="date" name="date1" class="form-control" id="Edition" >
</div>
<div class="button">
<a href="[Link]" class="btn btn-success">Issue Book</a>
</div>
</form>
</div>
</div>
</body>
</html>
JSP code of issue book
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<%
int userid = [Link]([Link]("uid"));
String bookid,issue,returnbook;
bookid = [Link]("id");
issue = [Link]("date");
returnbook = [Link]("date1");
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
//
////step4 execute query
String sql = "Insert into issue_book
values('"+bookid+"','"+userid+"','"+issue+"','"+returnbook+"')";
[Link](sql);
[Link]("Record insert successfully");
[Link]();
}catch(Exception e){
[Link](e);
}
%>
</body>
</html>
o Return-Book
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="outer">
<div class="add">
<h1>Return Book</h1>
<form action="[Link]">
<div class="form-group">
<label for="ISBN">Book Id</label>
<input type="text" class="form-control" id="ISBN"placeholder="Enter
ISBN">
</div>
<div class="form-group">
<label for="Title">Student Id</label>
<input type="text" class="form-control" id="Title" placeholder="Enter
Title">
</div>
<div class="form-group">
<label for="Author">Issue Date</label>
<input type="date" class="form-control" id="Author" placeholder="Enter
Author">
</div>
<div class="form-group">
<label for="Edition">Due Date</label>
<input type="date" class="form-control" id="Edition" placeholder="Enter
Edition" maxlength="4">
</div>
<div class="button">
<a href="#" class="btn btn-success">Return</a>
<a href="#" class="btn btn-success">Close</a>
<a href="#" class="btn btn-success">Search</a>
</div>
</form>
</div>
</div>
</body>
</html>
JSP code of return-book
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
int userid = [Link]([Link]("uid"));
String bookid,issue,returnbook;
bookid = [Link]("id");
issue = [Link]("date");
returnbook = [Link]("date1");
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
//
////step4 execute query
String sql = "Insert into return_book
values('"+bookid+"','"+userid+"','"+issue+"','"+returnbook+"')";
[Link](sql);
[Link]("Record insert successfully");
[Link]();
}catch(Exception e){
[Link](e);
}
%>
</body>
</html>
o BOOK-LIST
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
<script src="js/[Link]" type="text/javascript"></script>
<script src="js/[Link]" type="text/javascript"></script>
<title>JSP Page</title>
</head>
<body>
<h1>Book List</h1>
<%
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
ResultSet rs = [Link]("select * from book");
%>
<!--step4 execute query -->
<table border="2" class="table table-hover">
<tr>
<td>ISBN Number</td>
<td>Book Name</td>
<td>Author Name</td>
<td>Edition</td>
<td>Publication</td>
<td>Quantity</td>
</tr>
<%
while ([Link]()) {
%>
<tr>
<td><%=[Link](1)%></td>
<td><%=[Link](2)%></td>
<td><%=[Link](3)%></td>
<td><%=[Link](4)%></td>
<td><%=[Link](5)%></td>
<td><%=[Link](6)%></td>
</tr>
<!-- [Link]([Link](1)+" "+[Link](2)+" "+[Link](3)+"
"+[Link](4)+" "+[Link](5)+" "+[Link](6)); -->
<% }
[Link]();
}catch(Exception e){
[Link](e);
}
%>
</table>
</body>
</html>
o USER
<%@page import="[Link].*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link href="css/[Link]" rel="stylesheet" type="text/css"/>
<link href="Design/[Link]" rel="stylesheet" type="text/css"/>
<script src="js/[Link]" type="text/javascript"></script>
<script src="js/[Link]" type="text/javascript"></script>
</head>
<body>
<h1>User List</h1>
<%
// int isbn,edition,quantity;
// String name,author,publication;
try{
//step1 load the driver class
[Link]("[Link]");
//step2 create the connection object
Connection
con=[Link]("jdbc:mysql://localhost:3306/library","root","Manis
hnishad2@");
//step3 create the statement object
Statement stmt=[Link]();
ResultSet rs = [Link]("select * from user1");
%>
<!--step4 execute query -->
<table border="2" class="table table-hover">
<tr>
<td>Id</td>
<td>Name</td>
<td>Gender</td>
<td>Mobile</td>
<td>E-mail</td>
<td>Course</td>
</tr>
<%
while ([Link]()) {
%>
<tr>
<td><%=[Link](1)%></td>
<td><%=[Link](2)%></td>
<td><%=[Link](3)%></td>
<td><%=[Link](4)%></td>
<td><%=[Link](5)%></td>
<td><%=[Link](6)%></td>
</tr>
<!-- [Link]([Link](1)+" "+[Link](2)+" "+[Link](3)+"
"+[Link](4)+" "+[Link](5)+" "+[Link](6)); -->
<% }
[Link]();
}catch(Exception e){
[Link](e);
}
%>
</table>
</body>
</html>
o CSS code
Style:
*{
margin: 0;
padding: 0;
.outer{
height: 100%;
width: 100%;
/* background-color: yellow;*/
.add h1{
margin-left: 20vw;
.add{
height: 60vw;
width: 100vw;
background: url("../img/[Link]");
background-repeat: no-repeat;
background-size: cover;
margin-top: -15pt;
.add form{
height: 500pt;
width: 600pt;
background-color: transparent;
margin-left: 20vw;
border: 2pt ridge aliceblue;
box-shadow: 6pt 10pt 30pt darkorange;
.add h1 {
margin-left: 43vw;
color: aliceblue;
font-size: 1.2cm;
font-family: sans-serif;
.form-control{
width: 20vw;
.form-group{
display: flex;
justify-content: space-around;
padding-top: 1cm;
.button{
margin-left: 27vw;
display: flex;
justify-content: space-around;
.btn-success{
background-color: transparent;
color: aqua;
height: 9vh;
width: 8vw;
padding-top: 2vh;
.form-group label{
color: aqua;
font-size: 2vw;
font-family: sans-serif;
ADD-Book
*{
margin: 0;
padding: 0;
.outer{
height: 100%;
width: 100%;
/* background-color: yellow;*/
.add h1{
margin-left: 20vw;
.add{
height: 60vw;
width: 100vw;
background: url("../img/[Link]");
background-repeat: no-repeat;
background-size: cover;
margin-top: -15pt;
.add form{
height: 500pt;
width: 600pt;
background-color: transparent;
margin-left: 20vw;
border: 2pt ridge aliceblue;
box-shadow: 6pt 10pt 30pt darkorange;
.add h1 {
margin-left: 43vw;
color: aliceblue;
font-size: 1.2cm;
font-family: sans-serif;
.form-control{
width: 20vw;
.form-group{
display: flex;
justify-content: space-around;
padding-top: 1cm;
.button{
margin-left: 27vw;
display: flex;
justify-content: space-around;
.btn-success{
background-color: transparent;
color: aqua;
height: 9vh;
width: 8vw;
padding-top: 2vh;
}
.form-group label{
color: aqua;
font-size: 2vw;
font-family: sans-serif;
ADD-User:
*{
margin: 0;
padding: 0;
.outer{
height: 100vh;
width: 100vw;
/* background-color: yellow;*/
background: url("../img/[Link]");
background-repeat: no-repeat;
background-size: cover;
margin-top: -15pt;
.outer h1 {
margin-left: 43vw;
color: aliceblue;
font-size: 1.2cm;
font-family: sans-serif;
.table label{
/* color: aliceblue;*/
font-size: 2vw;
margin: 0pt 85pt;
.table{
height: 400pt;
width: 500pt;
margin: 2vw 25vw;
border: 5pt ridge sandybrown;
.rad{
/* color: aliceblue;*/
display: flex;
justify-content: space-evenly;
margin-left: -6vw;
.btn-success{
background-color: transparent;
color: black;
font-size: xx-large;
height: 9vh;
width: 12vw;
margin-left: 20vw;
.table select{
height: 10vh;
width: 13vw;
padding-left: 3vw;
.table-hover{
color: orangered;
}
DATABASE
-- MySQL dump 10.13 Distrib 8.0.31, for Win64 (x86_64)
--
-- Host: [Link] Database: library
-- ------------------------------------------------------
-- Server version 8.0.31
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'
*/;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `book`
--
DROP TABLE IF EXISTS `book`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `book` (
`isbn` varchar(100) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`author` varchar(100) DEFAULT NULL,
`edition` varchar(30) DEFAULT NULL,
`publication` varchar(50) DEFAULT NULL,
`quantity` int DEFAULT NULL,
PRIMARY KEY (`isbn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `emp`
--
DROP TABLE IF EXISTS `emp`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `emp` (
`empid` int NOT NULL,
`name` varchar(50) DEFAULT NULL,
`dept_id` int DEFAULT NULL,
`salary` int DEFAULT NULL,
`age` int DEFAULT NULL,
`join_date` datetime DEFAULT NULL,
PRIMARY KEY (`empid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `issue_book`
--
DROP TABLE IF EXISTS `issue_book`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `issue_book` (
`bookid` varchar(100) DEFAULT NULL,
`userid` varchar(20) DEFAULT NULL,
`issue_date` datetime DEFAULT NULL,
`return_date` datetime DEFAULT NULL,
KEY `bookid` (`bookid`),
KEY `userid` (`userid`),
CONSTRAINT `issue_book_ibfk_1` FOREIGN KEY (`bookid`) REFERENCES `book` (`isbn`),
CONSTRAINT `issue_book_ibfk_2` FOREIGN KEY (`userid`) REFERENCES `user1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `return_book`
--
DROP TABLE IF EXISTS `return_book`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `return_book` (
`bookid` varchar(100) DEFAULT NULL,
`userid` varchar(20) DEFAULT NULL,
`issue_date` datetime DEFAULT NULL,
`return_date` datetime DEFAULT NULL,
KEY `bookid` (`bookid`),
KEY `userid` (`userid`),
CONSTRAINT `return_book_ibfk_1` FOREIGN KEY (`bookid`) REFERENCES `book` (`isbn`),
CONSTRAINT `return_book_ibfk_2` FOREIGN KEY (`userid`) REFERENCES `user1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user1`
--
DROP TABLE IF EXISTS `user1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user1` (
`id` varchar(20) NOT NULL,
`name` varchar(50) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`mobile` char(10) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`course` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-01-20 [Link]