Mô tả bài toán Trong thời buổi công nghệ thông tin, và Internet bùng nổ như hiện nay, việctriển khai và sử dụng website trong lĩnh vực quản lý nhà hàng khách sạn đã giúptối ưu hóa và giả
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: ThS Huỳnh Hồ Thị Mộng Trinh
Nhóm thực hiện: 19522167 – Trương Xuân Tâm
19522025 – Võ Đông Phú
Trang 2MỤC LỤC
Trang 4CHƯƠNG 8: TÀI LIỆU THAM KHẢO 64
Hi vọng với sự chỉ bảo và góp ý từ cô, nhóm đề tài có thể tiếp tục phát triển đểứng dụng ngày càng được mở rộng và phục vụ được tốt hơn cho người dùng.Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song khôngthể tránh khỏi những hạn chế, thiếu sót Chúng em mong rằng sẽ nhận đượcnhững đóng góp và nhận xét chân thành từ cô, các bạn sinh viên và người dùngtrong quá trình sử dụng phần mềm để phần mềm ngày càng hoàn thiện hơnnữa Mọi đóng góp xin vui lòng gửi về email: 19522167@gm.uit.edu.vn hoặc19522025@gm.uit.edu.vn
Mỗi ý kiến đóng góp của cô và các bạn sẽ là một nguồn động lực to lớn đối với
Trang 5chúng em để chúng em có thể cải thiện phần mềm tốt hơn và xây dựng nhữngphần mềm hữu ích đối với người dùng hơn nữa.
Chúng em xin trân trọng cảm ơn
Thành phố Hồ Chí Minh, ngày 10 tháng 12 năm 2022
Chương 1 - TỔNG QUAN ĐỀ TÀI
1.1 Mô tả bài toán
Trong thời buổi công nghệ thông tin, và Internet bùng nổ như hiện nay, việctriển khai và sử dụng website trong lĩnh vực quản lý nhà hàng khách sạn đã giúptối ưu hóa và giảm được nhân công cũng như các công việc phức tạp như tính toán,trích xuất và xử lý nhanh hơn giúp người dùng tiết kiệm thời gian và mang lại cho
họ cảm giác trải nghiệm tuyệt vời hơn
Việc xây dựng website quản lý thông tin nhà hàng sẽ hỗ trợ truyền thông,quảng bá thương hiệu Trang web là nơi thể hiện những điều tốt đẹp diễn ra trongnhà hàng, các hình ảnh video hay các tin tức sự kiện được cập nhật liên tục sẽ đemnhà hàng gần gũi hơn với những người đang sử dụng công nghệ Qua đó, nhà hàng
sẽ tăng số lượng thực khách và tạo ra lợi nhuận lớn, tăng cường mạng lưới kháchhàng qua tương tác online Các dịch vụ đặt món ăn, đặt bàn, thanh toán online sẽlàm cho khách hàng cảm thấy hứng thú hơn cũng như tiết kiệm được rất nhiều thờigian Qua website khách hàng sẽ được nhân viên hệ thống tư vấn tận tình và nhanhchóng Thông qua website việc quản lý nhà hàng sẽ dễ dàng và đạt được hiệu quảcao Các công cụ đo lường, biểu đồ phát triển sẽ giúp người quản lý kiểm soátđược tất cả mọi vấn đề trong nhà hàng Ngoài ra xây dựng website quản lý thông
Trang 6tin nhà hàng sẽ tiết kiệm được khoảng chi phí, nguồn nhân lực Như vậy, sẽ tăngthêm tiềm lực cạnh tranh trong ngành.
Chính vì vậy nhóm em tìm hiểu để triển khai ứng dụng website quản lýthông tin nhà hàng Để tạo kết nối với khách hàng và dễ dàng trong quản lý thu chi,quản lý nhân viên, quản lý các món ăn thức uống Thúc đẩy sự phát triển của nhàhàng, hiện đại trong việc quản lý
Trong quá trình xây dựng ứng dụng website quản lý thông tin nhà hàng.Nhóm chúng em đã triển khai lên AWS (amazon web services) Người dùng có thểtruy cập vào hệ thống bất kỳ ở đâu có internet để sử dụng các chức năng của nhàhàng
1.2 Yêu cầu đặt ra
- Một số yêu cầu nhóm đặt ra khi phát triển ứng dụng:
+ Tính tiện dụng: ứng dụng phải thân thiện với người dùng, dễ dàng tiếp cậnvới mọi lứa tuổi
+ Tính đúng đắn: thông tin đưa lên phải được xác thực kĩ về độ chính xác, ứngdụng chạy không lỗi
+ Tính thích nghi: ứng dụng chạy được trên nhiều nền tảng trình duyệt webkhác nhau
+ Tính tiến hoá: ứng dụng phải dễ dàng phát triển thêm tính năng mà khôngảnh hưởng đến các tính năng đã phát triển trước đó
+ Tính bảo trì: ứng dụng có thể thay đổi một số chức năng hoặc cập nhật thêmthông tin một cách tiện lợi nhất
+ Tính tương tác: tạo ra được một môi trường tương tác tốt giữa hệ thống vàngười dùng
Trang 8Chương 2 - PHÂN TÍCH ĐẶC TẢ YÊU CẦU
2.1 Sơ đồ usecase
Hình 2.1 Sơ đồ usecase hệ thống
Trang 92.1.1 Use Case khách hàng
Hình 2.1.1 Usecase khách hàng
2.1.2 Use Case Admin
Trang 10Hình 2.1.2 Use Case Admin
Trang 112.1.4 Danh sách các Use-case
Bảng 3 2 Danh Sách các Use-case
ST
T
Tên Use-case Ý nghĩa/Ghi chú
3 Đăng ký tài khoản Đăng ký tài khoản mới
5 Xem thông tin của cửa hàng Xem thông tin món ăn thức uống, các
chương trình khuyến mãi, thông tin, giới thiệu website…
6 Xem menu món ăn Xem menu các món ăn trong cửa hàng
14 Cập nhật thông tin món ăn Admin cập nhật thông tin món ăn
16 Xóa bàn ăn Admin xóa bàn ăn ra khỏi hệ thống
17 Cập nhật thông tin bàn ăn Admin cập nhật thông tin bàn ăn
Trang 1218 Quản lý đặt bàn Xem thông tin chi tiết khách hàng đặt
bàn
2.1.5 Đặc tả Use-case
Use-Case “Đăng nhập”
Bảng 3 3 Use-case đăng nhập
Tóm tắt - Use-case được sử dụng để đăng nhập vào hệ thống Chỉ
khi đăng nhập được vào hệ thống thì người dùng mớiđược cấp quyền sử dụng các chức năng nghiệp vụ của hệthống
- Use-case bắt đầu khi hệ thống được kích hoạt và chưađăng nhập dưới quyền sử dụng của bất kỳ người dùngnào Hoặc khi người dùng chọn đăng xuất ra khỏi hệthống
Dòng sự kiện chính 1 Người dùng nhập thông tin tài khoản đăng nhập, bao
gồm tên đăng nhập và mật khẩu đăng nhập
2 Hệ thống kiểm tra thông tin đăng nhập chính xác
3 Hiển thị trang thông tin quản lý công việc, quản lý chitiêu cá nhân
Dòng sự kiện phụ 1 Hệ thống kiểm tra thông tin đăng nhập không chính
xác
2 Hiển thị báo lỗi trên màn hình đăng nhập
Các yêu cầu đặc biệt - Có kết nối internet
Tiền điều kiện
(pre-condition)
- Trạng thái chưa đăng nhập
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
(post-condition)
- Hệ thống rơi vào một trong hai trạng thái:
Trang 13+ Đã đăng nhập: sẵn sàng làm việc với người dùng đãđăng nhập.
+ Chưa đăng nhập: sẵn sàng cho người dùng đăng nhậplại
- Hệ thống sẵn sàng cho các thao tác từ người dùng
Use-Case “Đăng xuất”
Bảng 3 4 Use-case đăng xuất
Tóm tắt - Use-case được sử dụng để đăng xuất ra khỏi hệ thống
Sau khi đăng xuất, hệ thống sẽ kết thúc phiên làm việccủa người dùng, dữ liệu và phiên làm việc của ngườidùng sẽ được xóa bỏ tại local
- Use-case bắt đầu khi hệ thống đang ở trạng thái “Đãđăng nhập” và người dùng muốn kết thúc phiên làm việc
và chọn đăng xuất ra khỏi hệ thống
Dòng sự kiện chính 1 Hệ thống kết thúc phiên làm việc với người dùng, hệ
thống chuyển sang trạng thái “Chưa đăng nhập”
2 Hệ thống xóa toàn bộ dữ liệu của người dùng tronglocal (thiết bị đang sử dụng)
3 Hệ thống quay trờ về màn hình đăng nhập
Dòng sự kiện phụ - Hệ thống gặp lỗi trong quá trình xóa dữ liệu Hệ thống
sẽ báo lỗi cho người dùng, tiếp tục đăng xuất ra khỏi hệthống Dữ liệu chưa được xóa hết sẽ được làm mới trongquá use-case đồng bộ dữ liệu
Các yêu cầu đặc biệt Không có
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “Đã đăng nhập”
Hậu điều kiện - Hệ thống sẽ rơi vào trạng thái “Chưa đăng nhập”
Trang 14(post-condition) - Dữ liệu người dùng trong hệ thống được làm mới.
- Hệ thống sẵn sàng cho các thao tác từ người dùng
Use-Case “Đăng ký tài khoản”
Bảng 3 5 Use-case đăng ký tài khoản
Tóm tắt - Use-case được sử dụng để tạo mới thông tin người
dùng hệ thống, đăng ký tài khoản sử dụng hệ thống
- Use-case bắt đầu khi hệ thống đang ở trạng thái “Chưađăng nhập” và người dùng chọn khởi tạo tài khoản hệthống
Dòng sự kiện chính 1 Người dùng nhập thông tin đăng ký: thông tin cá nhân
được yêu cầu, thông tin tài khoản đăng nhập
2 Hệ thống kiểm tra tính hợp lệ thông tin đăng ký củangười dùng
3 Hệ thống xác định thông tin đăng ký hợp lệ
4 Hệ thống đăng ký thông tin người sử dụng, và cấpquyền cho người dùng vừa đăng ký
5 Hệ thống thông báo người dùng đã được đăng kýthành công cho người dùng
6 Hệ thống hiển thị trang chủ của cửa hàng
Dòng sự kiện phụ 1 Hệ thống xác định thông tin đăng ký không hợp lệ:
trùng lắp, không chính xác, v.v…
2 Hệ thống báo lỗi ra màn hình đăng ký
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “Chưa đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
(post-condition)
- Hệ thống sẽ rơi vào trạng thái “đã đăng nhập”
- Hệ thống sẵn sàng cho các thao tác từ người dùng
Trang 15Use-Case “Thêm account”
Bảng 3 8 Use-case thêm account
Tóm tắt - Use-case được sử dụng để thêm thông tin một tài khoản
Dòng sự kiện phụ 1 Hệ thống xác định thông tin nhân viên không hợp lệ
2 Thông báo ra màn hình thông tin không hợp lệ
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
Dòng sự kiện chính 1 Quản lý điền thông tin của bàn ăn mới vào hệ thống
2 Hệ thống kiểm tra tính hợp lệ thông tin
Trang 164 Hệ thống thêm thông tin bàn ăn vào cơ sở dữ liệu nếuhợp lệ.
Dòng sự kiện phụ 1 Hệ thống xác định thông tin bàn ăn không hợp lệ
2 Thông báo ra màn hình thông tin không hợp lệ
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
(post-condition)
- Hệ thống sẵn sàng cho các thao tác từ người dùng
Use-Case “Xem món ăn”
Bảng 3 10 Xem món ăn
Tóm tắt - Use-case được sử dụng để xem danh sách món ăn hiện có
- Use-case bắt đầu khi ở trạng tháí “đã đăng nhập” và vàotrang danh sách món ăn
Dòng sự kiện chính 1 Người dùng đăng nhập vào hệ thống
2 Hệ thống kiểm tra tính hợp lệ thông tin
3 Xác nhận thông tin hợp lệ
4 Người dùng chọn vào “List food “ hoặc xem menu hiện
có trên thanh header
Dòng sự kiện phụ
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
(post-condition)
- Hệ thống sẵn sàng cho các thao tác từ người dùng
Use-Case “Thêm món ăn”
Trang 17Dòng sự kiện chính 1 Quản lý điền thông tin của món ăn vào hệ thống
2 Hệ thống kiểm tra tính hợp lệ thông tin
3 Xác nhận thông tin hợp lệ
4 Hệ thống thêm thông tin món ăn vào cơ sở dữ liệu nếuhợp lệ
Dòng sự kiện phụ 1 Hệ thống xác định thông tin món ăn không hợp lệ
2 Thông báo ra màn hình thông tin không hợp lệ
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
Dòng sự kiện chính 1 Nhân viên điền thông tin đặt món vào hệ thống
2 Hệ thống kiểm tra tính hợp lệ thông tin
3 Xác nhận thông tin hợp lệ
Trang 184 Hệ thống thêm thông tin đặt món vào cơ sở dữ liệu nếuhợp lệ.
Dòng sự kiện phụ 1 Hệ thống xác định thông tin đặt món không hợp lệ
2 Thông báo ra màn hình thông tin không hợp lệ
Các yêu cầu đặc biệt - Có kết nối internet.
Tiền điều kiện
(pre-condition)
- Hệ thống đang ở trong trạng thái “đăng nhập”
- Hệ thống đã được kết nối thành công tới server
Hậu điều kiện
(post-condition)
- Hệ thống sẵn sàng cho các thao tác từ người dùng
2.1.6 COMPONENT DIAGRAM, DEPLOYMENT
2.1.6.1 Component diagram
Trang 19Hình 3 2 Sơ đồ triển khai của hệ thống
2.1.6.2 Deployment diagram
Hình 3 3 Sơ đồ thành phần của hệ thống
Trang 20Chương 3 : THIẾT KẾ KIẾN TRÚC DỮ LIỆU
3.1 Kiến trúc tổng thể của hệ thống
Hình 3.1 Mern stack Development
MERN Stack :MERN stack là nguyên bộ combo open source các công nghệ đềuliên quan đến Javascript là cũng hot nhất hiện nay: MongoDB, ExpressJS,
React/React Native, NodeJS Người ta dùng MERN stack để xây dựng React
Universal App
3.2 Kiến trúc mô hình
Mô hình MVC (Model – View – Controller) là một trong những mô hình kiếntrúc ứng dụng phổ biến nhất Ban đầu mô hình này được áp dụng chủ yếu ở cácứng dụng desktop, nhưng sau này ý tưởng về mô hình MVC được ứng dụng chocác nền tảng khác như Web
Trang 21Hình 3.2.1 Mô Hình MVC
3.2.1 Cấu trúc mô hình MVC
Tầng xử lý – Controller
Xử lý logic của ứng dụng, là cầu nối giữa tầng View và Model Hay nói một
cách cụ thể, Controller sẽ nhận yêu cầu được gửi từ View và thực hiện xử lí yêucầu, truy vấn hoặc thao tác dữ liệu lên tầng Model Sau khi xử lý xong, kết quả sẽđược trả về lại cho tầng View
Tầng logic dữ liệu – Model
Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu để cung
cấp và quản lý mô hình và các thao tác lên dữ liệu Thông thường, tầng Model sẽkết
nối với một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu
Tầng giao diện – View
Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng (user)
và ứng dụng (application)
Trang 223.2.2 Mô hình MVC trong ứng dụng Web
Với sự phát triển của các công nghệ xây dựng web ở cả Frontend và Backend,các nhà phát triển có thể xây dựng và phát triển ứng dụng web một cách độc lậpnhưng vẫn đảm bảo được tính kiến trúc của ứng dụng
Hình 3.2.2 Mô Hình MVC trong ứng dụng Web
− Tầng giao diện người dùng (View) sẽ được phát triển độc lập ở phía client sử
dụng các công nghệ Frontend như VueJS, ReactJS, Nói cách khác, client sẽđược chạy trên 1 server độc lập và có thể tương tác với phía server của backend
− Tầng xử lí (Controller) và logic dữ liệu (Model) sẽ được phát triển độc lập ở
phía server sử dụng các công nghệ Backend như ExpressJS, DotNetCore, Flank,
− Sau khi hoàn thành việc phát triển, client sẽ cung cấp 1 bản build hoàn chỉnh đểthêm vào phía Server Người dùng sẽ yêu cầu thành phần giao diện thông qua
request gửi đến Server
Trang 23NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứngdụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy chủREST API, Tuy nhiên, NodeJS thường được dùng chủ yếu để xây dựng các
chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc ASP.NET
Vì đây là mã nguồn mở nên cho phép bạn sử dụng miễn phí và đồng thời được liêntục được chỉnh sửa, cải tiến bởi cộng đồng các nhà phát triển toàn cầu
Lợi ích sử dụng Nodejs
● IO hướng sự kiện không đồng bộ giúp xử lý nhiều yêu cầu đồng thời
● Đáp ứng được những yêu cầu về thời gian thực
Trang 24● Có tốc độ cực rất nhanh, đáp ứng được nhu cầu sử dụng của khách truy cập
‘khổng lồ’ trong thời gian ngắn
● Sử dụng JavaScript, một ngôn ngữ lập trình rất dễ học
● Chia sẻ cùng một đoạn mã với cả phía máy chủ và máy khách
● Npm và các module rất mạnh mẽ và vẫn đang tiếp tục phát triển
● Có một cộng đồng lớn mạnh, có nhiều mã được chia sẻ qua github
● Tương thích với nhiều thiết bị, nhiều hệ điều hành như MacOS, Window,Linux,…
3.2.4 ReactJS
Hình 3.2.4 Reactjs
ReactJS là gì?
ReactJS là một thư viện JavaScript được tạo ra để xây dựng giao diện người dùng
có khả năng tương tác tốt và nhanh chóng cho các ứng dụng web và di động Nó là
Trang 25một thư viện mã nguồn mở, xây dựng dựa trên các component, giao diện ngườidùng chỉ chịu trách nhiệm cho tầng view của ứng dụng.
Nó được sử dụng bởi các công ty lớn, đã thành lập và các công ty mới thành lậpnhư: Netflix, Airbnb, Instagram và New York Times v v ReactJS mang lại nhiềulợi thế cho các lập trình viên, khiến nó trở thành một lựa chọn tốt hơn so với cácFramework khác như Angular
Trong kiến trúc Model View Controller (MVC), tầng view chịu trách nhiệm vềgiao diện của ứng dụng ReactJS được tạo ra bởi Jordan Walke, một kỹ sư phầnmềm tại Facebook
Các tính năng của ReactJS
Chúng ta đã vừa tìm hiểu ReactJS là gì rồi, vậy bây giờ hãy xem nó có những tínhnăng gì mà khiến cho nhiều công ty sử dụng nó đến vậy
JSX – JavaScript Syntax Extension
JSX như tên gọi của nó, là một phần mở rộng cú pháp cho JavaScript Nó được sửdụng với ReactJS để mô tả giao diện người dùng trông như thế nào Bằng cách sử
Trang 26JavaScript Điều này làm cho mã dễ hiểu và dễ gỡ lỗi hơn, vì nó tránh việc sử dụngcác cấu trúc DOM JavaScript phức tạp.
Virtual DOM
Virtual DOM là một định dạng dữ liệu của JavaScript, với khối lượng nhẹ và đượcdùng để thể hiện nội dung của DOM – Document Object Model – Mô hình Đốitượng Tài liệu tại một thời điểm nhất định nào đó Khi trạng thái của một đối tượngthay đổi, VDOM chỉ thay đổi đối tượng đó trong DOM thực thay vì cập nhật tất cảcác đối tượng
Nghe có vẻ khá phức tạp đúng không? Đừng lo lắng quá, trước tiên chúng ta hãytìm hiểu DOM là gì, sau đó chúng ta sẽ xem xét cách VDOM và DOM thực tươngtác với nhau
● Mô hình Đối tượng Tài liệu (DOM) là gì?
DOM (Mô hình Đối tượng Tài liệu) coi một file XML hoặc HTML như một cấutrúc cây, trong đó mỗi nút là một đối tượng đại diện cho một phần của tài liệu
● Virtual DOM và ReactJS DOM tương tác với nhau như thế nào?
Khi trạng thái của một đối tượng thay đổi trong ứng dụng ReactJS, VDOM sẽ được
Trang 27đối tượng đó trong DOM thực thay vì cập nhật tất cả các đối tượng.
Điều này làm cho mọi thứ hoạt động nhanh chóng
Redux
Redux là một phần cực kỳ quan trọng trong ReactJS
Bản thân của ReactJS không sở hữu các module chuyên dụng nhằm để xử lý dữliệu Vì thế, ReactJS được triển khai một cách độc lập và chia nhỏ View thànhnhững component nhỏ khác nhau, điều này sẽ giúp cho việc quản lý dễ dàng hơn,các thành phần sẽ liên kết chặt chẽ với nhau hơn
One-way Data Binding
Liên kết dữ liệu một chiều của ReactJS giữ mọi thứ theo mô-đun và nhanh chóng.Luồng dữ liệu một chiều có nghĩa là khi một nhà phát triển thiết kế một ứng dụngReactJS, họ thường lồng các thành phần con bên trong các thành phần mẹ Bằngcách này, nhà phát triển biết được lỗi xảy ra ở đâu và khi nào, giúp họ kiểm soát tốthơn toàn bộ ứng dụng web
Trang 28ReactJS được xây dựng xoay quanh các component, trong khi đó, các Frameworkkhác dùng template Để tạo ra một component có đầy đủ những đặc tính, bạn chỉcần sử dụng phương thức createClass dùng để nhận một tham số mô tả đặc tính.
Tại sao nên sử dụng ReactJS?
Bây giờ chúng ta đã biết ReactJS là gì và các tính năng của nó, hãy tiếp tục và xemtại sao ReactJS là thư viện front-end phổ biến nhất để phát triển ứng dụng web
Sự phổ biến của ReactJS ngày nay đã lu mờ tất cả các Framework phát triển
front-end khác Đây là lý do tại sao:
● Dễ dàng tạo các ứng dụng động
ReactJS giúp tạo các ứng dụng web động dễ dàng hơn vì nó yêu cầu ít mã hóa hơn
và cung cấp nhiều chức năng hơn, trái ngược với JavaScript, nơi việc viết mã
thường trở nên phức tạp rất nhanh
● Cải thiện hiệu năng với Virtual DOM
ReactJS cho phép người dùng xây dựng các Virtual DOM và host chúngtrong bộ nhớ Ưu điểm này sẽ giúp Virtual thay đổi ngay khi DOM thực tế
có sự thay đổi Cập nhật liên tục giúp các ứng dụng tránh tình trạng bị gián
Trang 29đoạn Người dùng sử dụng liên tục, website ổn định giúp doanh thu duy trì
và tăng trưởng vượt bậc
● Dễ dàng viết component dễ dàng hơn
Để viết các component trong ReactJS, người dùng sẽ sử dụng JSX Đây làmột sự kết hợp giữa JavaScript và HTML Tuy không phải là phần mởrộng cú pháp phổ biến nhất, JSX được người dùng đánh giá cao khi pháttriển components đặc biệt hoặc các ứng dụng có khối lượng lớn
● Thân thiện với SEO
Đây là mong muốn của tất cả doanh nghiệp trong thời đại thương mại điện
tử sôi động hiện nay
Giao diện người dùng có thể truy cập càng nhiều công cụ tìm kiếm khácnhau đồng nghĩa với khả năng tiếp cận khách hàng càng cao Đây là mộttrong những yếu tố ảnh hưởng trực tiếp đến sự tăng trưởng doanh thu bánhàng qua website
Trang 303.2.5 MongoDB
Hình 3.2.5 MongoDB
MongoDB là gì?
MongoDB là một database hướng tài liệu (document), một dạng NoSQL database.
Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thíchứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON
MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một
collection sẽ các các kích cỡ và các document khác nhau Các dữ liệu được lưu trữtrong document kiểu JSON nên truy vấn sẽ rất nhanh
Ưu điểm của MongoDB
Trang 31● Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, toàn vẹn nên tínhsẵn sàng cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ.
● Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứngnên tốc độ đọc và ghi cao
Trang 32Chương 4 : THIẾT KẾ DỮ LIỆU
4.1 Sơ đồ logic
4.2 Mô tả chi tiết kiểu dữ liệu