Đồ án tốt nghiệp Danh mục từ viết tắtDANH MỤC TU VIET TAT STT | Từ viết tat Tiéng Anh Giai thich 1 NoSQL Non-Relational SQL Mô hình co sở dir liệu phi quan hệ 2 API Application Programmi
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
DO ÁN TOT NGHIỆP
ĐỀ TÀI:
Giảng viên hướng dẫn : ThS Trịnh Thị Vân Anh
Sinh viên thực hiện : Đồng Thị Thu Dung
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
DO ÁN TOT NGHIỆP
DE TAI:
XAY DUNG WEBSITE BAN PHU KIEN THU CUNG
Giang viên hướng dẫn : ThS Trịnh Thị Van Anh Sinh viên thực hiện : Đồng Thị Thu Dung
Mã sinh viên : B17DCCN152 Lớp : D17HTTT04 Khoá : 2017 — 2022
Hệ : Đại học chính quy
Hà Nội, tháng 12/2021
Trang 3Đồ án tốt nghiệp Nhận xét của giảng viên phản biện
NHAN XÉT ĐỎ ÁN TOT NGHIỆP ĐẠI HỌC
CUA GIÁO VIÊN PHAN BIEN
Tên đồ án: Xây dung website bán phụ kiện thú cưng
Sinh viên thực hiện: Đồng Thị Thu Dung
Lớp: DI7THTTT4
Giáo viên hướng dẫn: Ths Trịnh Thị Vân Anh
NỘI DUNG NHAN XÉT:
I Nội dung báo cáo
Hà Nội, ngày tháng năm 20
GIẢNG VIÊN PHẢN BIỆN
Dong Thị Thu Dung - B17DCCN152 - DI7HTTT4 3
Trang 4Đồ án tốt nghiệp Nhận xét của giảng viên hướng dẫn
NHẠN XÉT ĐỎ ÁN TÓT NGHIỆP ĐẠI HỌC
CUA GIÁO VIÊN HƯỚNG DAN
Giảng viên hướng dan: Ths Trịnh Thị Vân Anh Bộ môn: Công nghệ phan mềmTên đồ án: Xây dựng website bán phụ kiện thú cưng
Sinh viên thực hiện: Đồng Thị Thu Dung
Lớp: DI7THTTT4
NỘI DUNG NHAN XÉT:
I Nội dung báo cáo
Hà Nội, ngày tháng năm 20
GIẢNG VIÊN HƯỚNG DAN
Đồng Thị Thu Dung - B17DCCNI52 - DI7HTTT4 4
Trang 5Đồ án tốt nghiệp Lời cảm ơn
LỜI CẢM ƠN
Với lòng kính trọng và biết ơn sâu sắc, em xin gửi lời cảm ơn chân thành đến cácthầy cô của Học viện Công nghệ Bưu chính Viễn thông, đặc biệt là các thầy cô khoaCông nghệ thông tin 1 đã tận tình giảng dạy và trang bị cho em những kiến thức quýbáu trong suốt quá trình học tập tại trường, tạo điều kiện thuận lợi nhất để em hoàn thành
đồ án
Em xin trân trọng gửi lời cảm ơn đặc biệt đến cô Trịnh Thị Vân Anh đã dànhnhiều thời gian tận tình chỉ bảo, hướng dẫn và đề xuất hướng giải quyết khi em gặp khókhăn, giúp em hoàn thành đồ án đúng tiến độ
Em cũng xin được cảm ơn các anh chị khóa trên đã giúp đỡ em rất nhiều, cảm ơngia đình và bạn bè đã bên cạnh quan tâm, ủng hộ trong suốt quá trình thực hiện đồ án
Dù đã cố găng nhưng do thời gian và kinh nghiệm còn hạn chế nên trong đồ ánchắc chắn còn nhiều điều thiếu sót, em mong nhận được sự góp ý cũng như chỉ bảo tậntình từ các thầy cô
Trang 6Đồ án tốt nghiệp Mục lục
MỤC LỤCLỜI CÁM ƠN 5
MỤC LỤC 6
DANH MỤC TỪ VIET TAT 8
DANH MUC BANG 9
DANH MUC HINH ANH 10
LOI CAM DOAN 12LOI MO DAU 13CHUONG 1 TONG QUAN 14
1.1 Phát biéu bai toán 15
1.2 Muc tiéu 15
1.3 Pham vi dé tai 15
1.4 Đề xuất giải pháp 15
1.5 Các công nghệ sử dụng 16
1.5.1 Giới thiệu về NoSQL 16
1.5.2 Giới thiệu NodeJS và ExpressJS 20 1.5.3 Giới thiệu ReactJS 21
1.5.4 Giới thiệu MongoDB 23
1.5.5 Giới thiệu MongoDB Atlas 24 1.5.6 Giới thiệu Firebase 24
1.6 Kết luận 26
CHƯƠNG 2 : PHAN TÍCH VA THIẾT KE 27
Dong Thị Thu Dung - B17DCCN152 - DI7HTTT4 6
Trang 72.2.1 Thiết kế cơ sé dữ liệu 462.2.3 Xây dựng biểu đồ tuần tự 48
CHƯƠNG 3 CÀI ĐẶT HỆ THÓNG 54
3.1 Yêu cầu hệ thống 55
3.2 Một số chức năng của hệ thống 55
KET LUAN 60
TAI LIEU THAM KHAO 61
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 7
Trang 8Đồ án tốt nghiệp Danh mục từ viết tắt
DANH MỤC TU VIET TAT
STT | Từ viết tat Tiéng Anh Giai thich
1 NoSQL Non-Relational SQL Mô hình co sở dir liệu
phi quan hệ
2 API Application Programming Phương thức trung gian
Interface kết nỗi các ứng dụng
và thư viện khác nhau.
3 RDBMS Relational Database Hệ quản trị cơ sở dữ liệu
Management System quan hé.
4 MVC Model — View — Control Một mẫu kiến trúc phan
mềm
5 REST REpresentational State Transfer | Một kiêu kiến trúc API
6 UI User Interface Giao diện người dùng
7 DOM Document ObJect Model Mô hình Các Đôi tượng
10 | JSON JavaScript Object Notation Một kiêu định dạng dữ
liệu tuân theo một quy
luật nhất định
II | AWS Amazon Web Services Một nền tảng dịch vụ
điện toán đám mây
Dong Thị Thu Dung - B17DCCN152 - DI7HTTT4
Trang 9Đồ án tốt nghiệp Danh mục bảng
DANH MỤC BANG
Bảng 1.1 Bảng so sánh SQL và NoSQL, - - - c1 HH ng ng 19 Bang 2.1 Bang mG ta tac Mhan 0 28 Bang 2.2 Bảng mô tả lớp USer G- G1 0111311189111 9101991112 vn ng ng 43 Bảng 2.3 Bảng mô tả lớp PrOdUCI - - G2 c 1132101183111 1991119 11 9v vn ng re 44 Bảng 2.4 Bảng mô tả lớp Category - G1211 11911 9 11191111 111 HH net 44 Bang 2.5 Bang mô tả lớp OrerÏf€1m - c6 1 21191115111 119111 HH ng nệt 45 Bang 2.6 Bảng mô tả lop OeT - - 2 S1 3112111911191 911 9111 111 11H ng ng ng rệt 45
Bang 2.7 Bảng mô tả đối tượng InfoCustomerOrder 2-2 2+ 2+s+£s+£x+zsscsez 45
Bảng 2.8 Bảng mô tả lớp COmTmeRIE - - 5 c1 3311332192 EEESEESEsEeeserrreeerrere 46
Dong Thị Thu Dung - B17DCCN152 - DI7HTTT4 9
Trang 10Đồ án tốt nghiệp Danh mục hình ảnh
DANH MỤC HÌNH ẢNH
Hình 1.1 NodeJS và ExpresS.JS - - - - + SH ng HH ng 20 Hình 1.2 ReaCLJS - - G9 HT ng HH HH như ện 21 Hình 1.3 MongoIDB - - s + x1 HH TH nh nh 23
Hình 1.4 Dữ liệu của hệ thống được lưu tai MongoDB Atlas -‹ 5+: 24
i0 1a nh 24 Hinh 0 80a 30 8n 25
Hình 2.1 Biểu đồ use case 222v 2 2E tt 29Hình 2.2 Biéu đồ use case khách hàng đăng kí tài khoản ¿2-5 s52 5+: 30Hình 2.3 Biéu đồ use case khách hàng đăng nhập 2-2 2 ++s+£x+£x+zx+eez 31Hình 2.4 Biéu đồ use case khách hàng quản lý thông tin cá nhân - 32Hình 2.5 Biéu đồ use case khách hàng tìm kiếm sản phẩm -2- 2 5+: 34Hình 2.6 Biểu đồ use case khách hàng xem sản phẩm - 2: ¿22+ ++zx++sz 34Hình 2.7 Biểu đồ use case khách hàng quản lý giỏ hàng - 2-5: 35Hình 2.8 Biểu dé use case khách hang quản lý đơn hàng - 2-2 s=sz>s2 37Hình 2.9 Biểu đồ use case quản lý sản phẩm ¿2-2 2 £+S£+E£+E+zEe£Eerxerxsreee 39Hình 2.10 Biéu đồ use case quản ly thay đổi quyền truy cập của tài khoản 41Hình 2.11 Biéu đồ use case quản lý đơn hang ccccsccescescssessessessessessesssseseeseeseesessesees 42Hình 2.12 Biêu đồ lớp pha phân tích - 2-2-2 +¿2++2E++EE++EE++EEzExerxezrxrrrxees 43
Hình 2.13 Lược đồ cơ sở dit liệu của hệ thống - 2 5¿2c++2+++cxz+zxrzreees 41
Hình 2.14 Dữ liệu Authentication trên Firebase - -< 555322 ‡+ccsssesx 48
Hình 2.15 Biéu đồ tuần tự chức năng xem chi tiết sản phẩm -2- 2 5+: 48Hình 2.16 Biéu đồ tuần tự chức năng tìm kiếm sản phẩm -2- ¿552 49Hình 2.17 Biêu đồ tuần tự khách hàng thêm sản phẩm vào giỏ hàng 49Hình 2.18 Biéu đồ tuần tự chức năng khách hàng đặt hàng . : -: 50Hình 2.19 Biêu đồ tuần tự chức năng chỉnh sửa hồ sơ cá nhân - 50Hình 2.20 Biéu đồ tuần tự chức năng khách hàng bình luận - 2-5 51Hình 2.21 Biéu đồ tuần tự chức năng quản lý thêm sản phẩm 2-2: 51Hình 2.22 Biéu đồ tuần tự chức năng quan lý sửa san phẩm -2- 2-55: 52Hình 2.23 Biéu đồ tuần tự chức năng quản lý xóa sản phẩm - : : 52Hình 2.24 Biéu đồ tuần tự chức năng quản lý cập nhật trạng thái đơn hàng 53
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 10
Trang 11Đồ án tốt nghiệp Danh mục hình ảnh
Hình 2.25 Biéu đồ tuần tự chức năng quản lý chỉnh sửa quyền user 53
Hình 3.1 Chức năng đăng nhậtp - - - - SE 2313211121131 151111 1 111111 ket 55 Hình 3.2 Giao diện đăng nhap oe ccccscsssessesseesseeseessecesecseeeseessecsseeseeeseessessaeeseseseeees 55
Hình 3.3 Giao diện trang củ - - - - G1 11v TH ng HH HH ke 56
Hình 3.4 Giao diện chi tiết sản phẩm 2 2 2 +E£SE+EE£EEEEE2EEZEEEeEEerkrrkrrkee 56
Hình 3.5 Giao diện g1ỏ hàng - - c1 111v SH TH TH HH HH 57 Hình 3.6 Giao diện đặt hàng - G1 SE SH TH HH HH HH ng ệt 57 Hình 3.7 Giao diện đặt hàng thành công - - + +11 ng ni ng 57
Hình 3.8 Giao diện quản lý sản phẩm - 2-2 2 £+E+SE+EE£EE£EE+EZEEErkerkerkerree 58Hình 3.9 Giao diện thêm sản phẩm - 2 2 2 £+E£EE£EE#EE£EEEEEEEEZEEEEEEerkrrkrrree 58
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 11
Trang 12Đồ án tốt nghiệp Lời cam đoan
LỜI CAM ĐOAN
Em xin cam đoan rang đồ án tốt nghiệp “Xây dựng website bán phụ kiện thúcưng” là sản phẩm nghiên cứu của bản thân mình dưới sự chỉ dẫn của Ths Trịnh ThịVân Anh Những phần có sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê vànêu rõ ra tại phần tài liệu tham khảo Đồng thời các kết quả trình bày trong đồ án đềumang tính chất trung thực, không sao chép, đạo nhái
Nếu như phát hiện rằng có sự sao chép kết quả nghiên cứu của những đề tài khác
ban thân em xin chịu hoàn toàn trách nhiệm.
Đồng Thị Thu Dung - B17DCCNI52 - DI7HTTT4 12
Trang 13Đồ án tốt nghiệp Lời mé đầu
LỜI MỞ ĐẦU
Trong vài thập niên trở lại đây, khoa học công nghệ đang ngày càng phát triển
kéo theo những biến đổi to lớn về kinh tế, xã hội trên toàn cầu Khoa học công nghệ gầnnhư đã phủ sóng trên tất cả các lĩnh vực đời sống, xã hội của con người Nhu cầu củacon người cũng tăng cao, từ đó rất nhiều các website, phần mềm đã ra đời dé phục vụ
cho việc kinh doanh hiệu quả.
Với xu thế phát triển của xã hội hiện đại, mức sống con người cũng ngày càngđược nâng cao và đồng nghĩa với điều này chính là việc mua sắm của con người cũng
được nâng lên một một tầm mới Trước kia, khi công nghệ chưa phát triển thì việc kinh
doanh mua bán chỉ diễn ra đưới hình thức mua bán trực tiếp trong các chợ truyền thống.Nhưng bây giờ, cùng với sự phát triển mạnh mẽ của mạng Internet, một xu hướng mới
ra đời trong kinh doanh hàng hóa, đó chính mua bán online thông qua các website bán
hàng hoặc hệ thống thương mại điện tử Việc mua săm của khách hàng không chỉ còn
bó hẹp trong các cửa hàng, siêu thị, chợ truyền thong ma có thé chi đơn gian la kết nối
vào một website hay ứng dụng bán hàng trực tuyến Xu hướng này đem lại nhiều sự tiện
ích cho cả khách hàng và những doanh nghiệp, đặc biệt là các doanh nghiệp vừa và nhỏ.
Đặc biệt, khi diễn biến của đại dich COVID-19 vẫn đang rất phúc tap, thì việc mua sắmonline cũng góp phần làm giảm sự lây lan của dịch bệnh
Xuất phát từ sự cần thiết cũng như tiện ích nêu trên, đề tài “Xây dựng websitebán phụ kiện thú cưng” với tên gọi Petshop được em lựa chọn làm đồ án tốt nghiệpHọc viện Công nghệ Bưu chính Viễn thông Nội dung đồ án sẽ được đề cập trong 3
chương dưới đây:
Trang 14Đồ án tốt nghiệp Chương 1: Tổng quan
CHƯƠNG 1 TONG QUAN
Trong chương 1, đồ án trình bày cái nhìn tong quan về dé tài, bao gồm:
e Phát biểu bài toán
Trang 15Đồ án tốt nghiệp Chương 1: Tổng quan
1.1 Phát biểu bài toán
Theo báo cáo của Liên hợp quốc năm 2021, số người dùng Internet trên toàn cầu
là khoảng 4,66 tỷ người và con số sẽ tiếp tục tăng mỗi năm Điều này cũng khang địnhInternet là một thị trường kinh doanh hoàn hảo mà không một doanh nghiệp nào có thé
bỏ qua Việc kinh doanh trên Internet giúp cho các nhà kinh doanh tiết kiệm được đáng
kể các khoản tiền phí đầu tư vào mặt bang, nhân lực, thiết bị phục vụ bán hàng Chúng
ta có thể thấy hầu hết các cửa hàng ngày nay đều có một website bán hàng cho riêngmình Họ đăng tải các sản phẩm lên website của họ cùng những ảnh chụp, mô tả, giá
bán, từ đó khách hàng có thé dé dàng chọn lựa và đặt hàng mà không cần phải lăn tan
hỏi giá Từ đó bài toán về “Xây dựng website bán hàng" đã trở thành một đề tài quenthuộc và không thé thiếu
Hình thức bài toán là xây dựng website bán hàng với đối tượng sử dụng bao gồm:
Khách hang (Customer) và Quản lý (Admin).
1.2 Mục tiêu
- _ Hiểu về các giải pháp xây dựng một website bán hàng
- Xây dựng một website với các chức năng mua hàng cho khách hàng và chức năng
quản lý cho cửa hàng.
1.3 Phạm vi đề tài
Đề tài xây dựng website bán phụ kiện thú cưng được thực hiện trong 3 tháng, từtháng 10/2021 đến tháng 12/2022, trong khuôn khô thời gian thực hiện đồ án tốt nghiệp
Trong giới hạn của đề tài, đồ án tập trung vào việc xây dựng mảng đặt hàng của khách
hàng và quản lý của chủ cửa hàng, phù hợp với các cửa hàng vừa và nhỏ Dữ liệu bao
gồm thông tin sản pham Dữ liệu sau khi được thu thập được tinh chỉnh dé phù hợp với
cau trúc cơ sở dit liệu đã xây dựng
Trang 16Đồ án tốt nghiệp Danh mục hình ảnh
- Tim kiếm sản phẩm, xem chỉ tiết sản phẩm
- Dang ký tài khoản, quản lý hồ sơ cá nhân
- Quan lý gio hang
1.5.1 Giới thiệu về NoSQL [2]
Giới thiệu tổng quan vé NoSQL Database
Dé nói về NoSQL thì trước hết phải nói đến SQL SQL viết tắt của StructuredQuery Language - Ngôn ngữ truy vấn có cấu trúc
Trong nhiều thập kỷ, mô hình đữ liệu chiếm ưu thế về lượng sử dụng để pháttriển ứng dụng là mô hình dir liệu quan hệ, như MySQL, Oracle, DB2, SQL Server vàPostgreSQL NoSQL ban dau là một cơ sở dữ liệu cung cấp cơ chế lưu trữ và truy xuất
dữ liệu Dữ liệu này được mô hình hóa bằng các phương tiện khác với các quan hệ dạng
bảng được sử dụng trong cơ sở dữ liệu quan hệ Những cơ sở dữ liệu như vậy đã ra đời
vào cuối những năm 1960, nhưng không có được biệt danh NoSQL cho đến khi sự gia
tăng pho biến vào đầu thế kỷ XXI Dé phân biệt các cơ sở dit liệu và mô hình dữ liệu
mới nay, NoSQL được đặt ra.
NoSQL là Non-Relational SQL, là một hệ thống quản lý phân phối cho các môhình phi quan hệ, có cấu trúc linh hoạt, API đơn giản và cũng dé dang mở rộng VớiNoSQL, có thể mở rộng dữ liệu một cách thoải mái mà không phải lo lắng về khoá ngoạihay khóa chính, hoặc lo lắng về các công việc như là kiểm tra ràng buộc như hệ quản trị
cơ sở dữ liệu truyền thống Các hệ thống NoSQL cũng đôi khi được gọi là “Not onlySQL” (không chỉ là SQL) dé nhắn mạnh rằng chúng có thê hỗ trợ các ngôn ngữ truy van
dạng như SQL.
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 16
Trang 17Đồ án tốt nghiệp Danh mục hình ảnh
Hãy xem ví dụ về mô hình so đồ dành cho cơ sở dit liệu sách đơn giản:
- _ Trong cơ sở đữ liệu quan hệ, hồ sơ về một cuốn sách thường được phân tách (hay
còn gọi là "chuân hóa") và lưu trữ trong các bảng tách biệt nhau, còn mối quan
hệ được quy định băng các ràng buộc khóa ngoại và khóa chính Trong ví dụ này,
bảng Sách có các cột cho ISBN, Tên sách và Số phiên bản, bảng Tác giả có các
cột cho ID tác giả và Tên tác giả và cuối cùng, bảng Tác giả-ISBN có các cộtcho ID tác giả va ISBN Mô hình quan hệ được thiết kế dé cho phép các cơ sở ditliệu này thực thi tính toàn vẹn tham chiếu giữa nhiều bảng trong cơ sở dữ liệu,
được chuẩn hóa dé giảm dư thừa và thường được tối ưu hóa cho mục đích lưu
trữ.
- Trong cơ sở đữ liệu NoSQL, hồ sơ về một cuốn sách thường được lưu trữ dưới
dạng văn bản JSON Với từng quyền sách, mục, ISBN, Tên sách, Số phiên bản,
Tên tác giả và ID tác giả được lưu trữ dưới dạng thuộc tính trong một văn bản
duy nhất Trong mô hình này, dữ liệu được tối ưu hóa cho việc phát triển trực
quan và khả năng thay đổi quy mô theo chiều ngang
Tai sao lại cần NoSQL?
Sở di người ta phát triển NoSQL xuất phát từ tính đơn giản trong thiết kế, mởrộng theo chiều ngang giúp cho việc kiém soát khả dụng tốt hơn và có khả năng lưu trữ
cực kì lớn, truy cập dữ liệu với tốc độ cao mà không đòi hỏi quá nhiều về năng lực phần
cứng cũng như tài nguyên hệ thống và tăng khả năng chịu lỗi
Cấu trúc dữ liệu được thiết kế cho các cơ sở dit liệu NoSQL khác với cấu trúc dữliệu trong các cơ sở dữ liệu quan hệ, khiến cho nó thao tác nhanh hơn trong NoSQL
Đôi khi cấu trúc dit liệu thiết kế dưới dạng NoSQL được xem là linh hoạt hơn
các bảng cơ sở dữ liệu quan hệ Co sở dữ liệu NoSQL là lựa chọn cực kỳ thích hợp cho
nhiều ứng dụng hiện đại, ví dụ như di động, web và trò chơi đòi hỏi phải sử dụng cơ sở
dữ liệu cực kỳ thiết thực, linh hoạt, có khả năng thay đôi quy mô và hiệu năng cao để
đem đến cho người dùng trải nghiệm tuyệt vời
Một số wu điểm của NoSQL có thể kế đến như:
- Linh hoạt: Cơ sở dit liệu NoSQL thường cung cấp các so đồ linh hoạt giúp công
đoạn phát triển nhanh hơn và có khả năng lặp lai cao hon Mô hình dữ liệu linh
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 17
Trang 18Đồ án tốt nghiệp Danh mục hình ảnh
hoạt biến cơ sở đữ liệu NoSQL thành lựa chọn lý tưởng cho dit liệu không được
tổ chức thành cấu trúc hoặc có cấu trúc chưa hoàn chỉnh
- Kha năng thay doi quy mô: Cơ sở dit liệu NoSQL thường được thiết kế để tăng
quy mô bang cách sử dụng các cụm phan cứng được phân phối thay vì tăng quy
mô bằng cách bổ sung máy chủ mạnh và tốn kém Một số nhà cung cấp dịch vu
đám mây xử lý các hoạt động này một cách không công khai dưới dạng dịch vụ
được quản lý đầy đủ
- _ Hiệu năng cao: Cơ sở dữ liệu NoSQL được tối ưu hóa theo các mô hình đữ liệu
cụ thé và các mẫu truy cập giúp tăng hiệu năng cao hơn so với việc cô gang đạt
được mức độ chức năng tương tự bằng cơ sở dữ liệu quan hệ
- Cue kỳ thiết thực: Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệu cực
kỳ thiết thực được xây dựng riêng cho từng mô hình dữ liệu tương ứng
Các loại NoSQL Database
- Key-value stores: là cơ sở dit liệu NoSQL đơn giản nhất Mỗi mục trong cơ sở
dữ liệu được lưu trữ dưới dạng tên thuộc tính, cùng với giá tri của nó Co sở dữ
liệu khóa-giá trị có khả năng phân mảnh cao và cho phép thay đổi quy mô theochiều ngang ở các quy mô lớn mà các loại hình cơ sở dữ liệu khác không thể làm
được Mô hình dữ liệu khóa - giá trị được dùng cho trò chơi, công nghệ quảng
cáo và đặc biệt thích hợp cho IoT Ví dụ về Key-value stores là Riak, Berkeley
DB, Amazon DynamoDB
- Column-oriented stores: như Cassandra va HBase được tối ưu hóa cho các truy
vấn trên các bộ dữ liệu lớn và lưu trữ các cột đữ liệu cùng nhau, thay vì các hàng
- Graph stores: Mục đích của cơ sở dir liệu đồ thị là giúp việc dựng va chạy ứng
dụng hoạt động với các bộ dữ liệu có kha năng kết nối cao trở nên dé dang Cơ
sở dit liệu đồ thị thường được sử dụng cho các đồ thị tri thức, mạng xã hội, công
cụ đề xuất và phát hiện lừa dao Vi du Graph stores: Neo4J và Giraph,
- Document Oriented databases: ghép từng khóa với cau trúc đữ liệu phức tap
được gọi là tài liệu Tài liệu có thé chứa nhiều cặp khóa - giá trị khác nhau hoặccặp khóa-mảng hoặc thậm chí các tài liệu lồng nhau Trong mã ứng dụng, dữ liệuthường được biểu diễn dưới dạng một đối tượng hoặc văn bản dạng JSON vì đây
là mô hình dữ liệu hiệu quả và trực quan cho các nhà phát triên Cơ sở dữ liệu văn Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 18
Trang 19Đồ án tốt nghiệp Danh mục hình ảnh
bản giúp nhà phát triển dé dang lưu trữ và truy van dữ liệu trong một cơ sở dữ
liệu bằng cách sử dụng cùng một định dạng mô hình văn bản họ sử dụng trong
mã ứng dụng của mình Tính chât linh hoạt, bán câu trúc và phân câp của các văn
bản và cơ sở dữ liệu văn bản cho phép chúng phát triển phù hợp với yêu cầu của
ứng dụng Mô hình văn bản phát huy hiệu quả với danh mục, hồ sơ người dùng
và hệ thống quản lý nội dung, nơi từng văn bản là duy nhất và phát triển theo thời
gian Ví dụ: MongoDB, OrientDB, RavenDB
Sử dụng ngôn ngữ truy vấn không
câu trúc Dữ liệu được lưu trữ
Được tùy biến theo chiều ngang,
mở rộng bằng cách tăng số lượng
máy chủ CSDL.
Ngôn ngữ Query Sử dụng ngôn ngữ Query Không có ngôn ngữ Query
Phân mêm MySql, Oracle, Ms-SQL. MongoDB, Cassandra, HBase,
CouchDB.
Khi nào nên sử dung NoSQL
- Khimé hình RDBMS truyền thống không đủ
Trang 20Đồ án tốt nghiệp Danh mục hình ảnh
- Dữ liệu cần lược dé linh hoạt
- Cac ràng buộc va logic xác thực không bắt buộc phải được thực hiện trong cơ
sở dữ liệu
- _ Ghi nhật ky dit liệu từ các nguồn được phân phối
- Nén được sử dung dé lưu trữ dữ liệu tạm thời như giỏ mua hàng, danh sách
mong muôn va dir liệu phiên
1.5.2 Giới thiệu NodeJS và ExpressJS [3]
nedes
-xXoress
Hinh 1.1 NodeJS va ExpressJS Giới thiệu NodeJS
- NodeJS là một ma nguồn mở, đa nền tảng, chạy trên môi trường JavaScript, được
xây dựng trên V8 JavaScript engine của Chrome - V8 thực thi mã JavaScript bên
ngoài trình duyệt Nó được tạo ra vào năm 2009 đi kèm với một lợi thế chính NodeJS cho phép thực hiện lập trình bất đồng bộ
GO chế độ đồng bộ thực thi từng dòng và tiến hành thực thi dòng tiếp theo khi
dòng hiện tại đã thực thi xong.
- _ Khi bất đồng bộ thực thi tat cả dong code cùng một lúc
- NodeJS là một nền tang được xây dựng trên JavaScript runtime của Chrome với
mục đích xây dựng các ứng dụng mạng nhanh chóng và có thé mở rộng được một
cách dễ dàng hơn NodeJS sử dụng mô hình I/O lập trình theo sự kiện,
non-blocking, do đó nodeJS khá gọn nhẹ và hiệu quả - công cụ hoàn hao cho các ứng
dụng chuyên sâu về dữ liệu theo thời gian thực chạy trên các thiết bị phân tán
- NodeJS là môi trường runtime mã nguồn mở đa nền tang, được sử dụng dé phát
triển các ứng dụng mạng và ứng dung server-side Các ứng dụng NodeJS được
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 20
Trang 21Giới thiệu ExpressJS
ExpressJS là một Framework nhỏ, nhưng linh hoạt được xây dựng trên nền tảngcủa NodeJS Nó cung cấp các tính năng mạnh mẽ dé phát triển web hoặc mobile.ExpressJS được sử dụng trong thiết kế và xây dựng các ứng dụng web một cách
đơn giản và nhanh chóng.
Về các package hỗ trợ: ExpressJS có vô số các package hỗ trợ
Về hiệu năng: ExpressJS cung cấp thêm về các tính năng dé lập trình viên lập
trình tốt hơn Chir không làm giảm tốc độ của NodeJS
Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụng
ExpressJS như một core function, chang han: SailsJS, MEAN
ExpressJS hỗ trợ việc phat trién ứng dụng theo mô hình MVC, mô hình phô biến
cho việc lập trình web hiện nay.
Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức va tái sử dụng code.
Định nghĩa routes và các request method đến server một cách dé dàng
Hỗ trợ REST API.
1.5.3 Giới thiệu ReactJS [4]
Hình 1.2 ReactJS
ReactJS là thư viện JavaScript được sử dụng để xây dựng các thành phần UI có
thể tái sử dụng Theo tài liệu chính thức của ReactJS, sau đây là định nghĩa: ReactJS là
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 21
Trang 22Đồ án tốt nghiệp Danh mục hình ảnh
một thư viện dé xây dựng giao diện người dùng có thê kết hợp Nó khuyến khích việc
tạo ra các thành phan giao diện người dùng có thé tái sử dụng, hiển thị dit liệu thay đổi
theo thời gian Rất nhiều người sử dụng ReactJS làm V (View) trong mô hình MVC
ReactJS trừu tượng hóa DOM khỏi bạn, cung cấp mô hình lập trình đơn giản hơn và
hiệu suất tốt hơn ReactJS cũng có thể hién thị trên máy chủ bằng Node va nó có thécung cấp năng lượng cho các ứng dụng gốc bằng React Native ReactJS triển khai luồng
dữ liệu phản ứng một chiều, điều này giúp giảm bớt phần soạn sẵn và dễ lý luận hơn so
với ràng buộc đữ liệu truyền thống.
ReactJS là một thư viện UI phát triển tại Facebook đề hỗ trợ việc xây dựng nhữngthành phần (components) UI có tính tương tác cao, có trạng thái và có thê sử dụng lạiđược ReactJS được Facebook phát triển và sử dụng và www.instagram.com được viết
hoàn toàn trên ReactJS.
Một trong những điểm hấp dẫn của ReactJS là thư viện này không chỉ hoạt độngtrên phía client, ma còn được render trên server và có thể kết nối với nhau ReactJS sosánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít
thay đối nhất trên DOM
Uu điểm của React
- ReactJS cực kì hiệu quả: ReactJS tạo ra cho chính nó DOM ảo — nơi mà các
component thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rất nhiều.Reactjs cũng tính toán những thay đổi nào cần cập nhật lên DOM và chỉ thựchiện chúng Điều này giúp ReactJS tránh những thao tác cần trên DOM mà nhiều
chi phí.
- ReactJS giúp việc viết các đoạn code JS dé dàng hơn: Nó dùng cú pháp đặc biệt
là JSX (Javascript mở rộng) cho phép ta trộn giữa code HTML va Javascript Ta
có thé thêm vào các đoạn HTML vào trong hàm render mà không cần phải nốichuỗi Đây là đặc tinh thú vị của ReactJS Nó sẽ chuyên đổi các đoạn HTML
thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX
- Render tang server: Một trong những van dé với các ứng dụng đơn trang là tối
ưu SEO (Tối ưu hóa công cụ tìm kiếm) và thời gian tải trang Nếu tất cả việc xây
dựng và hién thị trang đều thực hiện ở client, thì người dùng sẽ phải chờ cho trang
được khởi tạo và hiên thị lên Điêu này thực tê là chậm Hoặc nêu gia sử người Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 22
Trang 23Đồ án tốt nghiệp Danh mục hình ảnh
dùng vô hiệu hóa Javascript thì sao? Reactjs là một thư viện component, nó có
thé vừa render ở ngoài trình duyệt sử dụng DOM và cũng có thé render bằng các
dữ liệu lưu trên bảng không cần phải tuân theo một dạng cấu trúc nhất định nào Chính
do cau trúc linh hoạt này nên MongoDB có thé được dùng dé lưu trữ các dữ liệu có cầu
trúc phức tạp và đa dạng và không có định (hay còn gọi là Big Data)
Lợi thé của MongoDB so với các cơ sở dữ liệu dạng quan hệ (RDBMS):
Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document, trong đó một
Collection giữ các Document khác nhau Số trường, nội dung và kích cỡ củaDocument này có thể khác với Document khác
Cấu trúc của một đối tượng là rõ ràng
Không có các Join phức tạp.
Khả năng truy vấn sâu hơn MongoDB hỗ trợ các truy vấn động trên các
Document bởi sử dụng một ngôn ngữ truy vẫn dựa trên Document mà mạnh mẽ
Trang 24Đồ án tốt nghiệp Danh mục hình ảnh
Một số đặc điểm của MongoDB:
- Kho lưu định hướng Document: Dữ liệu được lưu trong các tài liệu kiểu JSON
- Lap chỉ mục trên bất kỳ thuộc tính nào.
- Cac truy vấn đa dạng
- Cap nhật nhanh hơn.
1.5.5 Giới thiệu MongoDB Atlas
MongoDB Atlas là cloud database của MongoDB được ra mắt vào năm 2016
chạy trên AWS, Microsoft Azure va Google Cloud Platform.
Hình 1.4 Dữ liệu của hệ thống được lưu tai MongoDB Atlas
1.5.6 Giới thiệu Firebase [6]
Firebase là một nền tang sở hữu bởi google giúp chúng ta phat triển các ứng dụng
di động và web Họ cung câp rât nhiêu công cụ và dịch vụ tiện ích đê phát triên ứng Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 24
Trang 25Với firebase, bạn có thể tạo ra những ứng dụng real-time như app chat, cùngnhiều tính năng như xác thực người dùng, Cloud Messaging, Ban có thé dùng firebasegiống như phần backend của app.
Các dịch vụ của firebase hoàn toàn miễn phí, tuy nhiên bạn cần phải trả thêm tiền
nếu muốn nâng cấp lên Điều này bạn nên cân nhắc nếu muốn xây dựng một ứng dụnglớn sử dụng phần backend là firebase, vì cái giá khi muốn nâng cấp còn khá đắt đỏ so
với việc xây dựng backend truyền thống
Firebase Cloud Storage
Firebase Cloud Storage là một không gian lưu trữ dữ liệu, nó giống như một chiếc
6 cứng Ban có thể upload và download các loại file bạn muốn Đó có thé là một file
anh, hay file văn bản, zip, Với Firebase cloud storage, chung là nơi lưu trữ những
file, đó có thê là những hình ảnh về một mặt hàng chang hạn Bạn có thé lưu trữ link tới
Đồng Thị Thu Dung - B17DCCN152 - DI7HTTT4 25
Trang 27Đồ án tốt nghiệp Chương 2: Phân tích và thiết kế
CHƯƠNG 2 : PHAN TÍCH VA THIẾT KE
Trong chương 3, chúng ta sẽ đi vào phần phân tích và thiết kế hệ thống chỉ tiếtcho chương trình Nội dung chương bao gồm:
Trang 28Đồ án tốt nghiệp Chương 2: Phân tích và thiết kế
1 Khách hang Người sử dung website dé đặt hang
Đồng Thi Thu Dung - B17DCCN152 - DI7HTTT4 28
Trang 29Đồ án tốt nghiệp Chương 2: Phân tích và thiết kế
Thêm SP vào giỏ hang
Xóa SP khỏi giỏ hàng ích hàng đăng ART Giản lý đăng nhĩ
- <<Extend>>
Đặt hàng.
leo dõi trạng thái dor
Quan lý đơn hang
extension points extension points
Quan lý tai khoản.
Ẳ ay đổi quyền truy
cập của tài khoản
<<Extend>>
extension points
Thay đối quyền truy cập của tai khoảp
Xem danh sách tài khoải
Mp
‘extension points Thêm sản phẩm.
(Cập nhật trang thái đơn hàng
Hình 2.1 Biểu đồ use case
Trang 30Đồ án tốt nghiệp Chương 2: Phân tích và thiết kế
Hinh 2.2 Biéu dé use case khach hang dang ki tai khoan
Tén use case Dang ky
Tac nhan chinh Khách hàng
Điều kiện Khách hàng chưa đăng nhập
Đảm bảo tối thiểu Khách hàng được phép đăng ký lại
Đảm bảo thành công Khách hàng đăng ký tài khoản thành công
Chuỗi sự kiện chính
1 Khách hàng chọn chức năng đăng ký ở giao diện trang chủ của website
2 Hệ thống hiển thị form đăng ký với các trường: Email, Họ tên, password,
confirm password.
3 Khách hàng nhập thông tin vào các trường va bam nút Đăng ký
4 Hệ thống kiểm tra và lưu thông tin vào cơ sở dữ liệu và thông báo đăng ký
thành công.
Ngoại lệ
3.1 Khách hàng nhập không đủ thông tin
3.1.1 Hệ thống báo lỗi phải nhập đủ các trường thông tin
Đồng Thị Thu Dung - B17DCCNI52 - DI7HTTT4 30