Tải bản đầy đủ (.pdf) (73 trang)

Đồ án tìm hiểu reactjs và xây dựng website

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.77 MB, 73 trang )

1

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 2

ĐỀ TÀI: TÌM HIỂU REACTJS VÀ XÂY DỰNG WEBSITE
BÁN ĐỒ GIA DỤNG

Giảng viên hướng dẫn: ThS. HUỲNH HỒ THỊ MỘNG TRINH
Sinh viên thực hiện:
LÊ THANH TUẤN –MSSV: 19522467

Thành phố Hồ Chí Minh, tháng 12 năm 2022


2

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 2

ĐỀ TÀI: TÌM HIỂU REACTJS VÀ XÂY DỰNG WEBSITE
BÁN ĐỒ GIA DỤNG

Giảng viên hướng dẫn: HUỲNH HỒ THỊ MỘNG TRINH
Sinh viên thực hiện:


LÊ THANH TUẤN –MSSV: 19522467

Thành phố Hồ Chí Minh, tháng 12 năm 2022


3

Lời cảm ơn
Đồ án 2 là môn học tiếp theo Đồ án 1 và đặt tiền đề cho việc xây dựng khóa
luận tốt nghiệp. Đây là mơn học có nhiều thử thách, đòi hỏi người học phải dành
nhiều thời gian, cơng sức để nghiên cứu, tìm tịi và xây dựng. Đồng thời, đây cũng là
cơ hội để sinh viên thực hành những gì đã học trong suốt những năm đại học và học
hỏi thêm nhiều kiến thức, kinh nghiệm và kỹ năng mới phục vụ cho công việc sau
này. Cho nên đây được xem là thử thách và cũng là cơ hội để sinh viên được rèn
luyện, hoàn thiện bản thân bằng những kĩ năng tích lũy được trong suốt q trình làm
đồ án.
Để có thể đi đến đoạn cuối của hành trình là cả sự nỗ lực, cố gắng và kiên trì.
Đồng hành cùng sinh viên vượt qua thử thách này là sự có mặt và giúp đỡ của những
người thầy tận tâm trong cơng việc.
Nhóm xin chân thành cảm ơn cô Huỳnh Hồ Thị Mộng Trinh đã tận tình giúp
đỡ nhóm em hồn thành đồ án 2 của mình. Chính nhờ những sự góp ý, động viên của
cơ đã giúp đồ án của nhóm được hồn thiện và chuyên nghiệp nhiều hơn. Bên cạnh
đó, nhóm đã học hỏi được rất nhiều kiến thức, kinh nghiệm và bài học thú vị trong
q trình làm khố luận, đó sẽ là những hành trang hữu ích cho nhóm sau này.
Nhóm cũng xin chân thành cảm ơn các anh chị, bạn bè đã giúp đỡ nhóm trong
q trình thực hiện đồ án. Nhờ mọi người mà nhóm có nhiều góc nhìn khác nhau về
đề tài đang làm, từ đó giúp hồn thiện đồ án của nhóm.
Một lần nữa, nhóm xin chân thành cảm ơn cô và mọi người.



4

NHẬN XÉT
(Của giáo viên hướng dẫn)
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………



MỤC LỤC
Lời cảm ơn .................................................................................................................................. 3
CHƯƠNG I: GIỚI THIỆU CHUNG ............................................................................................ 2
1. Đề tài ................................................................................................................................... 2
2. Lý do chọn đề tài .................................................................................................................. 2
3. Tóm tắt đề tài ....................................................................................................................... 2
4. Mục tiêu đề tài...................................................................................................................... 2
5. Phương pháp nghiên cứu ...................................................................................................... 2
6. Ý nghĩa và hướng của đề tài .................................................................................................. 3
6.1. Về mặt tài liệu ................................................................................................................. 3
6.2. Về mặt sản phẩm ............................................................................................................. 3
CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN ................................................................................... 4
1. Reactjs ................................................................................................................................. 4
1.1. Giới thiệu ........................................................................................................................ 4
1.2. Tính năng nổi bật của ReactJs:........................................................................................... 5
1.3. Lý do sử dụng.................................................................................................................. 5
2. NodeJs ................................................................................................................................. 6
2.1. Giới thiệu ........................................................................................................................ 6
2.2 Tính năng nổi bật của NodeJs ............................................................................................. 7
2.3. Lý do sử dụng NodeJs ...................................................................................................... 7
3. MongoDB ............................................................................................................................. 8
3.1. Giới thiệu ........................................................................................................................ 8
CHƯƠNG III: PHÂN TÍCH HỆ THỐNG .................................................................................. 11
1. Danh sách yêu cầu hệ thống ................................................................................................ 11
2. Đặt tả Use-case .................................................................................................................. 13
2.1. Admin ............................................................................................................................. 15
2.1.1 Đặc tả Use-case “Đăng nhập” ........................................................................................ 15
2.1.2 Đặc tả Use-case “Thêm sản phẩm” ................................................................................. 16
2.1.3 Đặc tả Use-case “Sửa sản phẩm” .................................................................................... 17

2.1.4 Đặc tả Use-case “Xóa sản phẩm” ................................................................................... 18
2.1.5 Đặc tả Use-case “Thêm danh mục sản phẩm” .................................................................. 19
2.1.6 Đặc tả Use-case “Sửa danh mục sản phẩm” ..................................................................... 20
2.1.7 Đặc tả Use-case “Xóa danh mục sản phẩm” ..................................................................... 21


2.1.8 Đặc tả Use-case “Thêm tài khoản đăng nhập” .................................................................. 22
2.1.9 Đặc tả Use-case “Sửa tài khoản đăng nhập” ..................................................................... 23
2.1.10 Đặc tả Use-case “Xóa tài khoản đăng nhập”................................................................... 24
2.1.11 Đặc tả Use-case “Duyệt đơn hàng” ............................................................................... 25
2.1.12 Đặc tả Use-case “Thống kê báo cáo”............................................................................. 26
2.2. User ................................................................................................................................ 27
2.2.1 Đặc tả Use-case “Đăng ký”............................................................................................ 27
2.2.2 Đặc tả Use-case “Đăng nhập” ........................................................................................ 29
2.2.3 Đặc tả Use-case “Tìm kiểm sản phẩm” ........................................................................... 30
2.2.4 Đặc tả Use-case “Xem thông tin sản phẩm” ..................................................................... 31
2.2.5 Đặc tả Use-case “Xem danh mục sản phẩm” .................................................................... 32
2.2.6 Đặc tả Use-case “Thêm giỏ hàng” .................................................................................. 33
2.2.7 Đặc tả Use-case “Kiểm tra giỏ hàng” .............................................................................. 34
2.2.8 Đặc tả Use-case “Xóa sản phẩm khỏi giỏ hàng” ............................................................... 35
2.2.9 Đặc tả Use-case “Cập nhật sản phẩm trong giỏ” ............................................................... 36
2.2.10 Đặc tả Use-case “Đặt hàng” ......................................................................................... 37
2.2.11 Đặc tả Use-case “Đánh giá sản phẩm” ........................................................................... 38
3. Sơ đồ dữ liệu ...................................................................................................................... 40
3.1. Bảng User ..................................................................................................................... 41
3.2. Bảng Admin .................................................................................................................. 41
3.3. Bảng Product ................................................................................................................. 42
3.4. Bảng DetailProduct ........................................................................................................ 43
3.5. Bảng Category ............................................................................................................... 43
3.6. Bảng Discount ............................................................................................................... 44

3.7. Bảng Transaction ........................................................................................................... 44
CHƯƠNG V: THIẾT KẾ GIAO DIỆN ...................................................................................... 45
5.1. User ................................................................................................................................ 45
1. Trang Home ..................................................................................................................... 45
2. Trang sản phẩm ................................................................................................................ 48
3. Trang khuyến mãi ............................................................................................................. 50
4. Trang giỏ hàng ................................................................................................................. 51
5. Trang Liên hệ ................................................................................................................... 52
6. Chi tiết sản phẩm .............................................................................................................. 53
5.2. Admin ............................................................................................................................. 55


1. Đăng nhập ....................................................................................................................... 55
2. Trang chủ ........................................................................................................................ 55
3. Quản lý sản phẩm ............................................................................................................. 56
4. Quản lý danh mục sản phẩm .............................................................................................. 58
5. Quản lý đơn hàng ............................................................................................................. 59
6. Quản lý tài khoản.............................................................................................................. 60
7. Quản lý đánh giá............................................................................................................... 61
CHƯƠNG VI: TỔNG KẾT........................................................................................................ 62
1. Công nghệ sử dụng ............................................................................................................. 62
2. Độ hoàn thiện chức năng..................................................................................................... 62
3.Kết quả đạt được và hướng phát triển .................................................................................. 63
3.1. Kết quả đạt được ............................................................................................................ 63
3.2. Hướng phát triển ............................................................................................................ 64
CHƯƠNG VII: BẢNG PHÂN CÔNG CÔNG VIỆC ................................................................... 65
CHƯƠNG VIII: TÀI LIỆU THAM KHẢO ................................................................................ 67
1. ReactJS: .................................................................................................. 67
2. Redux: ................................................................................................... 67
3. NodeJS: ..................................................................................... 67

4. Express: 67
5. MongoDB: ................................................................................. 67
6. Firebase: .................................................................................... 67


CHƯƠNG I: GIỚI THIỆU CHUNG
1. Đề tài
- Tên đề tài: Tìm hiểu Reactjs và xây dựng website bán đồ gia dụng
- Cơng nghệ sử dụng:
• Frontent: Reactjs, Axios, Redux
• Backent: NodeJs
- Cơ sở dữ liệu: MongoDB, Firebase
2. Lý do chọn đề tài
Trong thời kì cơng nghệ ngày càng phát triển, Internet được ứng dụng ở khắp mọi nơi
thì nhu cầu mua sắm trang thiết bị gia dụng của mọi người cũng thay đổi. Từ đó, nhóm
quyết định xây dựng một trang web bán đồ gia dụng để đáp ứng như cầu tìm hiểu, lựa
chọn và mua sắm các thiết bị gia dụng cho gia đình. Ngồi ra, để xây dựng giao diện
website linh động thì nhóm đã tìm hiểu và quyết định chọn cơng nghệ Reactjs, một cơng
nghệ lập trình giao diện mới và được đơng đảo lập trình viên sử dụng để phát triển phần
mềm.
3. Tóm tắt đề tài
Website bán hàng gia dụng được xây dựng để đáp ứng như cầu tìm hiểu, lựa chọn và
mua sắm của mọi gia đình.
4. Mục tiêu đề tài
- Xây dựng một trang web từ công nghệ Reactjs với cách chức năng cơ bản đáp
ứng được nhu cầu người dùng. Bên cạnh đó, học hỏi thêm nhiều công nghệ và kiến thức
mới về lập trình website, API, Services.
- Tìm hiểu được cơng nghệ thích hợp xây dựng ứng dụng.
- Hồn thành được báo cáo môn học.
5. Phương pháp nghiên cứu

- Nghiên cứu các Website có sẵn trên thị trường, nhận xét được ưu khuyết điểm
của các Website đó.


- Nghiên cứu các tài liệu đặc tả về các Website tương tự như Website

- Tìm hiểu các công nghệ mới trên thị trường, nhận xét và chọn ra những cơng
nghệ thích hợp để xây dựng website.
-

Tiếp tục phát triển Website từ môn học Đồ án 1 và phát triển website cho quản
trị viên.

6. Ý nghĩa và hướng của đề tài
6.1. Về mặt tài liệu
- Sử dụng nguồn tài liệu tham khảo về Reactjs, NodeJs, MongoDB.
- Có tài liệu đặc tả use-case, sơ đồ lớp, tuần tự, mô hình thiết kế giao diện.
6.2. Về mặt sản phẩm
- Tạo ra website mua sắm với một số tính năng cơ bản
- Chức năng phù hợp với tình hình thực tế và dễ sử dụng.


CHƯƠNG II: CƠNG NGHỆ LIÊN QUAN
1. Reactjs
1.1. Giới thiệu
• 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à
một thư viện mã nguồn mở, xây dựng dựa trên các component, giao diện người
dù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ập

như: Netflix, Airbnb, Instagram và New York Times..v..v. ReactJS mang lại nhiều
lợ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ác
Framework 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ần
mềm tại Facebook.

Hình 1.1: Logo Reactjs


1.2. Tính năng nổi bật của ReactJs:
- 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ử dụng JSX, chúng ta có thể viết các
cấu trúc HTML trong cùng một tệp chứa mã JavaScript. Đ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ụng cá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à được dùng để thể hiện nội dung của DOM – Document Object
Model – Mơ hình Đối tượ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ượng thay đổ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.
- Performance: ReactJS sử dụng VDOM, giúp các ứng dụng web chạy nhanh hơn
nhiều so với những ứng dụng được phát triển với các Framework front-end khác.
- 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ành nhữ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

- Component: ReactJS được xây dựng xoay quanh các component, trong khi đó,
các Framework khá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.

1.3. Lý do sử dụng
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ó 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úng trong bộ nhớ. Ưu điểm này sẽ giúp Vitural 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 đ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.
Các component có thể tái sử dụng:
• Các thành phần là các khối xây dựng của bất kỳ ứng dụng ReactJS nào và một ứng
dụng đơn lẻ thường bao gồm nhiều thành phần.
• Các thành phần này có logic và điều khiển của chúng, và chúng có thể được sử
dụng lại trong tồn bộ ứng dụng, do đó làm giảm đáng kể thời gian phát triển của
ứng dụng.
2. NodeJs
2.1. Giới thiệu
NodeJs là một nền tảng (platform) phát triển độc lập dựa trên V8 JavaScript
engine. Đây là một trình thơng dịch thực thi mã JavaScript cho phép tạo các ứng dụng
web như video clip và diễn đàn, đặc biệt có thể mở rộng nhanh chóng và dễ dàng cũng
như thu hẹp phạm vi hoạt động của các trang mạng mạng xã hội.
Đây được xem là một lợi thế khi NodeJS có thể hoạt động trên nhiều nền tảng hệ
điều hành khác nhau, từ Windows, Linux đến OS X. NodeJS cung cấp một thư viện

phong phú dưới dạng các mô-đun Javascript khác nhau giúp đơn giản hóa việc lập trình
và giảm thiểu thời gian cần thiết.


2.2 Tính năng nổi bật của NodeJs
NodeJS được dùng để thiết kế, xây dựng một ứng dụng mạng mở rộng. Khi bạn
mong muốn ứng dụng web của mình hỗ trợ kết nối nhiều người dùng hơn, thì bạn cần
thêm nhiều máy chủ. Nhưng điều này sẽ làm tăng chi phí máy chủ, chi phí lưu lượng và
nhân cơng. Ngồi ra, việc dùng nhiều máy chủ sẽ khiến các tài nguyên phải được chia sẻ
giữa tất cả các máy chủ.
Chính vì vậy, NodeJS đã thay đổi cách kết nối với máy chủ. Điều này giúp mỗi kết
nối chỉ tạo ra một sự kiện đang chạy trong tiến trình của NodeJS, thay vì tạo một chuỗi hệ
điều hành mới cho mỗi kết nối. Điều này giúp ứng dụng website mở rộng dễ dàng mà
khơng hề gặp lỗi hay trở ngại gì.
Để làm được nhiệm vụ như trên, NodeJS sở hữu rất nhiều tính năng nổi trội. Một trong
những những tính năng quan trọng nhất của NodeJS là:
• Khơng đồng bộ và hướng sự kiện: Tất cả các API của thư viện NodeJS đều khơng
đồng bộ.
• Rất nhanh: NodeJS được xây dựng trên JavaScript V8 của Google Chrome. Vì thế,
thư viện NodeJS thực thi mã với tốc độ cực nhanh.
• Là nền tảng Single Threaded nhưng có khả năng mở rộng cao.
• No Buffering: các ứng dụng của NodeJS không đệm bất kỳ dữ liệu nào bao giờ,
chúng chỉ xuất dữ liệu trong khối.
• License: NodeJS phát hành theo giấy phép của MIT.
2.3. Lý do sử dụng NodeJs
Node.js có tốc độ rất nhanh: Đó là một yêu cầu khá quan trọng khi bạn là một
startup đang cố gắng tạo ra một sản phẩm lớn và muốn đảm bảo có thể mở rộng
nhanh chóng, đáp ứng được một lượng lớn người dùng khi trang web của bạn phát



triển lên.
-

Chia sẻ cùng code ở cả phía client và server.

-

NPM(Node Package Manager) và module Node đang ngày càng phát triển mạnh
mẽ.
Cộng đồng hỗ trợ tích cực.
Cho phép stream các file có kích thước lớn

-

3. MongoDB
3.1. Giới thiệu
MongoDB là một dạng phần mềm cơ sở dữ liệu sử dụng mã nguồn mở NoSQL.
Nó có thể hỗ trợ trên nhiều nền tảng khác nhau và được thiết kế với mục đích hướng đến
đối tượng. MongoDB hoạt động dựa vào các khái niệm Collection và Document. Đồng
thời, nó có hiệu suất cao cùng với tính khả dụng tốt và dễ dàng mở rộng.
Các Collection trong MongoDB có cấu trúc cực kỳ linh hoạt. Điều này cho phép
dữ liệu không cần thiết phải tuân theo bất kỳ một dạng cấu trúc nào. Vì thế, MongoDB có
thể lưu trữ những dữ liệu có cấu trúc đa dạng và phức tạp. Dữ liệu trong MongoDB được
lưu bằng định dạng kiểu JSON.

3.2 Tính năng nổi bật của MongoDB
• Truy vấn ad hoc:
Đây được xem là tính năng tốt nhất của MongoDB. Nó có tác dụng giúp các trường truy
vấn phạm vi, kết hợp cùng việc tìm kiếm biểu thức nhằm trả về kết quả tài liệu cụ thể với



kích thước nhất định. Ngồi ra, các trường dùng trong MongoDB cịn được dùng để lập
chỉ mục chính, phụ.
• Nhân rộng
MongoDB cung cấp Replica Set cho phép nhân 2 hoặc nhiều bản sao của dữ liệu. Đồng
thời, mỗi bản sao lại đóng vai trị chính và phụ.
- Khi nhân rộng, toàn bộ dữ liệu khi ghi và đọc được thực hiện trên bản sao chính.
- Bản sao thứ cấp sẽ dùng bản sao tích hợp để có thể duy trì các bản sao dữ liệu.
Trong trường hợp có bất kỳ bản sao chính nào bị thất bại thì Replica set sẽ chọn một bản
sao thứ cấp để thay thế làm bản sao chính tiếp theo. Trong q trình nhân rộng, Replica
thứ cấp được tùy ý chọn các hoạt động nhưng dữ liệu cuối cùng vẫn phải tuân theo mặc
định.
• Cân bằng tải
MongoDB sử dụng Sharding nhằm chia tỷ lệ theo chiều ngang và xác định dữ liệu phân
phối trong collection. Điều này giúp người dùng có thể chọn một Shard key.
Nói tóm lại, MongoDB cân bằng tải bằng cách dựa vào các Shard key để chia dữ liệu
thành các phạm vi và phân phối đồng đều. Chúng có thể chạy trên nhiều máy chủ khác
nhau và thực hiện chức năng sao chép dữ liệu hay cân bằng tải nhằm giữ hệ thống hoạt
động liên tục trong trường hợp phát sinh lỗi về phần cứng.
• Lưu trữ tệp
Khi tìm hiểu hệ cơ sở dữ liệu MongoDB thì bạn sẽ thấy, tính năng lưu trữ tệp được dùng
như một hệ thống tệp (gọi là GridFS) đóng vai trị cân bằng tải, đồng thời, sao chép dữ
liệu trên nhiều máy tính. Cụ thể, GridFS chia một tệp ra làm nhiều phần và lưu trữ thành
các tài liệu riêng biệt. Sau đó, người dùng dễ dàng truy cập GridFS thông qua Mongofiles
hay các plugin sử dụng cho Nginx và Lighttpd.
• Tập hợp
Tính năng này chính là chương trình mang đến ba giải pháp để thực hiện tập hợp gồm
Aggregation Pipeline, Mapreduce và Single-purpose Aggregation. Trong đó, Aggregation
Pipeline được đánh giá là có hiệu suất tốt nhất.



• Giới hạn kích thước collection
Các collection được MongoDB hỗ trợ thường có kích thước cố định. Vì thế, người ta gọi
chúng là collection giới hạn. Với kích cỡ cố định, kết hợp cùng việc theo sau thứ tự chèn
giúp tăng hiệu suất của các hoạt động liên quan đến dữ liệu. Và khi dữ liệu vượt giới hạn
thì những tài liệu cũ hơn sẽ tự động bị xóa mà bạn khơng cần thực hiện thao tác thêm bất
kỳ dịng lệnh nào.
• Giao dịch
Bắt đầu từ phiên bản 4.0 ra mắt vào tháng 6 năm 2018, MongoDB được bổ sung thêm
tính năng hỗ trợ giao dịch ACID đa tài liệu.
3.2. Lý do sử dụng MongoDB


Linh hoạt trong lưu trữ các kích cỡ dữ liệu khác nhau. Nhờ chúng được lưu
dưới dạng JSON nên bạn thoải mái chèn bất kỳ thông tin nào tùy theo nhu cầu sử
dụng.

• Tiết kiệm thời gian trong việc kiểm tra sự tương thích về cấu trúc khi thêm, xóa
hoặc cập nhật dữ liệu. Nhờ MongoDB khơng có sự ràng buộc trong một khn
khổ, quy tắc nhất định nào.
• Bạn dễ dàng mở rộng hệ thống thông qua việc thêm node vào cluster. Cụm các
node này đóng vai trị như thư viện chứa các dữ liệu giao tiếp với nhau.
• Tốc độ truy vấn của MongoDB nhanh hơn so với RDBMS do toàn bộ dữ liệu truy
vấn đã được ghi đệm lên bộ nhớ RAM. Nhờ thế, những lượt truy vấn sau sẽ được
rút ngắn thời gian vì chúng khơng cần đọc từ ổ cứng.
• Trường dữ liệu “_id” (đại diện cho giá trị duy nhất trong mỗi document) được tự
động đánh chỉ mục nên hiệu suất luôn đạt mức cao nhất.


CHƯƠNG III: PHÂN TÍCH HỆ THỐNG

1. Danh sách yêu cầu hệ thống
Qua khảo sát từ những người dùng có nhu cầu, cũng như tham khảo các ứng dụng
khác, nhóm đã đưa ra danh sách thể hiện các nghiệp vụ mà ứng dụng cần có:
Bảng 3.1. Danh sách yêu cầu của hệ thống đối với Admin
Tên yêu cầu

STT

Ghi
chú

1

Đăng nhập

Để truy cập vào hệ thống quản lý

2

Quản lý sản phẩm

Admin sẽ thực hiện thêm, xóa và cập
nhật sản phẩm

3

Quản lý đơn hàng

Admin có thể xem và cập nhật trạng
thái của đơn hàng


4

Quản lý danh mục sản phẩm

Admin sẽ thực hiện thêm, xóa và cập
nhật danh mục sản phẩm

5

Quản lý tài khoản admin

Admin có thể thêm tài khoản và phân
quyền và xóa tài khoản cần xóa

6

Thống kê doanh thu

Admin có thể xem thống kê doanh
thu hàng tháng

7

Đặt hàng

Khách hàng đăng nhập tài khoản để
tiến hành thanh toán đơn hàng



Bảng 3.2: Danh sách yêu cầu của hệ thống đối với User
Tên yêu cầu

STT

Ghi
chú

1

Đăng nhập, đăng ký

Để thanh toán đơn hàng người dùng
phải đăng ký hoặc đăng nhập tài
khoản để tiến hành thanh toán đơn
hàng.

2

Xem sản phẩm

Khách hàng sẽ truy cập vào trang
web để xem sản phẩm

3

Xem danh mục sản phẩm

Khách hàng sẽ truy cập vào trang
web để xem danh mục sản phẩm


4

Thêm giỏ hàng

Khách hàng sẽ thêm sản phẩm muốn
mua vào giỏ hàng

5

Kiểm tra giỏ hàng

Khách hàng có thể thêm, xóa và cập
nhật sản phẩm

6

Đặt hàng

Khách hàng đăng nhập tài khoản để
tiến hành thanh toán đơn hàng

7

Đánh giá sản phẩm

Khách hàng có thể đánh giá từng sản
phẩm



2. Đặt tả Use-case

Hình 3.1: Sơ đồ Use-case
Bảng 3.2: Danh sách các Actor
ST
T

Tên Actor

Ý nghĩa/Ghi chú

1

Admin

Người quản trị trang web

2

Khách hàng

Người truy cập sử dụng trang web


Bảng 3.3: Danh sách các Use-case
STT

Ý nghĩa / ghi chú

Tên Usecase


1

Đăng ký

Tạo tài khoản cá nhân để mua hàng

2

Đăng nhập

Đăng nhập để thanh toán đơn hàng học đăng
nhập để quản trị website

3

Thêm sản phẩm

Admin thêm sản phẩm

4

Sửa sản phẩm

Admin cập nhật thơng tin sản phẩm

5

Xóa sản phẩm


Admin xóa sản phẩm

6

Thêm danh mục sản phẩm

Admin thêm danh mục sản phẩm

7

Sửa danh mục sản phẩm

Admin sửa (cập nhật) danh mục sản phẩm

8

Xóa danh mục sản phẩm

Admin xóa danh mục sản phẩm

9

Thêm tài khoản

Admin thêm tài khoản đăng nhập

10

Sửa tài khoản


Admin sửa tài khoản đăng nhập

11

Xóa tài khoản

Admin xố tài khoản đăng nhập

12

Duyệt đơn hàng

Admin duyệt đơn hàng của khách hàng

13

Thống kê báo cáo

Admin thống kê báo cáo doanh số đơn hàng

14

Tìm kiếm sản phẩm

Admin, khách hàng tìm kiếm sản phẩm trong
danh sách

15

Xem thông tin sản phẩm


Khách hàng xem thông tin sản phẩm trên
website


16

Xem danh mục sản phẩm

Khách hàng xem danh mục sản phẩm trên
website

17

Thêm giỏ hàng

Khách hàng thêm sản phẩm vào giỏ hàng

18

Kiểm tra giỏ hàng

Khách hàng kiểm tra sản phẩm trong giỏ hàng

19

Xóa sản phẩm trong giỏ hàng

Khách hàng xóa sản phẩm trong giỏ hàng


20

Cập nhật sản phẩm trong giỏ

Khách hàng cập nhật sản phẩm trong giỏ hàng

hàng
21

Đặt hàng

Khách hàng tiến hàng thanh toán sản phẩm

2.1. Admin
2.1.1 Đặc tả Use-case “Đăng nhập”
Bảng 3.1.1: Bảng đặc tả Use-case “Đăng nhập”
Mô tả
Tác nhân

Admin đăng nhập vào website
Admin
Hành vi của tác nhân

Hành vi của hệ thống

1 - Admin truy cập website
2 - Chọn đăng nhập
Luồng chính

3 - Website kiểm tra thơng tin về

tài khoản Admin trong hệ thống
4 - Nếu thông tin liên quan hợp lệ,
chuyển tiếp vào trang chủ của


website
Admin chọn hình thức đăng nhập tài khoản khác:
1 - Admin nhập thông tin về tài khoản và mật khẩu
2 - Nhấn vào nút Đăng nhập
3 - Website kiểm tra thơng tin Admin có trong hệ thống
Luồng thay thế

4 - Tiếp tục bước 4 ở dịng sự kiện chính
Thơng tin đăng nhập không hợp lệ:
1 - Website hiện thông báo lỗi
2 - Website đăng nhập lại bằng thông tin khác
3 - Tiếp tục thực hiện bước 3 ở dòng sự kiện phụ: đăng nhập bằng
tài khoản

Điều kiện trước
Điều kiện sau

Thiết bị truy cập phải có kết nối mạng.
Kết nối thành công với server.
Không đổi

2.1.2 Đặc tả Use-case “Thêm sản phẩm”
Bảng 3.1.2: Bảng đặc tả Use-case “Thêm sản phẩm”
Mô tả
Tác nhân


Amin muốn thêm một sản phẩm mới
Admin
Hành vi của tác nhân
1 – Admin thực hiện đăng

Luồng chính

nhập vào website quản trị
2 - Admin truy cập vào trang
thêm sản phẩm
3 – Nhập thông tin sản phẩm

Hành vi của hệ thống


và hồn thành
4 - Hệ thống hiển thị thơng báo đã
thêm sản phẩm thành công
Luồng thay thế
Điều kiện trước
Điều kiện sau

Khơng
Thiết bị truy cập phải có kết nối mạng.
Kết nối thành công với server.
Cập nhật thông tin về sản phẩm lên CSDL.

2.1.3 Đặc tả Use-case “Sửa sản phẩm”
Bảng 3.1.3: Bảng đặc tả Use-case “Sửa sản phẩm”

Mô tả
Tác nhân

Admin muốn cập nhật thông tin sản phẩm
Admin
Hành vi của tác nhân

Hành vi của hệ thống

1 – Admin thực hiện đăng
nhập vào trang quản trị
2 – Admin chọn vào sản
phẩm cần sửa
Luồng chính

3 – Admin nhập thông tin cần
sửa
4 - Bấm nút Lưu
5 – Website kiểm tra thông tin sản
phẩm
7 - Nếu thông tin hợp lệ, website


hiện thông báo cập nhật sản phẩm
thành công.
8. Nếu thông tin không hợp nệ,
website hiện thông báo cập nhật
sản phẩm không thành công và yêu
cầu nhập lại thông tin


Thông tin thay đổi không hợp lệ:
1 – Website quay về trang cập nhật sản phẩm
Luồng thay thế

2 – Admin nhập lại thông tin sản phẩm
3 – Lưu thông tin sản phẩm

Điều kiện trước
Điều kiện sau

Thiết bị truy cập phải có kết nối mạng.
Kết nối thành công với server.
Thông tin sản phẩm được cập nhật trên database

2.1.4 Đặc tả Use-case “Xóa sản phẩm”
Bảng 3.1.4: Bảng đặc tả Use-case “Xóa sản phẩm”
Mơ tả
Tác nhân

Admin xóa sản phẩm
Admin
Hành vi của tác nhân

Luồng chính

1 – Admin thực hiện đăng
nhập vào trang quản trị

Hành vi của hệ thống



2 – Admin chọn vào sản
phẩm cần xóa
3 – Admin click xóa sản
phẩm
4 - Bấm nút Lưu
6 - Hệ thống thực hiện xóa Sản
phẩm lên CSDL.
7 - Màn hình hiển thị sự kiện xóa
sản phẩm thành cơng
Luồng thay thế
Điều kiện trước
Điều kiện sau

Khơng có
Thiết bị truy cập phải có kết nối mạng.
Kết nối thành cơng với server.
Hệ thống tạo xóa sản phẩm trong CSDL.

2.1.5 Đặc tả Use-case “Thêm danh mục sản phẩm”
Bảng 3.1.5: Bảng đặc tả Use-case “Thêm danh mục sản phẩm”
Mô tả

Admin muốn thêm một danh mục sản phẩm mới

Tác nhân

Admin
Hành vi của tác nhân
1 – Admin thực hiện đăng


Luồng chính

nhập vào website quản trị
2 - Admin truy cập vào trang
thêm danh mục sản phẩm
3 – Nhập thông tin danh mục

Hành vi của hệ thống


×