Sơ đồ lớp (mức phân tích)

Một phần của tài liệu Xây dựng hệ thống kinh doanh sách trực tuyến với chatbot (khóa luận tốt nghiệp) (Trang 103)

87

CHƯƠNG 5. MÔ TẢ THIẾT KẾ PHẦN MỀM 1. Thiết kế kiến trúc

1.1. Kiến trúc hệ thống

Hệ thống bao gồm 3 thành phần:

− Front-end: chứa các GUI cho phép người dùng tương tác với phần mềm quản lý kinh doanh sách trực tuyến và ứng dụng mobile dành cho người dùng

− Back-end: chứa các Models, Controller, nhận request từ phía front-end, thông qua Middlewares để thực hiện các truy xuất dữ liệu đến Database và trả về response cho front-end.

89

Hình 17 Kiến trúc hệ thống

1.2. Mô tả các thành phần trong hệ thống

STT Thành phần Diễn giải

1 ReactJS, Flutter Hiển thị các giao diện giúp người dùng tương tác với phần mềm. Gửi request tới back-end, nhận các response và thực hiện các tính toán, thông báo lại cho các hành động của người dùng

2 NodeJS Xây dựng Web API, chứa các models và controller, nhận request từ phía front-end và thực hiện các truy vấn tới cơ sở dữ liệu, sau khi hoàn thành gửi response về cho front- end

3 MongoDB Nơi lưu trữ tất cả dữ liệu quản lý hệ thống kinh doanh sách trực tuyến

90

2. Sơ đồ lớp chi tiết

91

2.1. Danh sách các lớp đối tượng

STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú

1 User Lớp Lớp thể hiển dữ liệu về tài khoản người dùng phần mềm 2 UserClaim Lớp Lớp thể hiển thông tin chi tiết của tài khoản

3 Book Lớp Lớp thể hiển dữ liệu của sách

4 Category Lớp Lớp thể hiển dữ liệu của các danh mục sách 5 Comment Lớp Lớp thể hiển dữ liệu về các bình luận đánh giá 6 Cart Lớp Lớp thể hiển dữ liệu về giỏ hàng

7 CartDetail Lớp Lớp thể hiển chi tiết dữ liệu của sách trong giỏ hàng 8 Order Lớp Lớp thể hiển dữ liệu các đơn đặt hàng

9 OrderDetail Lớp Lớp thể hiển chi tiết dữ liệu trong các đơn đặt hàng 10 BookReceipt Lớp Lớp thể hiển chi tiết dữ liệu của phiếu nhập sách 11 ReceiptDetail Lớp Lớp thể hiển chi tiết dữ liệu của sách trong phiếu nhập 12 Feedback Lớp Lớp thể hiển dữ liệu về các phản hồi của người dùng 13 Discount Lớp Lớp thể hiển dữ liệu về các mã khuyến mãi

Bảng 18 Sơ đồ lớp - Danh sách các lớp đối tượng

2.2. Mô tả chi tiết từng lớp đối tượng User User

92

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 Email String Required Email của người

dùng

3 Password String Required Mật khẩu (đã hash)

4 Role String Required Quyền

5 UserClaim UserClaim Thông tin chi tiết

của người dùng

6 IsLocked Boolean Trạng thái tài

khoản của một người dùng

• Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Login String, String Bool Đăng nhập

2 Create User User Tạo tài khoản

3 Update User Bool Cập nhật thông tin

Userclaim

• Danh sách thuộc tính

93

1 DisplayName String Required Tên hiển thị của người dùng

2 AvatarUrl String Url hình đại hiện

người dùng

3 PhoneNumber String Required Số điện thoại người dùng

4 Address String Required Địa chỉ người dùng

5 Favorite Array Danh sách sách

yêu thích của người dùng

6 AddressBook Array Danh sách địa chỉ

đặt sách

Book

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 CategoryId String Mã danh mục

3 Name String Required Tên cuốn sách

94

5 IsAvailable Bool Required Trạng thái của sách

(được bán/ không được bán)

6 Price Number Required Giá sách

7 Quantity Number Required Số lượng sách

trong kho

8 Description String Mô tả chi tiết cuốn

sách

9 Comments Array Danh sách bình

luận đánh giá của sách

10 AvgRate Number Điểm đánh giá

trung bình của sách

11 DiscountRatio Number Mức giảm giá của

cuốn sách

12 Author String Tác giả của cuốn

sách • Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Upload Book Book Đăng bán sản

phẩm

95 • Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 CategoryName String Required Tên danh mục

3 ThumbnailImageUrl String URL hình ảnh đại

diện cho danh mục • Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create Category Category Tạo danh mục mới

2 Update Category Category Chỉnh sửa danh

mục

3 Delete Category Bool Xoá danh mục

Comment

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 UserId String Required Mã người dùng đã

96

3 BookId String Required Mã cuốn sách được

bình luận

4 IsCustomer Bool Required Kiểm tra là bình

luận của người dùng hay không

5 Rate Number Required Số sao mà người

dùng đánh giá cho sách

6 Review String Required Nội dung mà người

dùng bình luận

7 CommentDate DateTime Required Thời gian bình

luận • Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create Comment Comment Đăng comment

mới

2 Update Comment Comment Chỉnh sửa

comment

3 Delete Comment Bool Xoá Comment

Cart

• Danh sách thuộc tính

97

1 Id String Require

Length = 24

Mã định danh

2 UserId String Required Mã người dùng của

giỏ hàng

3 CartDetails Array Danh sách chi tiết

giỏ hàng

CartDetail

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 BookId String Require

Length = 24

Mã sách

2 Quantity Number Required Số lượng sách

• Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create CardDetail CardDetail Thêm một chi tiết giỏ hàng mới 2 Update CardDetail CardDetail Chỉnh sửa chi tiết

giỏ hàng

3 Delete CardDetail Bool Xoá chi tiết giỏ

hàng

98 • Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 UserId String Required

Length = 24

Mã người mua

3 DiscountPrice Number Số tiền được giảm

4 TotalPrice Number Tổng tiền của hoá

đơn

5 PurchaseDate DateTime Required Ngày mua hàng

6 InvoiceDetails Array Danh sách chi tiết

hoá đơn

7 PaidStatus Number Trạng thái thanh

toán của đơn

8 ShippingStatus Number Trạng thái giao

hàng của đơn • Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create Invoice Invoice Tạo một hoá đơn

99

OrderDetail

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 BookId String Require

Length = 24

Mã sách

2 Quantity Number Required Số lượng sách

3 SellPrice Number Required Giá bán sách

BookReceipt

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 ReceiptDate DateTime Required Ngày nhập sách

3 TotalPrice Number Required Tổng giá nhập

4 ReceiptDetails Array Danh sách chi tiết

nhập sách • Danh sách phương thức

100

1 Create BookReceipt BookReceipt Tạo một phiếu

nhập sách

ReceiptDetail

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 BookId String Require

Length = 24

Mã sách

2 Quantity Number Required Số lượng sách nhập

3 Price Number Required Giá nhập sách

Feedback

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Email String Email người gửi

phản hồi

2 Content String Nội dung phản hồi

3 Date DateTime Ngày gửi phản hồi

• Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

101

Discount

• Danh sách thuộc tính

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 Id String Require

Length = 24

Mã định danh

2 Code String Required Mã giảm giá

3 Ratio Number Required Tỉ lệ giảm giá

4 MaxDiscount Number Required Giá giảm tối đa

5 ExpiredDate DateTime Required Ngày hết hạn

• Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create Discount Discount Tạo một mã giảm

giá

2 Delete DiscountId Boolean Xoá một mã giảm

giá 3 Update DiscountId, Discount Boolean Cập nhật một mã giảm giá Recommend • Danh sách thuộc tính

102

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú

1 BookId String Require

Length = 24

Mã sách

2 Type Number Required Loại đề xuất (0 –

hot, 1 – new) • Danh sách phương thức

STT Tên phương thức Tham số Kiểu trả về Ý nghĩa/Ghi chú

1 Create Recommend Recommend Tạo một đề xuất

2 Update BookId, Type Recommend Xoá một đề xuất

3. Activity Diagrams 3.1. Đăng ký bán sách 3.1. Đăng ký bán sách

103

Hình 19 Sơ đồ hoạt động - Đăng ký bán sách

104

Hình 20 Sơ đồ hoạt động - Sửa thông tin sách

105

Hình 21 Sơ đồ hoạt động - Quản lý tài khoản

106

Hình 22 Sơ đồ hoạt động - Nhập sách

107

Hình 23 Sơ đồ hoạt động - Xem lịch sử nhập xuất sách

108

Hình 24 Sơ đồ hoạt động - Quản lý đơn hàng

109

Hình 25 Sơ đồ hoạt động - Xem báo cáo doanh số

110

Hình 26 Sơ đồ hoạt động - Tương tác với khách hàng

111

Hình 27 Sơ đồ hoạt động - Đăng ký tài khoản

112

Hình 28 Sơ đồ hoạt động - Đăng nhập

113

Hình 29 Sơ đồ hoạt động - Sửa thông tin tài khoản

114

Hình 30 Sơ đồ hoạt động - Tra cứu sách

115

Hình 31 Sơ đồ hoạt động - Đánh giá bình luận sách

116

Hình 32 Sơ đồ hoạt động - Thêm vào giỏ hàng

117

Hình 33 Sơ đồ hoạt động - Thanh toán sách trong giỏ hàng

118

Hình 34 Sơ đồ hoạt động - Thêm sách vào danh sách yêu thích

119

Hình 35 Sơ đồ hoạt động - Nhắn tin với Chatbot

120

Hình 36 Sơ đồ hoạt động - Gửi phản hồi

4. Thiết kế giao diện 4.1. Giao diện Admin 4.1. Giao diện Admin

121

Hình 37 Giao diện Admin - Menu

122

Hình 38 Giao diện Admin - Màn hình đăng nhập

123

Hình 39 Giao diện Admin – Quản lý các cài đặt khác – Màn hình chính

124

4.1.4. Màn hình quản lý order – Danh sách order

Hình 41 Giao diện Admin - Quản lý order

4.1.5. Màn hình quản lý phản hồi

Hình 42 Giao diện Admin - Màn hình quản lý phản hồi

4.1.6. Màn hình quản lý sách 4.1.6.1. Màn hình chính

125

Hình 43 Giao diện Admin - Quản lý sách - Màn hình chính

126

Hình 44 Giao diện Admin - Quản lý sách - Danh sách Category

127

Hình 45 Giao diện Admin - Quản lý sách - Chỉnh sửa Category

128

Hình 46 Giao diện Admin - Quản lý sách - Chỉnh sửa sách

129

130

Hình 48 Giao diện Admin - Quản lý sách - Nhập sách - Thêm sách mới

131

Hình 49 Giao diện Admin - Quản lý sách - Thêm Category

132

Hình 50 Giao diện Admin - Quản lý sách - Thêm sách

133

4.1.7.1. Màn hình chính

Hình 51 Giao diện Admin - Quản lý tài khoản - Màn hình chính

134

Hình 52 Giao diện Admin - Quản lý tài khoản - Thêm User

135

Hình 53 Giao diện Admin - Quản lý tài khoản - Chính sửa User

4.1.8. Màn hình báo cáo 4.1.8.1. Báo cáo doanh thu

136

Hình 54 Giao diện Admin - Màn hình báo cáo - Báo cáo doanh thu

137

Hình 55 Giao diện Admin - Màn hình báo cáo - Báo cáo nhập sách

4.1.8.3. Báo cáo xuất sách

Hình 56 Giao diện Admin - Màn hình báo cáo - Báo cáo xuất sách

4.2. Giao diện khách hàng 4.2.1. Màn hình đăng nhập 4.2.1. Màn hình đăng nhập

138

Hình 57 Giao diện khách hàng - Đăng nhập

139

Hình 58 Giao diện khách hàng - Đăng ký

140

Hình 59 Giao diện khách hàng - Trang chủ

141

Hình 60 Giao diện khách hàng - Tìm kiếm sách

142

Hình 61 Giao diện khách hàng - Sách yêu thích

143

Hình 62 Giao diện khách hàng - Danh sách order

144

Hình 63 Giao diện khách hàng - Chi tiết sách

145

Hình 64 Giao diện người dùng - Chatbot

146

Hình 65 Giao diện khách hàng - Tài khoản

147

Hình 66 Giao diện khách hàng - Màn hình phản hồi

148

149

CHƯƠNG 6. YÊU CẦU HỆ THỐNG VÀ TRIỂN KHAI 1. Yêu cầu hệ thống

Cấu hình yêu cầu để chạy hệ thống: - Ứng dụng cho Client (Android):

+ Gradle : 6.7

+ minSdkVersion: 16 + targetSdkVersion: 30

- Ứng dụng cho Admin: hoạt động tốt trên mọi trình duyệt web

2. Triển khai

2.1. Công nghệ sử dụng

Môi trường phát triển: Web Application, Mobile Application Ngôn ngữ lập trình: Javascript, Dart

Database: MongoDB Front-end: ReactJS, Flutter Back-end: NodeJS

2.2. Các tool hỗ trợ

Tool phát triển dự án: Visual Studio Code, Postman Tool quản lý phiên bản: Git & Github

150

CHƯƠNG 7. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết quả đạt được

• Thông qua việc nghiên cứu đồng thời kết hợp các công nghệ, nhóm đã phát triển được một hệ thống kinh doanh sách trực tuyến hoàn chỉnh với một app mobile dành cho khách hàng và một web app quản lý.

• Phần mềm đáp ứng được tương đối đầy đủ và khá tốt các chức năng cần có của hệ thống kinh doanh sách trực tuyến với giao diện trực quan, khá dễ sử dụng.

• Những kết quả mà nhóm đã đạt được thông qua quá trình nghiên cứu và phát triển dự án này:

o Các thành viên của nhóm thực hiện đã phối hợp tốt với nhau, chia sẻ công việc hợp lý để cùng đi đến thành công chung của dự án

o Hiểu và sử dụng được NodeJS – một công nghệ rất phổ biến hiện nay cùng những thư viện JS trong việc xây dựng hệ thống back-end

o Tìm hiểu được dịch vụ lưu trữ dữ liệu Mongo Atlas, giúp cho việc lưu trữ và truy xuất dữ liệu được nhanh chóng và hiệu quả

o Biết được cách vận hành của hệ thống Client – Server, quản lý các API, biết cách sử dụng phần mềm Postman để kiểm thử các API

2. Thuận lợi và khó khăn

• Thuận lợi:

o Các công nghệ mới được phát triển dựa trên các ngôn ngữ lập trình mà nhóm đã

Một phần của tài liệu Xây dựng hệ thống kinh doanh sách trực tuyến với chatbot (khóa luận tốt nghiệp) (Trang 103)

Tải bản đầy đủ (PDF)

(169 trang)