diff --git a/assets/css/reset.css b/assets/css/reset.css
new file mode 100644
index 0000000..b42a2a2
--- /dev/null
+++ b/assets/css/reset.css
@@ -0,0 +1,129 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+hgroup,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol,
+ul {
+ list-style: none;
+}
+blockquote,
+q {
+ quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+ content: "";
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
diff --git a/assets/css/style.css b/assets/css/style.css
new file mode 100644
index 0000000..e02ab1b
--- /dev/null
+++ b/assets/css/style.css
@@ -0,0 +1,870 @@
+* {
+ box-sizing: border-box;
+ --primary-color: #ed1c24;
+ --content-width: 1422px;
+ --gutter: 30px;
+ --collumn: 91px;
+}
+
+html {
+ font-size: 62.5%;
+ font-family: "Arial", sans-serif;
+}
+
+.main-content {
+ width: --content-width;
+ max-width: var(--content-width);
+ margin: 0 auto;
+ border-left: 24px transparent solid;
+ border-right: 24px transparent solid;
+}
+
+h2 {
+ font-size: 3.6rem;
+}
+
+h3 {
+ font-size: 2.4rem;
+ padding-top: 48px;
+ padding-bottom: 16px;
+}
+
+a {
+ text-decoration: none;
+ color: black;
+}
+
+nav .body {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 12px;
+}
+
+nav ul {
+ display: flex;
+ margin-left: 60px;
+ gap: 3em;
+}
+
+nav ul li {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+nav a {
+ vertical-align: middle;
+ font-size: 1.8rem;
+ color: black;
+ font-weight: 700;
+ opacity: 0.87;
+}
+
+nav a.focus {
+ color: var(--primary-color);
+}
+
+nav a:after {
+ content: "";
+ width: 18px;
+ height: 18px;
+ vertical-align: middle;
+ display: inline-block;
+ background: url(/assets/img/arrow_drop_down.svg);
+ background-size: contain;
+ background-repeat: no-repeat;
+ opacity: 0.5;
+}
+
+.ulti .breadcrumb {
+ width: 100%;
+ height: 32px;
+ border-bottom: 1px #ccc solid;
+ overflow-x: auto;
+ scrollbar-width: none;
+}
+
+.ulti li {
+ opacity: 80%;
+ display: flex;
+ align-items: center;
+}
+
+.ulti li:not(:first-child)::before {
+ content: "\\";
+ margin-right: 8px;
+ font-size: 1.6rem;
+}
+
+.ulti a {
+ font-size: 1.6rem;
+ white-space: nowrap;
+}
+
+.header .body {
+ margin-top: 28px;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.header .section1 {
+ width: 23.41%;
+}
+
+.header .section2 {
+ width: 76.59%;
+ /* max-width: calc(1422px - 333px); */
+ border-left: 1px #ccc solid;
+ font-size: 1rem;
+}
+
+.header .search {
+ margin-top: 4.8em;
+ margin-left: 3.2em;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ width: calc(100% - 6.4em);
+ height: 7.2em;
+ border-radius: 2px;
+ background: var(--primary-color);
+}
+
+.header .search-box {
+ position: relative;
+ display: flex;
+ align-items: center;
+ margin-left: 12px;
+ margin-right: 12px;
+ width: 60em;
+ height: 48px;
+ border-radius: 2px;
+ background: white;
+}
+
+.header .search-box span {
+ margin-left: 3.2em;
+ font-size: 1.6rem;
+ opacity: 60%;
+}
+
+.header .search-box .material-symbols-outlined {
+ position: absolute;
+ right: 0.4em;
+}
+
+.header .intro {
+ max-width: 665px;
+ margin: 32px auto 0;
+ border-left: 32px transparent solid;
+ border-right: 32px transparent solid;
+}
+
+.header h1 {
+ font-weight: 700;
+ font-size: 4.8rem;
+}
+
+.header .intro .address {
+ display: block;
+ margin-top: 2em;
+ line-height: 1.5;
+ font-size: 1.6rem;
+}
+
+.header .intro .button {
+ display: inline-block;
+ margin-top: 32px;
+}
+
+.header .notification {
+ font-size: 1rem;
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ gap: 1.2em;
+ margin-top: 3.2em;
+ /* height: 16em; */
+ padding: 3.2em 0;
+ border: 1px #ccc solid;
+ padding-right: 3.2em;
+ box-shadow: -3px 0px 0px 0px var(--primary-color);
+}
+
+.header .notification-info span {
+ display: block;
+}
+.header .notification-heading {
+ font-size: 1.8rem;
+ line-height: 1.5;
+ margin-bottom: 0.66em;
+}
+
+.notification-text {
+ font-size: 1.6rem;
+ line-height: 1.3;
+}
+
+.header .section1 ul li {
+ font-size: 1.6rem;
+ line-height: 1.5;
+ margin-left: 1em;
+ padding: 24px 0;
+ border-bottom: 1px #ccc solid;
+}
+
+.header .section1 ul li a:hover {
+ color: var(--primary-color);
+}
+
+table {
+ display: block;
+ width: 100%;
+ margin-bottom: 96px;
+ overflow-x: auto;
+}
+
+table tr {
+ display: flex;
+ gap: 24px;
+ margin-bottom: 24px;
+ border-bottom: 1px #ccc solid;
+}
+
+table td {
+ width: 144px;
+ height: 76px;
+ border-radius: 4;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 8px;
+}
+
+table td:not(:first-child) {
+ border-left: 4px #ccc solid;
+ background: rgba(35, 35, 35, 0.1);
+}
+
+table td:first-child {
+ border-left: 4px #ffc5c7 solid;
+ background: var(--primary-color);
+}
+
+table td:first-child span {
+ color: #fff1f2;
+}
+
+table td:not(:first-child):hover {
+ background: rgba(204, 204, 204, 0.6);
+}
+
+/* table td.mandatory {
+ opacity: 0.6;
+}
+
+table td.compulsory {
+ opacity: 0.65;
+}
+
+table td.base {
+ opacity: 0.7;
+}
+
+table td.specialized {
+ opacity: 1;
+} */
+
+table td span {
+ display: block;
+ font-size: 1.6rem;
+ text-align: center;
+ color: black;
+ font-weight: 700;
+}
+
+table td span + span {
+ font-weight: 400;
+ opacity: 0.87;
+}
+
+/**/
+
+.introduce {
+ display: block;
+ margin-top: 184px;
+ font-size: 1rem;
+ background: #ccc;
+}
+
+.introduce .carousel {
+ position: relative;
+ width: 100%;
+}
+
+.introduce .intro-list {
+ display: grid;
+ grid-template-columns: repeat(2, 100%);
+ overflow-x: auto;
+ scrollbar-width: none;
+ scroll-behavior: none;
+}
+
+.introduce .slide-btn {
+ z-index: 4;
+ position: absolute;
+ width: 4.8em;
+ height: 4.8em;
+ color: white;
+ background: black;
+ border-radius: 50%;
+ border: none;
+ outline: none;
+ padding: 0;
+ /* cursor: pointer; */
+ top: 50%;
+ transform: translatey(-50%);
+}
+
+.introduce .slide-btn span {
+ font-size: 2.4rem;
+ line-height: 1.33;
+ text-align: center;
+}
+
+.introduce .slide-btn#prev-btn {
+ left: 1.2em;
+}
+
+.introduce .slide-btn#next-btn {
+ right: 1.2em;
+}
+
+.introduce ul {
+ width: 100%;
+ height: 100%;
+}
+
+.introduce ul li {
+ display: block;
+ width: 100%;
+ height: inherit;
+}
+
+.introduce .card {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ max-width: 1089px;
+ max-height: 625px;
+ font-size: 1rem;
+ overflow: hidden;
+}
+
+/* .introduce li:nth-child(1) .card {
+ background: url(/assets/img/ptit-3.jpg);
+ background-size: cover;
+ background-repeat: no-repeat;
+}
+
+.introduce li:nth-child(2) .card {
+ background: url(/assets/img/ptit-4.jpg);
+ background-size: cover;
+ background-repeat: no-repeat;
+} */
+
+.introduce .card img {
+ height: 100%;
+}
+
+.introduce .card-heading {
+ z-index: 1;
+ top: 60%;
+ left: 7%;
+ position: absolute;
+ display: block;
+ /* width: 400px;
+ padding: 16px 24px; */
+ width: 16.6em;
+ padding: 0.67em 1em;
+ font-size: 2.4rem;
+ font-weight: 700;
+ color: white;
+ background-color: var(--primary-color);
+ border: 2px #ff0000 solid;
+ border-radius: 8px;
+}
+
+.introduce .card-info {
+ /* width: 600px; */
+ /* padding: 16px; */
+ width: 33.3em;
+ padding: 0.9em;
+ position: absolute;
+ top: 72%;
+ left: 5%;
+ font-size: 1.8rem;
+ line-height: 1.25;
+ color: white;
+ background: rgba(0, 0, 0, 0.8);
+}
+
+.statictic {
+ display: flex;
+ align-self: center;
+ justify-content: center;
+ width: 100%;
+ margin-top: 9.6em;
+ gap: 8em;
+}
+.statictic span {
+ display: block;
+}
+
+.statictic span.icon {
+ color: var(--primary-color);
+ font-size: 6rem;
+ cursor: default;
+}
+.statictic span.number {
+ font-size: 4rem;
+ font-weight: 700;
+ color: var(--primary-color);
+ margin-bottom: 0.2em;
+}
+
+.statictic span.desc {
+ font-size: 1.6rem;
+ color: black;
+ opacity: 0.87;
+}
+
+.statictic .count,
+.statictic .contributor {
+ display: flex;
+ align-items: center;
+ gap: 1.2em;
+ font-size: 1rem;
+}
+
+.cta {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 1.6em;
+ margin-top: 9.6em;
+ padding-bottom: 9.6em;
+}
+
+.cta .quote {
+ font-size: 3.6rem;
+ text-align: center;
+ word-wrap: break-word;
+ font-weight: 700;
+ color: var(--primary-color);
+}
+
+.cta .message {
+ font-size: 1.8rem;
+ text-align: center;
+ word-wrap: break-word;
+ max-width: 44.4em;
+ line-height: 1.5;
+}
+
+.footer .main-content {
+ border-top: 1px #ccc solid;
+ padding-top: 56px;
+}
+
+.footer .map {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 20px;
+}
+
+.footer .map .menu,
+.footer .map .search,
+.footer .map .help {
+ width: 300px !important;
+}
+
+.footer .map .header {
+ font-size: 1.8rem;
+ font-weight: 700;
+}
+
+.footer .map a {
+ font-size: 1.8rem;
+ line-height: 1.5;
+ color: var(--primary-color);
+}
+
+.footer .map ul {
+ margin-top: 12px;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+}
+
+.footer .map > div:not(:first-child) {
+ padding: 36px 18px;
+ width: 20%;
+}
+
+.footer .map > div:not(:first-child) {
+ border-left: 1px #ccc solid;
+}
+
+.footer .map .search-box {
+ margin-top: 36px;
+ width: calc(23.41% - 28px - 20px);
+ display: flex;
+ align-items: center;
+ height: 48px;
+ margin-right: 28px;
+ border-radius: 4px;
+ border: 1px #ccc solid;
+}
+
+.footer .search-box span {
+ font-size: 1.8rem;
+}
+
+.footer .search-box .icon {
+ font-size: 2.2rem;
+ margin-right: 16px;
+ margin-left: auto;
+}
+
+.footer .search-box .hint {
+ margin-left: 16px;
+}
+
+.footer .connect {
+ margin-top: 48px;
+ border-top: 1px #ccc solid;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.footer .connect .icon {
+ font-size: 1.8rem;
+ color: var(--primary-color);
+}
+
+.footer .copyright {
+ display: flex;
+ align-items: center;
+ margin-top: 16px;
+ margin-bottom: 48px;
+ gap: 4px;
+}
+
+.footer .copyright i {
+ font-size: 1.8rem;
+}
+.footer .copyright span {
+ font-size: 1.8rem;
+}
+
+.view-doc {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ background: rgba(0, 0, 0, 0.5);
+ transform: scale(0);
+}
+
+.view-doc.active {
+ transform: scale(1);
+}
+
+.view-doc.active .content {
+ transform: translate(-50%, -50%) scale(1);
+}
+
+.view-doc .content {
+ position: fixed;
+ top: 50vh;
+ left: 50vw;
+ transform: translate(-50%, -50%) scale(0);
+ transition: transform 800ms ease;
+ width: 60%;
+ /* max-width: 789px; */
+ /* background: #eeeeee; */
+ background: white;
+ height: 540px;
+ /* border-radius: 4px; */
+}
+
+.view-imgbook {
+ margin-left: 20px;
+ width: 100px;
+ padding: 28px 0;
+ height: fit-content;
+}
+
+.view-imgbook img {
+ width: 100%;
+}
+
+.view-document {
+ position: relative;
+ display: flex;
+ align-items: center;
+ gap: 48px;
+ margin-top: 40px;
+ margin-left: auto;
+ margin-right: auto;
+ height: 201px;
+ width: calc(100% - 184px);
+ background: #e4e5e5ad;
+ border-bottom: 3px #ccc solid;
+}
+
+.view-info {
+ display: flex;
+ flex-direction: column;
+}
+
+.view-title {
+ font-size: 2rem;
+ font-weight: 700;
+ padding-bottom: 16px;
+}
+
+.view-number {
+ font-size: 16px;
+ opacity: 0.87;
+}
+
+.view-btn {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ width: fit-content;
+ text-align: center;
+ color: #a41016;
+ font-size: 1.6rem;
+ padding: 4px 8px;
+ /* background-color: var(--primary-color); */
+ border: 2px #a41016 solid;
+ border-radius: 4px;
+ cursor: pointer;
+}
+
+.view-available-document {
+ margin-top: 32px;
+ /* margin-left: 92px; */
+ margin-left: auto;
+ margin-right: auto;
+ width: calc(100% - 192px);
+}
+
+.view-available-document span {
+ display: block;
+ padding-bottom: 24px;
+ font-size: 1.8rem;
+ opacity: 0.6;
+}
+
+.view-available-document .list {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+}
+
+.view-available-document .list li:not(:last-child) {
+ margin-right: 80px;
+}
+
+.view-available-document .list img {
+ width: 48px;
+}
+
+.view-available-document .list li > div {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ align-items: center;
+ justify-content: center;
+}
+
+.view-available-document .list li > div > span {
+ font-size: 1.6rem;
+ opacity: 0.87;
+}
+
+.view-close-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 48px;
+ height: 48px;
+ color: rgba(0, 0, 0, 0.87);
+ position: absolute;
+ z-index: 1;
+ right: 12px;
+ top: 12px;
+ background: none;
+ border: none;
+ cursor: pointer;
+}
+
+.view-close-btn span {
+ font-weight: 700;
+ font-size: 3.8rem;
+ opacity: 0.6;
+}
+
+.view-close-btn:hover {
+ border-radius: 2px;
+ background: rgba(0, 0, 0, 0.1);
+}
+
+@media screen and (max-width: 1300px) {
+ .card-heading {
+ display: none !important;
+ }
+ .card-info {
+ display: none;
+ }
+}
+
+@media screen and (max-width: 1000px) {
+ nav ul {
+ gap: 1.5em;
+ }
+}
+
+@media screen and (max-width: 940px) {
+ nav ul {
+ display: none;
+ }
+
+ .header .section1 {
+ width: 100%;
+ }
+
+ .header .section2 .search {
+ margin-top: 20px;
+ }
+
+ .header .section1 .title {
+ margin-bottom: 8px;
+ }
+
+ .header .section1 .title {
+ border-left: 2px var(--primary-color) solid;
+ border-right: none !important;
+ }
+
+ .header .section1 ul {
+ margin-left: 1em;
+ }
+
+ .header .section1 ul li {
+ display: inline-block;
+ font-size: 1.4rem;
+ margin-left: 4px;
+ margin-bottom: 8px;
+ padding: 4px 8px;
+ background: #eeeeee;
+ border-radius: 4px;
+ border-bottom: 1px #ccc solid;
+ }
+
+ .header .section1 ul li:hover {
+ background: #ed1c24;
+ }
+
+ .header .section1 ul li:hover a {
+ color: white;
+ }
+
+ .header .section2 {
+ border: none;
+ width: 100%;
+ }
+
+ .header .search-box {
+ width: calc(100% - 24px);
+ }
+
+ .footer .map .search-box {
+ width: 100%;
+ margin-right: 0;
+ }
+
+ .statictic {
+ gap: 4em;
+ }
+
+ .view-document {
+ justify-content: center;
+ }
+
+ .view-available-document,
+ .view-document {
+ width: calc(100% - 96px);
+ }
+
+ .view-document .view-imgbook {
+ display: none;
+ }
+
+ .view-available-document .list li {
+ margin-right: 0 !important;
+ }
+
+ .view-available-document .list {
+ justify-content: space-between;
+ gap: 8px;
+ }
+
+ .view-available-document .list span {
+ display: none;
+ }
+
+ .view-title {
+ font-size: 1.8rem;
+ }
+}
+
+@media screen and (max-width: 768px) {
+ .header .section2 .search {
+ width: 100%;
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ .slide-btn {
+ display: none;
+ }
+
+ .statictic {
+ gap: 2em;
+ }
+
+ .statictic .number {
+ font-size: 3rem !important;
+ }
+
+ .view-doc .content {
+ width: 80% !important;
+ }
+}
+
+@media screen and (max-width: 480px) {
+ .view-available-document,
+ .view-document {
+ width: calc(100% - 64px);
+ }
+}
diff --git a/assets/img/arrow_drop_down.svg b/assets/img/arrow_drop_down.svg
new file mode 100644
index 0000000..d6d6a21
--- /dev/null
+++ b/assets/img/arrow_drop_down.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/available-icon1.svg b/assets/img/available-icon1.svg
new file mode 100644
index 0000000..161a888
--- /dev/null
+++ b/assets/img/available-icon1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/available-icon2.svg b/assets/img/available-icon2.svg
new file mode 100644
index 0000000..55f4586
--- /dev/null
+++ b/assets/img/available-icon2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/available-icon3.svg b/assets/img/available-icon3.svg
new file mode 100644
index 0000000..1653eb5
--- /dev/null
+++ b/assets/img/available-icon3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/available-icon4.svg b/assets/img/available-icon4.svg
new file mode 100644
index 0000000..e8af7ba
--- /dev/null
+++ b/assets/img/available-icon4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/bg.jpg b/assets/img/bg.jpg
new file mode 100644
index 0000000..848d640
Binary files /dev/null and b/assets/img/bg.jpg differ
diff --git a/assets/img/bg2.jpg b/assets/img/bg2.jpg
new file mode 100644
index 0000000..42f6e3c
Binary files /dev/null and b/assets/img/bg2.jpg differ
diff --git a/assets/img/book.svg b/assets/img/book.svg
new file mode 100644
index 0000000..202c0da
--- /dev/null
+++ b/assets/img/book.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/cntt.jpg b/assets/img/cntt.jpg
new file mode 100644
index 0000000..e7bd4b0
Binary files /dev/null and b/assets/img/cntt.jpg differ
diff --git a/assets/img/icon-tc.svg b/assets/img/icon-tc.svg
new file mode 100644
index 0000000..ad08856
--- /dev/null
+++ b/assets/img/icon-tc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/icon.svg b/assets/img/icon.svg
new file mode 100644
index 0000000..3c3dce3
--- /dev/null
+++ b/assets/img/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/logo-1.svg b/assets/img/logo-1.svg
new file mode 100644
index 0000000..7c89858
--- /dev/null
+++ b/assets/img/logo-1.svg
@@ -0,0 +1 @@
+PTIT LIBRARY
\ No newline at end of file
diff --git a/assets/img/logo-2.svg b/assets/img/logo-2.svg
new file mode 100644
index 0000000..3ca89d5
--- /dev/null
+++ b/assets/img/logo-2.svg
@@ -0,0 +1 @@
+PTIT LIBRARY
\ No newline at end of file
diff --git a/assets/img/logo-3.svg b/assets/img/logo-3.svg
new file mode 100644
index 0000000..a270a9c
--- /dev/null
+++ b/assets/img/logo-3.svg
@@ -0,0 +1 @@
+PTIT LIBRARY
\ No newline at end of file
diff --git a/assets/img/logo-4.svg b/assets/img/logo-4.svg
new file mode 100644
index 0000000..585181a
--- /dev/null
+++ b/assets/img/logo-4.svg
@@ -0,0 +1 @@
+PTIT LIBRARY
\ No newline at end of file
diff --git a/assets/img/logo.svg b/assets/img/logo.svg
new file mode 100644
index 0000000..0ddf2cc
--- /dev/null
+++ b/assets/img/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/img/ptit-2.png b/assets/img/ptit-2.png
new file mode 100644
index 0000000..aead2ca
Binary files /dev/null and b/assets/img/ptit-2.png differ
diff --git a/assets/img/ptit-3.jpg b/assets/img/ptit-3.jpg
new file mode 100644
index 0000000..6e00f6c
Binary files /dev/null and b/assets/img/ptit-3.jpg differ
diff --git a/assets/img/ptit-4.jpg b/assets/img/ptit-4.jpg
new file mode 100644
index 0000000..e7bd4b0
Binary files /dev/null and b/assets/img/ptit-4.jpg differ
diff --git a/assets/img/ptit.png b/assets/img/ptit.png
new file mode 100644
index 0000000..00b3cdc
Binary files /dev/null and b/assets/img/ptit.png differ
diff --git a/assets/js/script.js b/assets/js/script.js
new file mode 100644
index 0000000..200ac36
--- /dev/null
+++ b/assets/js/script.js
@@ -0,0 +1,115 @@
+const initSlider = () => {
+ const imageList = document.querySelector(".introduce .intro-list");
+ const slideButtons = document.querySelectorAll(".introduce .slide-btn");
+ const scrollbarThumb = document.querySelector(
+ ".introduce .scrollbar-thumb"
+ );
+ const maxScrollLeft = imageList.scrollWidth - imageList.clientWidth;
+
+ slideButtons.forEach((button) => {
+ button.addEventListener("click", () => {
+ const direction = button.id === "prev-btn" ? -1 : 1;
+ const scrollAmount = imageList.clientWidth * direction;
+ console.log(scrollAmount);
+ imageList.scrollBy({ left: scrollAmount, behavior: "smooth" });
+ });
+ });
+
+ imageList.addEventListener("scroll", () => {
+ // updateScrollThumbPosition();
+ const scrollPosition = imageList.scrollLeft;
+ const thumbPosition =
+ (scrollPosition / maxScrollLeft) *
+ (imageList.clientWidth - scrollbarThumb.offsetWidth);
+ console.log("${thumbPosition}px");
+ scrollbarThumb.style.left = `${thumbPosition}px`;
+ });
+};
+
+window.addEventListener("load", initSlider);
+
+var navbar = document.querySelector("nav");
+
+console.log(window.innerWidth + " " + window.innerHeight);
+
+// carousel
+
+window.addEventListener("resize", function () {
+ var carousel = document.querySelector(".introduce ul");
+ var width_carousel = carousel.clientWidth;
+ var height_carousel = width_carousel * 0.573921;
+ carousel.style.height = height_carousel + "px";
+});
+
+window.addEventListener("resize", function () {
+ var item = document.querySelector(".header .search");
+ console.log(item.clientWidth);
+});
+
+var listSubject = document.querySelectorAll("td");
+console.log("len" + listSubject.length);
+for (var i = 0; i < listSubject.length; i++) {
+ var tableData = listSubject[i];
+
+ var a = document.createElement("a");
+ var div = document.createElement("div");
+
+ a.href = "#!";
+ a.style.width = "100%";
+ a.style.height = "100%";
+ div.innerHTML = tableData.innerHTML;
+
+ tableData.innerHTML = "";
+ a.appendChild(div);
+ tableData.appendChild(a);
+
+ div.style.display = "flex";
+ div.style.flexDirection = "column";
+ div.style.alignItems = "center";
+ div.style.justifyContent = "center";
+ div.style.gap = "8px";
+
+ a.style.display = "flex";
+ a.style.alignItems = "center";
+ a.style.justifyContent = "center";
+}
+
+var viewDoc = document.querySelector(".view-doc");
+var viewDocLink = document.querySelector(".view-doc a");
+var aElements = document.querySelectorAll("td a");
+aElements.forEach((a) => {
+ a.addEventListener("click", function () {
+ viewDoc.setAttribute("class", "view-doc active");
+ viewDocLink.href = "#!";
+ var spanElement = a.querySelector("div > span");
+ var name = spanElement.innerHTML;
+ console.log("name = " + name);
+ $.ajax({
+ url: "data.json",
+ dataType: "json",
+ success: function (dataObject) {
+ dataObject.MonHocChung.forEach((monhoc) => {
+ if (name === monhoc.name) {
+ console.log(monhoc.link);
+ viewDocLink.href = monhoc.link;
+ viewDocLink.target = "_blank";
+ }
+ });
+
+ dataObject.CongNgheThongTin.forEach((monhoc) => {
+ if (name === monhoc.name) {
+ console.log(monhoc.link);
+ viewDocLink.href = monhoc.link;
+ viewDocLink.target = "_blank";
+ }
+ });
+ },
+ });
+ });
+});
+
+var viewCloseBtn = document.querySelector(".view-close-btn");
+
+viewCloseBtn.addEventListener("click", function () {
+ viewDoc.setAttribute("class", "view-doc");
+});
diff --git a/cntt.html b/cntt.html
new file mode 100644
index 0000000..363f8ce
--- /dev/null
+++ b/cntt.html
@@ -0,0 +1,447 @@
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ close
+
+
+
+
+
+
+
+
Tài Liệu Tổng Hợp Được
+
+
+
+
+
Giáo Trình
+
+
+
+
+
Bài Giảng
+
+
+
+
Ngân Hàng
+
+
+
+
Đề Thi
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data.json b/data.json
new file mode 100644
index 0000000..24e01af
--- /dev/null
+++ b/data.json
@@ -0,0 +1,18 @@
+{
+ "MonHocChung": [
+ {
+ "name": "Triết học Mác-Lênin",
+ "link": "https://drive.google.com/drive/u/0/folders/1lbRtvAtHlGYV0JxU0i8-0ivR18KkNmIr"
+ }
+ ],
+ "CongNgheThongTin": [
+ {
+ "name": "Kỹ thuật số",
+ "link": "https://drive.google.com/drive/u/0/folders/1lbRtvAtHlGYV0JxU0i8-0ivR18KkNmIr"
+ },
+ {
+ "name": "Học kỳ 4",
+ "link": "https://drive.google.com/drive/u/0/folders/1lbRtvAtHlGYV0JxU0i8-0ivR18KkNmIr"
+ }
+ ]
+}
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..aa36e97
--- /dev/null
+++ b/index.html
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
+
+
PTIT Library
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+