Professional Documents
Culture Documents
1
MỤC LỤC
Mục lục
Mục lục .................................................................................................2
Lời cam kết ........................................................................................... 3
I. Giới thiệu hệ thống BoEC.......................................................... 4
II. Phân tích hệ thống ......................................................................5
III. Thiết kế hệ thống ......................................................................34
IV. Lập trình.................................................................................... 40
V. Tối ưu hóa cơ sở dữ liệu........................................................... 47
VI. Phân tích ý kiến và hành vi khách hàng ................................ 50
VII. Kết luận ..................................................................................... 72
2
LỜI CAM KẾT
Tôi – Lê Quang Đạo – cam đoan tài liệu này do cá nhân tự chỉnh sửa, cập
nhật từ bài tập nhóm của mình. Các biểu đồ, code tôi tự làm thêm đều có
chú thích rõ ràng. Nếu copy từ các bạn, tôi không những tự thấy hổ thẹn
mà còn xấu hổ với bạn bè, thầy giáo và ngôi trường PTIT yêu quý của tôi.
Tôi xin hoàn toàn chịu trách nhiệm với dù chỉ một sao chép vi phạm quy
chế của giảng viên và nhà trường.
Hà Nội, ngày 19 tháng 06 năm 2021
Sinh viên
Lê Quang Đạo
3
I. Giới thiệu hệ thống BoEC
Hệ thống quản lý bán hàng BoEC với nhiều mặt hàng ( Book , Clothes ,
Electronics ) dành cho nhân viên bán hàng hoặc quản lý cửa hàng , khách
hàng . Khảo sát các trang thương mại điện tử để xác định yêu cầu chức
năng , hệ thống cho phép khách hàng comment và rating sau khi mua sản
phẩm .
Hệ thương mại điện tử BoEC cho phép Nhân viên nhập kho, Nhân viên
kinh doanh, Nhân viên bán hàng, Nhân viên hệ thống, Nhân viên
marketing và Khách hàng (là người dùng hoặc khách vãng lai) sử dụng:
- Người dùng: có thể đăng nhập, đăng xuất, sửa thông tin tài khoản.
- Nhân viên nhập kho: là người dùng, có thể thực hiện Quản lý kho
hàng.
- Nhân viên kinh doanh: là người dùng, có thể Quản lý các mặt hàng
trên web và Quản lý các khuyến mại.
- Nhân viên bán hàng: là người dùng, có thể Quản lý đơn hàng, Xử lý
các vấn đề khách hàng.
- Nhân viên hệ thống: là người dùng, có thể Quản lý tài khoản truy cập
hệ thống.
- Nhân viên marketing: là người dùng, có thể Quản lý marketing.
- Khách hàng: có thể là người dùng hoặc khách vãng lai, có thể Đăng ký
làm người dùng, Phản hồi và Đặt hàng.
Hệ thống đảm bảo các chức năng:
- Quản lý kho hàng: Nhân viên nhập kho có thể Tìm kiếm hàng, thêm,
sửa, xóa mặt hàng trong kho.
- Quản lý các mặt hàng trên web: Nhân viên kinh doanh có thể tìm
kiếm, thêm, sửa, xóa mặt hàng.
- Quản lý khuyến mại: Nhân viên kinh doanh có thể thêm, sửa, xóa
khuyến mại.
4
- Quản lý đơn hàng: Nhân viên bán hàng có thể cập nhật, chuyển bộ
phận, xác nhận đơn và thống kê đơn hàng.
- Xử lý các vấn đề khách hàng: Nhân viên bán hàng có thể đọc ý kiến,
trả lời bình luận, trả lời tin nhắn của khách hàng.
- Quản lý tài khoản truy cập hệ thống: Nhân viên hệ thống có thể
thêm, sửa, xoá tài khoản người dùng.
- Quản lý marketing: Nhân viên marketing có thể xem thống kê thu chi
của các chiến dịch marketing, xem thông số cụ thể và tạo chiến dịch
marketing mới.
- Đăng ký là người dùng: Khách hàng vãng lai có thể đăng ký trở thành
thành viên của hệ thống thuận tiện hơn cho việc mua bán.
- Phản hồi: Khách hàng có thể nhắn tin phản hồi, hoặc bình luận, đánh
giá sao sau khi mua đặt hàng.
- Đặt hàng: Khách hàng có thể xác nhận việc đặt, thêm hàng vào giỏ,
tìm kiếm mặt hàng, xem giỏ hàng và thực hiện việc thanh toán hoặc huỷ
đặt và thêm vào wishlist.
II. Phân tích
1. Khảo sát các trang thương mại điện tử
Trang thương mại điện tử : Shopee.vn
Giao diện chính :
5
Các chức năng chính :
S Tên Giao diện mô tả
T
T
chức
năng
1 Tìm
kiếm
mặt
hàng
2 Cart
6
3 Mua
ngay
4 Đánh
giá sản
phẩm
7
5 Chat
với
Shop
6 Xem
Shop
8
7 Sắp xếp
8 Giao
diện
profile
9 Rating
9
2. Xác định các chức năng
Tác nhân :
- Nhân viên bán hàng : Xử lý đơn hàng , phản hồi khách hàng
- Nhân viên nhập kho : Quản lý kho hàng
- Quản lý : Quản lý các mặt hàng trên web , các sự kiện khuyến mãi , quản
lý tài khoản truy cập hệ thống
- Nhân viên Marketing : Quản lý Marketing
- Khách hàng : Đăng ký làm người dùng , sử dụng trang Web
Module Chức năng :
- Thêm sản phẩm vào kho hàng : Nhân viên nhập kho đăng nhập vào hệ
thống – Hệ thống hiển thị giao diện của nhân viên nhập kho – Nhân viên
chọn them sản phẩm vào kho hàng – Hệ thống hiển thị giao diện thêm sản
phẩm – Nhân viên nhập thông tin sản phẩm cần thêm và ấn nút OK – Hệ
thống thông báo thêm thành công và quay lại giao diện của người quản lý
kho
- Sửa sản phẩm ở kho hàng : Nhân viên nhập kho đăng nhập vào hệ
thống – Hệ thống hiển thị giao diện của nhân viên nhập kho – Nhân viên
chọn tìm kiếm sản phẩm – Hệ thống hiển thị giao diện tìm kiếm – Nhân
viên nhập tên sản phẩm cần sửa và ấn Tìm kiếm – Hệ thống hiển thị danh
sách sản phẩm khớp với từ khóa cần tìm kiếm – Nhân viên chọn nút Sửa
ở trên sản phẩm cần sửa – Hệ thống hiển thị thông tin sản phẩm cần sửa
lên các Textfield – Nhân viên thay đổi các thông số và ấn Update – Hệ
thống thông báo sửa thành công
- Xóa sản phẩm ở kho hàng : Nhân viên nhập kho đăng nhập vào hệ
thống – Hệ thống hiển thị giao diện của nhân viên nhập kho – Nhân viên
chọn tìm kiếm sản phẩm – Hệ thống hiển thị giao diện tìm kiếm – Nhân
viên nhập tên sản phẩm cần sửa và ấn Tìm kiếm – Hệ thống hiển thị danh
sách sản phẩm khớp với từ khóa cần tìm kiếm – Nhân viên chọn Xóa ở
10
trên sản phẩm – Hệ thống hiển thị thông báo confirm – Nhân viên xác
nhận OK – Hệ thống thông báo xóa thành công
- Xem toàn bộ danh sách sản phẩm trên Kho : Nhân viên nhập kho đăng
nhập vào hệ thống – Hệ thống hiển thị giao diện của nhân viên nhập kho
– Nhân viên chọn xem tất cả - Hệ thống hiển thị tất cả sản phẩm
- Các chức năng như Xóa , Sửa , Thêm , Tìm kiếm ,Xem tất cả , Thêm
giá khuyến mãi sản phẩm trên web thì thao tác tương tự như trên
- Duyệt đơn hàng : Nhân viên bán hàng đăng nhập vào hệ thống – hệ
thống hiển thị giao diện của nhân viên bán hàng – Nhân viên bán hàng
chọn Đơn hàng chờ xét duyệt – Giao diện hiển thị danh sách các đơn
hàng đang chờ xét duyệt - Nhân viên chọn mục tìm kiếm – Giao diện tìm
kiếm hiện ra – Nhân viên nhập tên đơn hàng hoặc mã đơn hàng rồi ấn tìm
kiềm – Hệ thông trả lại danh sách kết quả - Nhân viên click chọn đơn
hàng cần duyệt và ấn duyệt ( trước đó nhân viên phải gọi điện thoại cho
khách hàng để xác nhận lại trước khi ấn xét duyệt ) – Hệ thống thông báo
thành công ( Chức năng này chỉ dùng cho khách hàng thanh toán bằng
tiền mặt , khách hàng thanh toán qua Visa hoặc Airpay thì hệ thống tự xét
duyệt )
- Xem các đơn hàng đang được vẩn chuyển : Nhân viên bán hàng đăng
nhập vào hệ thống – hệ thống hiển thị giao diện của nhân viên bán hàng –
Nhân viên chọn đơn hàng đang được vận chuyển – Giao diện hiển thị các
đơn hàng đang được vẩn chuyển – Nhân viên chọn tìm kiếm – Giao diện
tìm kiếm hiển ra – Nhân viên nhập mã đơn hàng hoặc tên đơn hàng rồi ấn
Tìm kiếm – Hệ thống hiển thị danh sách đơn hàng ứng với từ khóa tìm
kiếm
- Xem các đơn hàng đã được giao thành công : Thao tác tương tư như
xem các đơn hàng đang được vẩn chuyển
- Xem các đơn hàng bị hủy : Thao tác tương tự như xem các đơn hàng
đang được vẩn chuyển
11
- Xóa đơn hàng : Nhân viên bán hàng đăng nhập vào hệ thống – hệ thống
hiển thị giao diện của nhân viên bán hàng – Nhân viên bán hàng chọn
Đơn hàng chờ xét duyệt – Giao diện hiển thị danh sách các đơn hàng
đang chờ xét duyệt - Nhân viên chọn mục tìm kiếm – Giao diện tìm kiếm
hiện ra – Nhân viên nhập tên đơn hàng hoặc mã đơn hàng rồi ấn tìm kiềm
– Hệ thông trả lại danh sách kết quả - Nhân viên chọn Hủy đơn hàng cần
xóa trên danh sách đơn hàng – Hệ thống hiển thị thông báo xác nhận –
Nhân viên xác nhân hủy đơn hàng – Hệ thống thông báo thành công
- Xem thống kê sản phẩm được mua nhiều : Nhân viên quản lý đăng
nhập vào hệ thống – hệ thống hiển thị giao diện nhân viên quản lý – Nhân
viên quản lý chọn xem thống kê – Giao diện xem thống kê hiện lên –
Nhân viên chọn xem thống kê sản phẩm – Hệ thống hiển thị giao diện
xem thống kê sản phẩm – nhân viên nhập các mốc thời gian và ấn Xem –
Hệ thống hiển thị danh sách sản phẩm và số lần mua trong khung thời
gian thống kê
- Xem thống kê doanh thu theo thời gian : Nhân viên quản lý đăng nhập
vào hệ thống – hệ thống hiển thị giao diện nhân viên quản lý – Nhân viên
quản lý chọn xem thống kê – Giao diện xem thống kê hiện lên – Nhân
viện chọn xem thống kê doanh thu – Giao diện xem thống kê doanh thu
hiện lên – Nhân viên chọn xem thống kê doanh thu theo thời gian – Hệ
thống hiện thị giao diện xem thống kê doanh thu theo thời gian – Nhân
viên nhập các mốc thời gian cần xem và ấn xem – Hệ thống hiển thị
doanh thu từng ngày theo mốc thời gian
- Thêm voucher khuyến mãi : Nhân viên quản lý đăng nhập vào hệ thống
– Hệ thống hiển thị giao diện – Nhân viên chọn quản lý voucher- Giao
diện quản lý voucher hiện ra – Nhân viên chọn thêm voucher – Giao diện
them voucher hiện ra – Nhân viên nhập thông tin voucher mới vào và ấn
OK – Hệ thống thông báo them voucher thành công
12
- Sửa voucher : Nhân viên quản lý đăng nhập vào hệ thống – Hệ thống
hiển thị giao diện – Nhân viên chọn quản lý voucher- Giao diện quản lý
voucher hiện ra – Nhân viên chọn tìm kiếm voucher – Giao diện tìm kiếm
hiện ra – Nhân viên nhập tên voucher và ấn tìm kiếm – Hệ thống hiển thị
danh sách voucher – Nhân viên chọn sửa voucher – Hệ thống hiển thị
thông tin voucher vào các textfield – Nhân viên sửa thông tin và xác nhận
OK – Hệ thống thông báo sửa thành công
- Xóa voucher : Nhân viên quản lý đăng nhập vào hệ thống – Hệ thống
hiển thị giao diện – Nhân viên chọn quản lý voucher- Giao diện quản lý
voucher hiện ra – Nhân viên chọn tìm kiếm voucher – Giao diện tìm kiếm
hiện ra – Nhân viên nhập tên voucher và ấn tìm kiếm – Hệ thống hiển thị
danh sách voucher – Nhân viên chọn xóa voucher – Hệ thống hiển thị
thông báo xác nhận – Nhân viên xác nhận thông báo – Hệ thống hiển thị
thông báo xóa thành công
- Sắp xếp voucher theo sản phẩm :
Nhân viên quản lý đăng nhập vào hệ thống – Hệ thống hiển thị giao diện
– Nhân viên chọn quản lý voucher- Giao diện quản lý voucher hiện ra –
Nhân viên chọn (Book , Clothes , Electronics ) trên thành Spiner và ấn
sắp xếp – Hệ thống hiển thị lại danh sách theo Tag đã chọn .
- Đăng ký người dùng : ở giao diện đăng nhập của trang web , khách hàng
chọn đăng ký – Giao diện đăng ký hiện ra – Khách hàng nhập thông tin
cá nhân và ấn đăng kí – Hệ thống thông báo đăng ký thành công và tự
động đăng nhập cho khách hàng
- Thêm sản phẩm vào Cart : Khách hàng đăng nhập vào trang Web –
giao diện web hiện ra – Khách hàng nhập tên sản phẩm cần mua trên
thanh tìm kiếm và ấn tìm kiếm – Giao diện tìm kiếm hiện ra với danh
sách sản phẩm ứng với từ khóa – Khách hàng click ‘Add to Cart’ – Hệ
thống hiển thị thông báo thêm thành công
13
- Xóa sản phẩm ở Cart : Khách hàng đăng nhập vào trang Web – giao
diện web hiện ra – Khách hàng click My Cart – Giao diện cart hiện ra
gồm danh sách sản phẩm đã thêm – Khách hàng chọn sản phẩm cần xóa
và ấn xóa – hệ thống thông báo xóa thành công
- Thanh toán sản phẩm ở Cart : Khách hàng đăng nhập vào trang Web –
giao diện web hiện ra – Khách hàng click My Cart – Giao diện cart hiện
ra gồm danh sách sản phẩm đã thêm- Khách hàng chọn ‘Mua hàng ’ –
Giao diện thanh toán hiện ra – Khách hàng chọn phương thức thanh toán
và mã voucher nếu có và ấn đặt hàng – Giao diện hiện thông báo đặt hàng
thành công ( Nếu khách hàng chọn thanh toán qua Visa hoặc Airpay còn
nếu thanh toán bằng Cash thì xác hiện ra thông báo đợi xác nhận )
- Comment và rating sản phẩm : Khách hàng đăng nhập vào trang Web –
giao diện web hiện ra – Khách hàng chọn vào My profile – Giao diện
Profile hiện ra – Khách hàng chọn đơn hàng – Giao diện đơn hàng hiện ra
– Khách hàng chọn đơn hàng đã mua – Giao diện đơn hàng đã mua hiện
ra – Khách hàng chọn vào đánh giá vào đơn hàng mà khách hàng muốn
đánh giá – Giao diện đánh giá hiện ra – Khách hàng chọn rating cho sản
phẩm kèm Comment ( Chỉ có sản phẩm mình đã mua mới được đánh giá
chứ không mua mà đòi đánh giá sẽ có những shop đối thủ vào comment
dìm hàng ) và ấn OK – Hệ thống thông báo và quay lại giao diện đơn
hàng
- Phản hồi khách hàng : Nhân viên bán hàng đăng nhập vào hệ thống – hệ
thống hiển thị giao diện của nhân viên bán hang – Nhân viên chọn phản
hồi của khách hàng – Hệ thống hiển thị danh sách phản hồi của khách
hàng ( được sắp xếp theo date – có thể thay đổi theo Sản phẩm ) – Nhân
viên chọn 1 phản hồi của khách hàng – Hệ thống hiển thị giao diện phản
hồi của nhân viên – Nhân viên nhập phản hồi và ấn Submit – Hệ thống
thông báo thành công
14
- Quản lý marketing : Nhân viên marketing chọn Quản lý marketing. Hệ
thống hiển thị giao diện gồm xem thống kê thu chi quảng cáo, xem các
chỉ số marketing, lên lịch và tạo chiến dịch marketing mới. Nhân viên
marketing chọn xem thống kê hoặc xem các chỉ số marketing để xem các
thống kê cụ thể liên quan; chọn tạo chiến dịch mới để chuyển hướng đến
các trang quản lý chiến dịch quảng cáo.
3. Xây dựng biểu đồ
Biểu đồ Use-case
Scenario
Tên use-case Người dùng đăng nhập
Tác nhân Người dùng hệ thống
Mục đích Cho người dùng đăng nhập vào hệ thống
Tiền điều kiện Người dùng đã có tài khoản và mật khẩu hệ thống
Mô tả các bước 1) Người dùng truy cập vào hệ thống
2) Hệ thống hiển thị giao diện
15
3) Người dùng nhập tài khoản và mật khẩu của
mình
4) Hệ thống kiểm tra tính hợp lệ của tài khoản và
mật khẩu và hiển thị giao diện hệ thống tương
ứng với phần quyền của tài khoản
16
Tác nhân Nhân viên quản lý kho hàng
Mục đích Cho người quản lý them sản phẩm vào kho hàng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống thành công
Mô tả các bước 1. Nhân viên quản lý chọn tìm kiếm sản phẩm
2. Hệ thống hiển thị giao diện
3. Người dùng nhập tên sản phẩm và ấn tìm kiếm
4. Hệ thống tìm kiếm sản phẩm ứng với từ khóa và
hiển thị 1 danh sách sản phẩm
5. Nhân viên chọn 1 sản phẩm và ấn Update
6. Hệ thống hiển thị giao diện sửa sản phẩm
7. Nhân viên sửa sản phẩm và ấn Update
8. Hệ thống kiểm tra tính hợp lệ và thông báo sửa
thành công
17
3. Người dùng nhập tên sản phẩm vào ô tìm kiếm
và ấn tìm kiếm
4. Hệ thống hiện thị danh sách kết quả ứng với
danh sách tìm kiếm
5. Nhân viên chọn sản phẩm cần xóa và ấn Xóa
6. Hệ thống hiển thị thông báo xác nhận
7. Nhân viên xác nhận ấn OK
8. Hệ thống thông báo xóa thành công
Hậu điều kiện Nhân viên duyệt đơn hàng thành công
18
Ngoại lệ
Hậu điều kiện Nhân viên hủy đơn hàng thành công
Ngoại lệ
Tên use-case Xem chi tiết đơn hàng đang vận chuyển
Tác nhân Nhân viên bán hàng
Mục đích Nhân viên xem danh sách đơn hàng đang vận chuyển
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống thành công
Mô tả các bước 1. Nhân viên bán hàng chọn quản lý đơn hàng
2. Hệ thống hiển thị giao diện quản lý đơn hàng
3. Nhân viên chọn đơn hàng đang vận chuyển
19
4. Hệ thống hiển thị giao diện danh sách đơn hàng
đang được vẩn chuyển
5. Nhân viên nhập tên đơn hàng và ấn tìm kiếm
6. Hệ thống hiện thị danh sách đơn hàng ứng với
từ khóa
7. Nhân viên click và đơn hàng cần xem
8. Hệ thống hiển thị chi tiết đơn hàng cho nhân
viên
Hậu điều kiện Nhân viên xem chi tiết đơn hàng thành công
Ngoại lệ
Tên use-case Xem chi tiết đơn hàng đã giao thành công
Tác nhân Nhân viên bán hàng
Mục đích Nhân viên duyệt đơn hàng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống thành công
Mô tả các bước 1. Nhân viên bán hàng chọn quản lý đơn hàng
2. Hệ thống hiển thị giao diện quản lý đơn hàng
3. Nhân viên chọn đơn hàng đã giao
4. Hệ thống hiển thị giao diện
5. Nhân viên nhập tên đơn hàng và ấn tìm kiếm
6. Hệ thống hiện thị danh sách đơn hàng ứng với
từ khóa
7. Nhân viên double click vào đơn hàng cần xem
8. Hệ thống hiển thị giao diện gồm chi tiết đơn
hàng cần xem
20
Hậu điều kiện Nhân viên xem chi tiết đơn hàng đã giao
Ngoại lệ
21
4. Hệ thống hiển thị giao diện
5. Nhân viên chọn xem thống kê doanh thu theo
thời gian
6. Hệ thống hiển thị giao diện xem thống kê doanh
thu theo thời gian
7. Nhân viên nhập mốc thời gian cần tìm và ấn
Xem
8. Hệ thống hiển thị danh sách doanh thu các ngày
trong mốc thời gian
Hậu điều kiện Nhân viên xem thống kê thành công
Ngoại lệ
22
Tên use-case Update Voucher
Tác nhân Nhân viên quản lý
Mục đích Update voucher
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống thành công
Mô tả các bước 1. Nhân viên chọn quản lý voucher
2. Hệ thống hiển thị giao diện ql voucher
3. Nhân viên chọn Update Voucher
4. Hệ thống hiển thị giao diện update voucher
5. Nhân viên nhập tên voucher và tìm kiếm
6. Hệ thống hiện thị danh sách voucher ứng với từ
khóa tìm kiếm
7. Nhân viên click và voucher cần update
8. Hệ thống hiển thị thông tin voucher lên các
input text
9. Nhân viên thay đổi thông tin và ấn xác nhận
10.Hệ thống thông báo update thành công
Hậu điều kiện Update voucher thành công
Ngoại lệ 10.1. Hệ thống thông báo tên voucher không được
để trống
10.2. Hệ thống thông báo %discount không được
để trống
23
Mô tả các bước 1. Nhân viên chọn quản lý voucher
2. Hệ thống hiển thị giao diện ql voucher
3. Nhân viên chọn Xóa Voucher
4. Hệ thống hiển thị giao diện update voucher
5. Nhân viên nhập tên voucher và tìm kiếm
6. Hệ thống hiện thị danh sách voucher ứng với từ
khóa tìm kiếm
7. Nhân viên click và voucher cần xóa
8. Hệ thống hiển thị thông báo xác nhận xóa
9. Nhân viên xác nhận và ấn OK
10.Hệ thống thông báo xóa thành công
Hậu điều kiện Xóa voucher thành công
Ngoại lệ
24
Tên use-case Xóa sản phẩm khỏi Cart
Tác nhân Khách hàng
Mục đích Xóa sản phẩm khỏi Cart
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống thành công
Mô tả các bước 1. Khách hàng chọn My cart trên giao diện chính
2. Hệ thống hiển thị giao hiện Cart
3. Khách hàng chọn Remove ở sản phầm mà minh
muốn xóa bỏ
4. Hệ thống hiển thị thông báo thành công
Hậu điều kiện Xóa sản phẩm khỏi Cart thành công
Ngoại lệ
25
Tên use-case Đăng ký làm hội viên
Tác nhân Khách hàng
Mục đích Đăng ký làm hội viên
Tiền điều kiện Người dùng đã có tài khoản và mật khẩu định đăng ký
Mô tả các bước 1. Khách hàng chọn Đăng ký trên giao diện đăng
nhập
2. Hệ thống hiển thị giao hiện Đăng ký
3. Khách hàng nhập thông tin cần đăng ký và ấn
đăng ký
4. Hệ thống hiển thị thông báo thành công
Hậu điều kiện Đăng ký thành công
Ngoại lệ 4.1. Hệ thống thông báo tài khoản đã tồn tại
4.2. Hệ thống thông báo mật khẩu không khớp
4.3. Hệ thống thông báo mật khẩu quá ngắn
4.4. Hệ thống thông báo mật khẩu không được
chứ kí tự đặc biệt
26
5. Khách hàng chọn Đơn hàng đã mua
6. Hệ thống hiển thị danh sách sản phẩm đã mua
7. Khách hàng chọn 1 sản phẩm và click đánh giá
8. Giao diện đánh giá hiện ra
9. Khách hàng chọn rating và nhập comment và ấn
Comment
10.Hệ thống thông báo đánh giá thành công
Hậu điều kiện Comment và rating thành công
Ngoại lệ 7.1. Hệ thống thông báo sản phẩm đã được đánh giá
yêu cầu đánh giá sản phẩm khác
Acceptance criteria
User story Acceptanve criteria
Là 1 nhân viên nhập kho , tôi muốn - Tìm kiếm sản phẩm
quản lý các mặt hàng trong kho của - Có giao diện xem chi tiết 1 mặt
mình hàng
- Cho phép thêm , sửa , xóa mặt
hàng
Là 1 nhân viên quản lý , tôi muốn - Tìm kiếm sản phẩm có trên
quản lý tài khoản của tất cả người web
dùng , mặt hàng có trên web , - Thêm ,sửa , xóa sản phẩm
voucher , xem thống kê - Có giao diện xem chi tiết 1 sản
phẩm
- Xem thống kê doanh thu theo
tháng , quý , năm , mốc thời
gian
- Xem chi tiết doanh thu 1 tháng
, quý , năm
27
- Xem thống kê sản phẩm được
mua nhiều theo thời gian
- Xem chi tiết voucher
- Thêm , sửa , xóa voucher
- Thêm , Xóa , Sửa tài khoản
người dung
- Có giao diện quản lý tài khoản
người dùng
Là 1 nhân viên bán hàng , tôi muốn - Có giao diện quản lý đơn hàng
quản lý đơn hàng của khách hàng , xử - Cho phép phê duyệt , hủy đơn
lý phản hồi của khách hàng hàng
- Xem danh sách , chi tiết các
đơn hàng đang được vẩn
chuyển hoặc đã giao
- Có giao diện xem phản hồi của
khách hàng
- Có thông báo khi khách hàng
phản hồi
- Cho phép phản hồi khách hàng
Là 1 nhân viên Marketing , tôi mong - Có giao diện biểu đồ để xem
muốn được quản lý Marketing thống kê thu chi từ việc
marketing.
- Liệt kê chi tiết các chỉ số.
Là 1 khách hàng , tôi muốn được đặt - Có giao diện giỏ hàng
hàng trên hệ thống , sử dụng voucher - Thêm sản phẩm vào giỏ hàng
, phản hồi và đánh giá sản phẩm khi - Xóa sản phẩm khỏi giỏ hàng
đã mua hàng , Sửa thông tin cá nhân - Phần hồi sản phẩm đã mua và
và đăng kí tài khoản mới đánh giá
28
- Sử dụng voucher khi mua hàng
- Có giao diện profile
- Sửa profile
- Đăng kì tài khoản mới
29
• Biểu đồ thêm sản phẩm trên web
30
• Biểu đồ update sản phẩm trên web
31
• Biểu đồ comment và rating
• Biểu đồ đăng kí
32
• Biểu đồ duyệt hóa đơn
33
III. Thiết kế
1. Xây dựng kiến trúc tổng thể
Vì hệ thống được triển khai trên nền tảng Django, nên chúng ta thiết kế theo
mô hình MVT (Model – View – Template). Yêu cầu cần có sự phân chia
34
thành các app (folder) để thực hiện chuyên biệt mỗi nhóm chức năng được
đề ra. Hệ thống vẫn đảm bảo có đủ 3 tầng (3-layer): Tầng presentation là
folder template, chứa các file giao diện front-end của hệ thống; tầng business
logic chứa các lớp controller thực hiện nghiệp vụ chức năng của hệ thống
(lưu ý: trong mô hình MVT của Django, lớp DAO thường thấy được thay thế
bằng các lớp VIEW, chức năng tương tự như một controller bình thường.
VIEW có 2 dạng tiếp cận là class-based và function-based. Ở hệ thống này,
em xây dựng dưới dạng functionbased để không mất các đặc điểm tổng quát
như thiết kế với lớp DAO bên MVC); tầng data (model) chứa các model
tương ứng với CSDL, được “use” bởi các VIEW để thực hiện thao tác và
truy vấn tới các bản ghi.
2. Tiến hành thiết kế chi tiết các gói và sử dụng Pattern
2.1. Package User View
Lớp UserView thực hiện liên kết tới các package ở tầng data như hình
vẽ để đảm nhiệm các chức năng: Đăng nhập theo phân quyền, sửa
thông tin cá nhân, nhắn tin, đọc thông báo, bình luận, lấy các thông tin
về điểm thưởng, phòng ban. Lớp UserView có áp dụng Facade Design
Pattern để quản lý sub-system - cây kế thừa của User. UserView cũng
thực nhận thông báo – kết quả của luật kết hợp để đề xuất các mặt
hàng cho khách hàng.
35
Biểu đồ lớp thiết kế được tạo từ model
2.2. Pacekage Order View
36
Lớp OrderView thực hiện liên kết tới các package ở tầng data như
hình vẽ để đảm nhiệm các chức năng: Tạo order, tạo bill, chọn
payment/shipment, lấy thông tin trong giỏ hàng, xử lí đơn hàng. Lớp
OrderView có áp dụng Factory Design Pattern để hỗ trợ việc lấy
thông tin của các loại payment 1 cách nhanh nhất. Lớp
PaymentFactory sẽ hỗ trợ get các kiểu tương ứng của payment về cho
Order. Bên cạnh đó, Order Builder sẽ hỗ trợ khách hàng trong việc tạo
các hoá đơn thông qua các “item” thành phần của Order. Quá trình
này sẽ diễn ra trong suốt với người dùng và lớp Builder cũng chỉ cần
các thành phần của Order để trả về đối tượng Order cho chính
OrderView.
37
Các kiểu Payment
2.3. Package Product View
Lớp ProductView thực hiện liên kết tới các package ở tầng data như
hình vẽ để đảm nhiệm các chức năng: Hiển thị bình luận cho từng mặt
hàng, giúp quản lý tạo mặt hàng và đưa thông tin mặt hàng lên hệ
thống, chạy thuật toán phân tích ý kiến, cảm tình lấy thông tin liên
quan đến mặt hàng và cập nhật mặt hàng. Lớp ProductView có áp
dụng Factory Design Pattern để hỗ trợ việc lấy thông tin của các loại
38
Product và Price 1 cách nhanh nhất. Lớp ProductFactory sẽ hỗ trợ get
các kiểu tương ứng của Product về cho Order
Lớp CartView thực hiện liên kết tới các package ở tầng data như hình vẽ để
đảm nhiệm các chức năng: Tạo giỏ hàng, lấy thông tin từ giỏ hàng, tạo các
item
39
3. Physical data model và CSDL
40
Home page Electronics
41
Giao diện thêm vào giỏ hàng
42
Giao diện thanh toán
43
Module này có sẵn trong Django admin . Admin chính có thể phân quyền
cho các admin còn lại có quyền sử dụng và truy cập đến dữ liệu nào của
database
3. Phát triển module nhân viên xử lý đơn hàng
Module này có sẵn trong Django admin . Admin chính có thể phân quyền
cho các admin còn lại có quyền sử dụng và truy cập đến dữ liệu nào của
database
4. Phát triển module comment và rating
44
Code :
5. Code bổ xung
Model Promotion :
45
Code lấy promotion theo ID product
Model Department
46
Model Department
Code lấy giữ liệu Derpartment theo User
Model Notification
47
Code lấy thông báo theo ID User
48
Ở đây , chúng ta sẽ chọn kiểu Engine là InnoDB :
Để hủy một tiến trình đang thi hành không hiệu quả ta có thể sử dụng câu
lệnh : Kill <<ID_PROCESS>>
3. Đưa cơ sở dữ liệu về dạng chuẩn BCNF hoặc cao hơn
- Dạng chuẩn 1NF ( First Normal Form - 1NF) : Mỗi quan hệ trong đó
mỗi giá trị thuộc tính đều ở dạng nguyên tố , không chứ thuộc tính đa trị ,
không chứa thuộc tính dẫn xuất thì quan hệ đó ở dạng chuẩn 1NF
49
Thuộc tính Address có thể dẫn xuất từ location trong Des → Bỏ thuộc
tính Address
Thuộc tính date trong Rating có thể dẫn xuất từ date trong Comment nên
→ Bỏ date trong Rating
- Chuẩn hóa 2NF : CSDL ở dạng 1NF và mọi thuộc tính không khoá đều
phụ thuộc hàm đầy đủ vào mọi khoá của quan hệ.
Cơ sở dữ liệu thiết kế mỗi bảng đều có 1 khóa chính riêng nên mọi dữ liệu
đều phụ thuộc đầy đủ vào khóa chính nên luôn thỏa mã 2NF
- Chuẩn 3NF : CSDL ở dạng 2NF và không có thuộc tính không khoá nào
phụ thuộc hàm bắc cầu vào một khoá của quan hệ.
50
Cơ sở dữ liệu được thiết kế mỗi bảng 1 khóa chính riêng biệt và không có
thuộc tính nào ở bảng này có thể tình bắc cầu hay phụ thuộc bắc cầu qua
thuộc tính ở bảng khác nên luôn thỏa mãn 3NF
- Chuẩn BCNF ( 3,5NF) : Nếu 1 lược đồ cơ sở dữ liệu nằm trong BCNF
thì tất cả sự dư thừa dựa trên sự phụ thuộc hàm đã được loại bỏ , mặc dù
các loại dự phòng khác vẫn có thể tồn tại . Mội lược đồ quan hệ R ở dạng
bình thường BoyceTHER Cod khi và chỉ khi với mỗi 1 phụ thuộc của nó
X → Y ít nhất 1 trong các điều kiện sau đây :
o X→Y là 1 phụ thuộc hàm tầm thường (Y ⊆ X)
o X là 1 siêu khóa cho lược đồ R
Cơ sở dữ liệu được thiết kế cho mỗi bảng đều có 1 siêu khóa đó là khóa
chính , mọi phụ thuộc hàm ví dụ : idBook → Name là 1 phụ thuộc hàm
tầm thường ( Name ⊆ idBook ) và idBook là 1 siêu khóa nên luôn thỏa
mãn chuẩn BCNF
VI. Phân tích ý kiến và hành vi khách hàng
1. Phân tích ý kiến cho social marketing
1.1. Các kỹ thuật trong Machine Learning cho Social Media
Marketing trong phân tích ý kiến/cảm tình của khách hàng
a) Giám sát phương tiện truyền thông xã hội
Giám sát mạng xã hội là một trong những công cụ mang tính truyền thống
hơn cho các doanh nghiệp muốn quản lý tài khoản mạng xã hội của họ. Một
số nền tảng như Twitter và Instagram có các công cụ phân tích tích hợp có
thể đo lường mức độ thành công của các bài đăng trước đây, bao gồm số lượt
thích, nhận xét, số lần click vào liên kết hoặc lượt xem cho video. Các công
cụ của bên thứ ba như Iconosquare (dành cho Instagram và Facebook) cũng
có thể cung cấp các dịch vụ quản lý và thông tin chi tiết về phương tiện
truyền thông xã hội tương tự. Những công cụ này cũng có thể cho các doanh
51
nghiệp biết nhiều điều về khán giả của họ, bao gồm thông tin nhân khẩu học
và thời gian cao điểm khi những người theo dõi của họ hoạt động tích cực
nhất trên nền tảng. Các thuật toán truyền thông xã hội thường ưu tiên các bài
đăng gần đây hơn các bài đăng cũ hơn, vì vậy với dữ liệu này, các doanh
nghiệp có thể lên lịch cho các bài đăng của họ vào hoặc một vài phút trước
thời gian cao điểm.
b) Phân tích cảm xúc cho Social Media Marketing
Phân tích cảm xúc, còn được gọi là AI khai thác ý kiến hoặc cảm xúc,
đang đánh giá ý kiến của một văn bản. Quá trình sử dụng cả xử lý ngôn
ngữ tự nhiên (NLP) và học máy để ghép nối dữ liệu truyền thông xã hội
với các nhãn được xác định trước như tích cực, tiêu cực hoặc trung tính.
Sau đó, máy có thể phát triển các tác nhân học cách hiểu được tình cảm
bên trong các thông điệp mới.
Các doanh nghiệp có thể áp dụng phân tích tình cảm trên phương tiện
truyền thông xã hội và hỗ trợ khách hàng để thu thập phản hồi về một sản
phẩm hoặc thiết kế mới. Tương tự, các doanh nghiệp có thể áp dụng phân
tích cảm xúc để khám phá cảm nhận của mọi người về đối thủ cạnh tranh
của họ hoặc các chủ đề xu hướng của ngành.
c) Nhận dạng hình ảnh cho Social Media Marketing
Tính năng nhận dạng hình ảnh sử dụng công nghệ học máy để huấn luyện
máy tính nhận dạng logo thương hiệu hoặc ảnh của một số sản phẩm nhất
định mà không cần bất kỳ văn bản nào kèm theo. Điều này có thể hữu ích
cho các doanh nghiệp khi khách hàng của họ tải lên ảnh sản phẩm mà
không đề cập trực tiếp đến thương hiệu hoặc tên sản phẩm trong văn bản.
Khách hàng tiềm năng cũng có thể tải lên ảnh sản phẩm của bạn với chú
thích “Tôi có thể mua cái này ở đâu?” Nếu các doanh nghiệp có thể nhận
thấy thời điểm điều đó xảy ra, họ có thể sử dụng nó như một cơ hội để
gửi các khuyến mãi được nhắm mục tiêu đến người đó hoặc chỉ cần bình
luận trên bài đăng để nói lời cảm ơn vì đã mua hàng của họ, điều này
52
chắc chắn có thể dẫn đến sự trung thành của khách hàng tăng lên. Ngoài
ra, khách hàng có thể cảm thấy được khuyến khích đăng nhiều ảnh hơn
về sản phẩm của bạn trong tương lai, điều này dẫn đến việc quảng bá
thương hiệu hơn nữa.
Các doanh nghiệp có thể được hưởng lợi từ việc chú ý lắng nghe khi mọi
người đăng ảnh sản phẩm của họ, vì các bài đăng trên mạng xã hội có
hình ảnh thường nhận được sự tham gia của người dùng cao hơn so với
các bài đăng hoàn toàn là văn bản. Người dùng Facebook có khả năng
thích hoặc bình luận trên các bài đăng có hình ảnh cao gấp 2,3 lần và
người dùng Twitter có khả năng đăng lại bài đăng có hình ảnh cao hơn
1,5 lần. Điều này rất quan trọng đối với hoạt động tiếp thị vì các thuật
toán truyền thông xã hội thường được thiết kế để các bài đăng có mức độ
tương tác cao, được đo lường bằng số lượng người dùng đã tương tác với
một bài đăng, chẳng hạn như bằng cách thích, nhận xét hoặc chia sẻ bài
đăng đó với những người dùng khác, hiển thị ở đầu nguồn cấp dữ liệu của
người dùng.
d) Chatbot cho Social Media Marketing
Chatbot là một ứng dụng của AI để bắt chước các cuộc trò chuyện thực.
Chúng có thể được nhúng vào các trang web, chẳng hạn như cửa hàng
trực tuyến hoặc thông qua nền tảng nhắn tin của bên thứ ba như Facebook
Messenger và nhắn tin trực tiếp của Twitter và Instagram. Chatbot cho
phép các doanh nghiệp tự động hóa dịch vụ khách hàng mà không yêu
cầu sự tương tác của con người, trừ khi khách hàng yêu cầu cụ thể nói
chuyện hoặc trò chuyện với đại diện của con người. Đối với các doanh
nghiệp có cơ sở khách hàng nói chung là trẻ, chatbot có nhiều khả năng
làm tăng sự hài lòng của khách hàng. Việc sử dụng chatbot không giới
hạn trong các trường hợp khi khách hàng có câu hỏi hoặc khiếu nại cụ
thể. Estee Lauder sử dụng một chatbot được nhúng trong Facebook
Messenger, sử dụng tính năng nhận dạng khuôn mặt để chọn ra màu nền
53
phù hợp cho khách hàng của mình và Airbnb đã sử dụng Amazon Alexa
để chào đón khách và giới thiệu họ đến các điểm tham quan và nhà hàng
ở địa phương
e) Nhận dạng tiếng nói cho Social Media Marketing
Có thể đủ khó để hiểu các bài đăng xã hội khác nhau có nghĩa là gì nếu
chỉ đọc từng bài một. Sarcasm, nghĩa kép và từ đồng nghĩa đã để lại
những phân tích tự động cũ hơn.
Mặc dù con người hiển nhiên có thể xác định ý nghĩa của một từ trong
ngữ cảnh hoặc xác định giọng điệu nếu ai đó đang mỉa mai (để phân tích
tình cảm), đây không phải là nhiệm vụ hiển nhiên đối với máy tính.
Nhưng học máy hiện cung cấp cho chúng ta các phân tích tự động có độ
chính xác cao. Các mô hình phức tạp có thể được thiết kế để hiểu ý nghĩa
thực sự được thể hiện trong các bài đăng mà không thể nắm bắt được
bằng các phương pháp dựa trên quy tắc truyền thống.
f) Phát hiện các chủ đề và xu hướng mới nổi
Học máy rất hữu ích để nhận dạng các mẫu trong ngôn ngữ, hình ảnh
hoặc trong siêu dữ liệu. Và bây giờ chúng ta có thể dựa vào các mẫu này
để sắp xếp các bài đăng thành các danh mục được xác định trước. Tuy
nhiên, các mẫu này cũng có thể được sử dụng để phát hiện các xu hướng
hoặc chủ đề mới không phù hợp với bộ giá trị đã có từ trước. Thuật toán
tìm kiếm các cấu trúc thú vị và cố gắng nhóm các ví dụ tương tự. Các kỹ
thuật học máy này được gọi là “không giám sát” và chúng làm nổi bật
như một công cụ khám phá hoặc khi kết quả mới nằm ngoài dự kiến
g) Đề xuất nội dung
Cũng giống như các thương hiệu thuê toàn bộ những người được cho là
làm việc dựa trên sự trung thành và giữ chân khách hàng, mạng xã hội
cũng tập trung vào việc khiến mọi người luôn trực tuyến và tận hưởng
thời gian họ dành cho các trang web hoặc ứng dụng cụ thể.
54
Các đề xuất về nội dung được cá nhân hóa là nguyên nhân cho bản chất
gây nghiện của mạng xã hội. Các mạng đầu tư ngân sách khổng lồ vào
các công nghệ học máy tạo nguồn cấp dữ liệu phương tiện dựa trên
những gì người dùng thích, tìm kiếm và - quan trọng nhất - có thể thích.
Một ví dụ tuyệt vời là tab Khám phá Instagram, phân tích những bài đăng
nào thu hút sự quan tâm của bạn để đóng gói tab Khám phá của bạn với
các bức ảnh tương tự. Ngoài ra, Instagram áp dụng học máy không chỉ để
hiển thị nội dung cho mọi người mà còn ẩn nó.
Sau khi bạn báo cáo một hình ảnh bạn không thích (và nó không phải là
bất cứ điều gì bị cấm bởi nền tảng, chỉ là một hình ảnh mà cá nhân bạn
thấy đáng lo ngại), ứng dụng sẽ vô hiệu hóa các bài đăng đó khỏi nguồn
cấp dữ liệu của bạn hoặc ít nhất sẽ hỏi bạn có chắc chắn bạn muốn xem
bài viết.
h) Phiên dịch nơ-ron
Để cố gắng làm cho các phương tiện truyền thông xã hội cởi mở và thống
nhất hơn, vào năm 2017, Facebook đã giới thiệu một cách tiếp cận mới
đối với phiên dịch nơ-ron (nơron thế giới chỉ ra sự tham gia của học máy
trong toàn bộ sự việc). Kiến trúc dịch mới mà họ cung cấp, đại diện cho
việc dịch theo ngữ cảnh, không giống như các phương pháp hoạt động
trước đó. Ngày nay, người dùng thưởng thức nhiều bài đăng trên mạng xã
hội bằng ngôn ngữ mẹ đẻ của họ và có tùy chọn giao tiếp với bất kỳ ai
trực tuyến với mức độ hiểu biết ấn tượng.
i) Mật độ dân số
Dựa trên dữ liệu vị trí địa lý của người dùng theo thời gian thực,
Facebook tạo ra các bản đồ hiển thị mật độ dân số chính xác và cập nhật
nhất. Điều này có vẻ không quan trọng cho đến khi việc tìm ra nhiệm vụ
tạo ra một bản đồ như vậy trong thời gian thực là thực tế không thể hoàn
thành trong quá khứ. Đối với ngày nay, nó đang tiến gần đến việc cung
cấp cho chúng ta phạm vi phủ sóng trên toàn thế giới (ngoại trừ những
55
khu vực không có hoặc rất ít dân số). Các bản đồ được sử dụng cho các
vấn đề an toàn và chăm sóc sức khỏe, như các hoạt động cứu hộ trong
trường hợp thiên tai hoặc lập kế hoạch và thực hiện tiêm chủng hoặc để
thống kê, nhìn nhận một cách trực quan hơn về độ phổ biến
1.2. Các kỹ thuật trong Machine Learning cho Social Media
Marketing trong dự đoán hành vi khách hàng
a) Dự đoán các xu hướng trong hành vi mua của khách hàng
Bất kỳ sản phẩm hoặc dịch vụ nào, dù tốt đến đâu về chất lượng, nếu
không phù hợp với nhu cầu và mong muốn của khách hàng, đều là thất
bại. Không chỉ vị trí địa lý mà văn hóa, tôn giáo, quốc tịch và môi
trường cũng ảnh hưởng đến hành vi của khách hàng. Các công cụ AI
khai thác dữ liệu từ các phương tiện truyền thông xã hội và tin tức cho
đến các đợt bán hàng và đánh giá trước đây để cho biết khách hàng
đang mong đợi điều gì hoặc họ sẵn sàng chi thêm tiền vào hàng hóa
nào. Các công cụ này cũng tính đến điều kiện kinh tế và khả năng chi
tiêu của khách hàng. Điều tốt nhất về các công cụ này là chúng đáng
tin cậy vì nó đã được chứng minh rằng chúng dự đoán cung và cầu
trong tương lai với mức độ chính xác cao nhất. Các công ty có thể tận
dụng những thông tin chi tiết có giá trị này để cung cấp hàng hóa và
dịch vụ được cá nhân hóa cho các khu vực được nhắm mục tiêu.
b) Giúp đỡ trong việc phát triển các chiến dịch tiếp thị hiệu quả
Bên cạnh việc dự đoán chính xác hành vi của khách hàng, các công cụ
AI cũng có lợi trong việc đưa ra các chiến lược tiếp thị hiệu quả. Dữ
liệu trực tuyến dưới dạng đánh giá trước đây, tìm kiếm trực tuyến và
số lượt xem là vàng cho các nhà tiếp thị. Không thể tưởng tượng được
đối với bất kỳ doanh nghiệp nào muốn duy trì tính cạnh tranh trong
thế giới kinh doanh, nếu không tận dụng sức mạnh của AI để đưa ra
chiến lược tiếp thị của mình. Với sự trợ giúp của AI, các nhà tiếp thị
56
có thể xác định phương thức tiếp thị nào nhận được nhiều sự tham gia
hơn từ khách hàng. Dựa trên điều này, các nhà tiếp thị có thể chọn
phương tiện đó cho các quảng cáo trong tương lai để tạo ra nhiều
doanh số hơn.
c) Tiếp thị nội dung
AI đã thay đổi hoàn toàn tiếp thị nội dung bằng cách thay đổi cách
nội dung xuất hiện trên các kết quả hàng đầu của các công cụ tìm kiếm
như Google. Trước đây, Google dựa vào từ khóa để xếp hạng nội
dung, tuy nhiên sau sự bùng nổ của AI, điều đó không còn phụ thuộc
vào chúng nữa. Điểm yếu chính của chiến lược từ khóa là rất nhiều
nội dung sao chép và giả mạo cuối cùng lại xếp hạng trên cùng bên
cạnh nội dung chính hãng. Với trí tuệ nhân tạo, Google cũng đang
chuyển đổi chiến lược xếp hạng nội dung của mình. Các thuật toán
học máy được Google sử dụng sẽ tự động khai thác dữ liệu và xác
định nội dung tốt nhất và nguyên bản về chủ đề cụ thể và xếp hạng nó
cho phù hợp. Việc tạo ra nội dung có thể hành động nhắm đến đúng
đối tượng là yếu tố cơ bản cho sự thành công của doanh nghiệp. Các
công ty đang tận dụng AI để sản xuất nội dung tự động, giao tiếp với
khách hàng bằng chatbots và tạo nội dung được cá nhân hóa cho
khách hàng. Các nhà tiếp thị cũng có thể có được những hiểu biết có
giá trị về nội dung xếp hạng cao nhất bằng cách sử dụng các công cụ
AI. Hơn nữa, họ có thể nhận được các đề xuất về cách nâng cao nội
dung hiện có của họ và kênh nào sẽ dẫn đến bán hàng nhiều hơn.
d) Định hình lại trải nghiệm của khách hàng thông qua giao tiếp nâng
cao
Tiếp thị qua email đã được chứng minh là tạo ra nhiều doanh số bán
hàng hơn cho một số sản phẩm so với các phương tiện khác. Email,
Facebook Messenger và Whatsapp đã xóa bỏ rào cản giao tiếp giữa
57
khách hàng và doanh nghiệp. Khách hàng ngay lập tức liên hệ với các
công ty để đăng ký khiếu nại của họ hoặc để bày tỏ sự hài lòng của họ
từ các dịch vụ kinh doanh. Trả lời mọi tin nhắn là không thực tế vì
những tin nhắn này có thể lên đến hàng nghìn. Ở đây, một chatbot
được hỗ trợ bởi AI đã cứu các công ty khỏi sự phiền toái này bằng
cách gửi tin nhắn văn bản đến khách hàng bằng ngôn ngữ của con
người. Nó cũng phản hồi các truy vấn chung của họ, do đó dẫn đến sự
hài lòng của khách hàng cao hơn.
e) Hỗ trợ phân tích cảm xúc của khách hàng
Phương tiện truyền thông xã hội là công cụ tuyệt vời nhất để phân tích
cảm xúc của khách hàng về hàng hóa và dịch vụ. Phân tích cảm xúc sử
dụng kỹ thuật phân tích văn bản để giải mã cảm xúc của khách hàng
(tích cực, tiêu cực và trung tính) đối với hàng hóa và dịch vụ cụ thể.
Các công cụ AI có thể phân tích hơn 10.000 đánh giá trực tuyến về
sản phẩm của bạn để giúp bạn xác định xem khách hàng có hài lòng
với chất lượng và giá cả sản phẩm của bạn hay không. Việc diễn giải
cảm xúc của mọi người là điều cần thiết cho sự thành công của doanh
nghiệp. Khách hàng không chỉ đăng bài đánh giá mà còn thảo luận về
từng khía cạnh của sản phẩm và dịch vụ, từ chất lượng đến giá cả và
dịch vụ khách hàng, trên phương tiện truyền thông xã hội. Bên cạnh
đó, các công cụ này cũng giúp xác định kỳ vọng của khách hàng đối
với doanh nghiệp. Dựa trên những thông tin chi tiết hữu ích này, các
doanh nghiệp có thể đưa ra các quyết định cấp thiết để cải thiện chất
lượng, khả năng chi trả và dịch vụ khách hàng của mình trong tương
lai.
f) Dự đoán sự chuyển nhượng của khách hàng
Customer churn, còn được gọi là sự luân chuyển khách hàng, đề cập
đến một tỷ lệ phần trăm khách hàng đã ngừng kinh doanh với một
58
công ty. Đối với bất kỳ công ty nào, sự chuyển nhượng của khách
hàng là một trải nghiệm khá đáng sợ. Các công ty muốn giữ lại cơ sở
khách hàng hiện tại của họ bằng mọi giá bởi vì họ biết rằng có được
một khách hàng mới sẽ không phải là một nhiệm vụ dễ dàng. Do đó,
việc dự đoán sự rời bỏ của khách hàng và xác định nguyên nhân gốc
rễ là rất quan trọng đối với các công ty vì bằng cách này, họ có thể chủ
động thực hiện các bước để cứu doanh nghiệp của mình. Các công ty
có thể sử dụng thuật toán học máy để không chỉ dự đoán khách hàng
nào sẽ ngừng sử dụng sản phẩm của họ mà còn giải mã lý do đằng sau
hành vi này. Các thuật toán học máy được sử dụng để tạo ra các hệ
thống sử dụng dữ liệu lịch sử của khách hàng để tiết lộ thông tin chi
tiết hữu ích về hành vi của khách hàng.
2. Phân tích hành vi khách hàng – Neighborhood-Based Collaborative
Filtering
2.1. Giới thiệu
Trong Content-based Recommendation Systems, chúng ta đã làm quen với một
Hệ thống gợi ý sản phẩm đơn giản dựa trên đặc trưng của mỗi item. Đặc điểm của
Content-based Recommendation Systems là việc xây dựng mô hình cho
mỗi user không phụ thuộc vào các users khác mà phụ thuộc vào profile của
mỗi items. Việc làm này có lợi thế là tiết kiệm bộ nhớ và thời gian tính toán. Đồng
thời, hệ thống có khả năng tận dụng các thông tin đặc trưng của mỗi item như
được mô tả trong bản mô tả (description) của mỗi item. Bản mô tả này có thể
được xây dựng bởi nhà cung cấp hoặc được thu thập bằng cách yêu
cầu users gắn tags cho items. Việc xây dựng feature vector cho mỗi item thường
bao gồm các kỹ thuật Xử lý ngôn ngữ tự nhiên (Natural Language Processing -
NLP).
Cách làm trên có hai nhược điểm cơ bản. Thứ nhất, khi xây dựng mô hình cho
một user, các hệ thống Content-based không tận dụng được thông tin từ
các users khác. Những thông tin này thường rất hữu ích vì hành vi mua hàng của
các users thường được nhóm thành một vài nhóm đơn giản; nếu biết hành vi mua
hàng của một vài users trong nhóm, hệ thống nên suy luận ra hành vi của
những users còn lại. Thứ hai, không phải lúc nào chúng ta cũng có bản mô tả cho
mỗi item. Việc yêu cầu users gắn tags còn khó khăn hơn vì không phải ai cũng
sẵn sàng làm việc đó; hoặc có làm nhưng sẽ mang xu hướng cá nhân. Các thuật
59
toán NLP cũng phức tạp hơn ở việc phải xử lý các từ gần nghĩa, viết tắt, sai chính
tả, hoặc được viết ở các ngôn ngữ khác nhau.
Những nhược điểm phía trên có thể được giải quyết bằng Collaborative
Filtering (CF). Trong bài viết này, tôi sẽ trình bày tới các bạn một phương pháp
CF có tên là Neighborhood-based Collaborative Filtering (NBCF). Bài tiếp theo
sẽ trình bày về một phương pháp CF khác có tên Matrix Factorization
Collaborative Filtering. Khi chỉ nói Collaborative Filtering, chúng ta sẽ ngầm
hiểu rằng phương pháp được sử dụng là Neighborhood-based.
Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user tới
một item dựa trên các users khác gần giống với user này. Việc gần giống
nhau giữa các users có thể được xác định thông qua mức độ quan tâm của
các users này tới các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích
phim Cảnh sát hình sự, tức đều rate bộ phim này 5 sao. Ta đã biết A cũng
thích Người phán xử, vậy nhiều khả năng B cũng thích bộ phim này.
Các bạn có thể đã hình dung ra, hai câu hỏi quan trọng nhất trong một hệ thống
Neighborhood-based Collaborative Filtering là:
• Làm thế nào xác định được sự giống nhau giữa hai users?
• Khi đã xác định được các users gần giống nhau (similar users) rồi, làm thế
nào dự đoán được mức độ quan tâm của một user lên một item?
Việc xác định mức độ quan tâm của mỗi user tới một item dựa trên mức độ quan
tâm của similar users tới item đó còn được gọi là User-user collaborative
filtering. Có một hướng tiếp cận khác được cho là làm việc hiệu quả hơn là Item-
item collaborative filtering. Trong hướng tiếp cận này, thay vì xác định user
similarities, hệ thống sẽ xác định item similarities. Từ đó, hệ thống gợi ý
những items gần giống với những items mà user có mức độ quan tâm cao.
Cấu trúc của bài viết như sau: Mục 2.2 sẽ trình bày User-user Collaborative
Filtering. Mục 3 sẽ nêu một số hạn chế của User-user Collaborative Filtering và
cách khắc phục bằng Item-item Collaborative Filtering. Kết quả của hai phương
pháp này sẽ được trình bày qua ví dụ trên cơ sở dữ liệu MovieLens 100k trong
Mục 2.4. Một vài Tài liệu tham khảo được cho trong Mục 2.5
2.2. User-User Collaborative Filtering
2.2.1. Similarity functions
Công việc quan trọng nhất phải làm trước tiên trong User-user Collaborative
Filtering là phải xác định được sự giống nhau (similarity) giữa hai users. Dữ
liệu duy nhất chúng ta có là Utility matrix YY, vậy nên sự giống nhau này
phải được xác định dựa trên các cột tương ứng với hai users trong ma trận này.
Xét ví dụ trong Hình 1.
60
Hình 1: Ví dụ về utility matrix dựa trên số sao một user rate cho một item. Một
cách trực quan, hành vi của u0 giống với u1 hơn là u2,u3,u4,u5,u6. Từ đó có thể
dự đoán rằng u0 sẽ quan tâm tới i2 vì u1 cũng quan tâm tới item này.
Giả sử có các users từ u0 đến u6 và các items từ i0 đến i4 trong đó các số trong
mỗi ô vuông thể hiện số sao mà mỗi user đã rated cho item với giá trị cao hơn
thể hiện mức độ quan tâm cao hơn. Các dấu hỏi chấm là các giá trị mà hệ thống
cần phải đi tìm. Đặt mức độ giống nhau của
hai users ui,ujui,uj là sim(ui,uj)sim(ui,uj).
Quan sát đầu tiên chúng ta có thể nhận thấy là các u0,u1 thích i0,i1,i2 và không
thích i3,i4 cho lắm. Điều ngược lại xảy ra ở các users còn lại. Vì vậy,
một similiarity function tốt cần đảm bảo:
Từ đó, để xác định mức độ quan tâm của u0 lên i2, chúng ta nên dựa trên hành
vi của u1 lên sản phẩm này. Rất may rằng u1 đã thích i2inên hệ thống
cần recommend i2 cho u0.
Câu hỏi đặt ra là: hàm số similarity nào là tốt? Để đo similarity giữa hai users,
cách thường làm là xây dựng feature vector cho mỗi user rồi áp dụng một hàm
có khả năng đo similarity giữa hai vectors đó. Chú ý rằng việc xây dựng feature
vector này khác với việc xây dựng item profiles như trong Content-based
Recommendation Systems. Các vectors này được xây dựng trực tiếp dựa trên
Utility matrix chứ không dùng dữ liệu ngoài như item profiles. Với mỗi user,
thông tin duy nhất chúng ta biết là các ratings mà user đó đã thực hiện, tức cột
tương ứng với user đó trong Utility matrix. Tuy nhiên, khó khăn là các cột này
thường có rất nhiều mising ratings vì mỗi user thường chỉ rated một số lượng rất
nhỏ các items. Cách khắc phục là bằng cách nào đó, ta giúp hệ thống điền các giá
trị này sao cho việc điền không làm ảnh hưởng nhiều tới sự giống nhau giữa hai
61
vector. Việc điền này chỉ phục vụ cho việc tính similarity chứ không phải là suy
luận ra giá trị cuối cùng.
Vậy mỗi dấu ‘?’ nên được thay bởi giá trị nào để hạn chế việc sai lệch quá nhiều?
Một lựa chọn bạn có thể nghĩ tới là thay các dấu ‘?’ bằng giá trị ‘0’. Điều này
không thực sự tốt vì giá trị ‘0’ tương ứng với mức độ quan tâm thấp nhất. Một
giá trị an toàn hơn là 2.5 vì nó là trung bình cộng của 0, mức thấp nhất, và 5, mức
cao nhất. Tuy nhiên, giá trị này có hạn chế đối với những users dễ tính hoặc khó
tính. Với các users dễ tính, thích tương ứng với 5 sao, không thích có thể ít sao
hơn 1 chút, 3 sao chẳng hạn. Việc chọn giá trị 2.5 sẽ khiến cho các items còn lại
là quá negative đối với user đó. Điều ngược lại xảy ra với những user khó tính
hơn khi chỉ cho 3 sao cho các items họ thích và ít sao hơn cho những items họ
không thích.
Một giá trị khả dĩ hơn cho việc này là trung bình cộng của
các ratings mà user tương ứng đã thực hiện. Việc này sẽ tránh được
việc users quá khó tính hoặc dễ tính, tức lúc nào cũng có những items mà
một user thích hơn so với những items khác.
Hãy cùng xem ví dụ trong Hình 2a) và 2b).
62
Hàng cuối cùng trong Hình 2a) là giá trị trung bình của ratings cho mỗi user. Giá
trị cao tương ứng với các user dễ tính và ngược lại. Khi đó, nếu tiếp tục trừ từ
mỗi rating đi giá trị này và thay các giá trị chư a biết bằng 0, ta sẽ
được normalized utility matrix như trong Hình 2b). Bạn có thể thắc mắc tại sao
bước chuẩn hoá này lại quan trọng, câu trả lời ở ngay đây:
• Việc trừ đi trung bình cộng của mỗi cột khiến trong trong mỗi cột có những
giá trị dương và âm. Những giá trị dương tương ứng với việc user thích
item, những giá trị âm tương ứng với việc user không thích item. Những
giá trị bằng 0 tương ứng với việc chưa xác định được liệu user có
thích item hay không.
• Về mặt kỹ thuật, số chiều của utility matrix là rất lớn với hàng
triệu users và items, nếu lưu toàn bộ các giá trị này trong một ma trận thì
khả năng cao là sẽ không đủ bộ nhớ. Quan sát thấy rằng vì số
lượng ratings biết trước thường là một số rất nhỏ so với kích thước của
utility matrix, sẽ tốt hơn nếu chúng ta lưu ma trận này dưới dạng sparse
matrix, tức chỉ lưu các giá trị khác không và vị trí của chúng. Vì vậy, tốt
hơn hết, các dấu ‘?’ nên được thay bằng giá trị ‘0’, tức chưa xác định
liệu user có thích item hay không. Việc này không những tối ưu bộ nhớ mà
việc tính toán similarity matrix sau này cũng hiệu quả hơn.
Sau khi đã chuẩn hoá dữ liệu như trên, một vài similiraty function thường được
sử dụng là:
Cosine Similarity:
Đây là hàm được sử dụng nhiều nhất, và cũng quen thuộc với các bạn nhất. Nếu
các bạn không nhớ công thức tính coscos của góc giữa hai vector u1,u2trong
chương trình phổ thông, thì dưới đây là công thức:
Trong đó u1,2u1,2 là vectors tương ứng với users 1, 2 đã được chuẩn hoá như
ở trên.
Có một tin vui là python có hàm hỗ trợ tính toán hàm số này một cách hiệu quả.
Độ similarity của hai vector là 1 số trong đoạn [-1, 1]. Giá trị bằng 1 thể hiện hai
vector hoàn toàn similar nhau. Hàm số coscos của một góc bằng 1 nghĩa là góc
giữa hai vector bằng 0, tức một vector bằng tích của một số dương với vector còn
lại. Giá trị coscos bằng -1 thể hiện hai vector này hoàn toàn trái ngược nhau. Điều
này cũng hợp lý , tức khi hành vi của hai users là hoàn toàn ngược nhau
thi similarity giữa hai vector đó là thấp nhất.
63
Ví dụ về cosine_similarity của các users trong Hình 2b) được cho trong Hình 2c).
Similarity matrix SS là một ma trận đối xứng vì coscos là một hàm chẵn, và
nếu user A giống user B thì điều ngược lại cũng đúng. Các ô màu xanh trên đường
chéo đều bằng 1 vì đó là coscos của góc giữa 1 vector và chính nó,
tức cos(0)=1cos(0)=1. Khi tính toán ở các bước sau, chúng ta không cần quan
tâm tới các giá trị 1 này. Tiếp tục quan sát các vector hàng tương ứng
với u0,u1,u2, chúng ta sẽ thấy một vài điều thú vị:
• u0gần với u1và u5 (độ giống nhau là dương) hơn các users còn lại.
Việc similarity cao giữa u0 và u1 là dễ hiểu vì cả hai đều có xu hướng quan
tâm tới i0,i1,i2 hơn các items còn lại. Việc u0 gần với u5 thoạt đầu có vẻ
vô lý vì u5 đánh giá thấp các items mà u0u0 đánh giá cao (Hình 2a)); tuy
nhiên khi nhìn vào ma trận utility đã chuẩn hoá ở Hình 2b), ta thấy rằng
điều này là hợp lý. Vì item duy nhất mà cả hai users này đã cung cấp thông
tin là i1i1 với các giá trị tương ứng đều là tích cực.
• u1 gần với u0 và xa các users còn lại.
• u2 gần với u3,u4,u5,u6 và xa các users còn lại.
Từ similarity matrix này, chúng ta có thể phân nhóm các users ra làm hai
nhóm (u0,u1) và (u2,u3,u4,u5,u6). Vì ma trận SS này nhỏ nên chúng ta có thể dễ
dàng quan sát thấy điều này; khi số users lớn hơn, việc xác định bằng mắt
thường là không khả thi. Việc xây dựng thuật toán phân nhóm các users (users
clustering) rất có thể sẽ được trình bày ở một trong các bài viết tiếp theo.
Có một chú ý quan trọng ở đây là khi số lượng users lớn, ma trận SS cũng rất lớn
và nhiều khả năng là không có đủ bộ nhớ để lưu trữ, ngay cả khi chỉ lưu hơn một
nửa số các phần tử của ma trận đối xứng này. Với các trường hợp đó, mới
mỗi user, chúng ta chỉ cần tính và lưu kết quả của một hàng của similarity matrix,
tương ứng với việc độ giống nhau giữa user đó và các users còn lại.
Trong bài viết này, tôi sẽ sử dụng similarity function này.
(sự khác biết so với trung bình có trọng số là mẫu số có sử dụng trị tuyệt đối để
xử lý các số âm).
trong đó N(u,i)N(u,i) là tập hợp kk users trong neighborhood (tức
có similarity cao nhất) của uu mà đã rated ii.
Hình 2d) thể hiện việc điền các giá trị còn thiếu trong normalized utility matrix.
Các ô màu nền đỏ thể hiện các giá trị dương, tức các items mà có thể
users đó quan tâm. Ở đây, tôi đã lấy ngưỡng bằng 0, chúng ta hoàn toàn có thể
chọn các ngưỡng khác 0.
Một ví dụ về việc tính normalized rating của u1 cho i1 được cho trong Hình 2e)
với số nearest neighbors là k=2k=2. Các bước thực hiện là:
1. Xác định các users đã rated i1, đó là u0,u3,u5.
2. Xác định similarities của u1 với các user này ta nhận được 0.83, -0.4,-0.23,.
Hai (k=2) giá trị lớn nhất là 0.83 và -0.23 tương ứng với u0, u5 .
3. Xác định các normalized ratings của u0,u5 cho i1, ta thu được hai giá trị
lần lượt là 0.750.75 và 0.50.5.
4. Dự đoán kết quả:
Việc quy đổi các giá trị ratings đã chuẩn hoá về thang 5 có thể được thực hiện
bằng cách cộng các cột của ma trận Y với giá trị rating trung bình của
mỗi user như đã tính trong Hình 2a).
Việc hệ thống quyết định recommend items nào cho mỗi user có thể được xác
định bằng nhiều cách khác nhau. Có thể sắp xếp unrated items theo thứ tự tự lớn
đến bé của các predicted ratings, hoặc chỉ chọn các items có normalized
predicted ratings dương - tương ứng với việc user này có nhiều khả năng thích
hơn.
65
Trước khi vào phần lập trình cho User-user CF, chúng ta cùng xem xét Item-item
CF.
66
Có một điểm thú vị trong Similarity matrix ở Hình 3c) là có các phần tử trong hai
hình vuông xanh và đỏ đều là các số không âm, các phần tử bên ngoài là các số
âm. Việc này thể hiện rằng các items có thể được chia thành 2 nhóm rõ rệt với
những items có similarity không âm vào 1 nhóm. Như vậy, một cách vô tình,
chúng ta đã thực hiện việc item clustering. Việc này sẽ giúp ích rất nhiều trong
việc dự đoán ở phần sau.
Kết quả về việc chọn items nào để recommend cho mỗi user được thể hiện bởi
các ô màu đỏ trong Hình 3d). Kết quả này có khác một chút so với kết quả tìm
được bởi User-user CF ở 2 cột cuối cùng tương ứng với u5,u6u5,u6. Dường như
kết quả này hợp lý hơn vì từ Utility Matrix, có hai nhóm users thích hai
nhóm items khác nhau. (Bạn có nhận ra không?)
Về mặt tính toán, Item-item CF có thể nhận được từ User-user CF bằng cách
chuyển vị (transpose) ma trận utility, và coi như items đang rate users. Sau
khi tính ra kết quả cuối cùng, ta lại chuyển vị một lần nữa để thu được kết
quả.
Phần 3 dưới đây sẽ mô tả cách lập trình cho Collaborative Filtering trên python.
Chú ý rằng thư viện sklearn tôi vẫn dùng không có các modules cho
Recommendation Systems.
2.4.1. Class CF
Khởi tạo class CF
Dữ liệu đầu vào của hàm khởi tạo class CF là ma trận Utility Y_data được lưu
dưới dạng một ma trận với 3 cột, k là số lượng các điểm lân cận được sử dụng để
dự đoán kết quả. dist_func là hàm đó similarity giữa hai vectors, mặc định
là cosine_similarity được lấy từ sklearn.metrics.pairwise. Bạn đọc cũng có thể
thử với các giá trị k và hàm dist_func khác nhau. Biến uuCF thể hiện việc đang
sử dụng User-user CF (1) hay Item-item CF(0).
68
Khi có dữ liệu mới, cập nhận Utility matrix bằng cách thêm các hàng này vào
cuối Utility Matrix. Để cho đơn giản, giả sử rằng không có users hay items mới,
cũng không có ratings nào bị thay đổi.
69
Dự đoán kết quả:
Hàm __pred là hàm dự đoán rating mà user u cho item i cho trường hợp User-
user CF. Vì trong trường hợp Item-item CF, chúng ta cần hiểu ngược lại nên
hàm pred sẽ thực hiện đổi vị trí hai biến của __pred. Để cho API được đơn giản,
tôi cho __pred là một phương thức private, chỉ được gọi trong class CF; pred là
một phương thức public, thứ tự của biến đầu vào luôn là (user, item), bất kể
phương pháp sử dụng là User-user CF hay Item-item CF.
Tìm tất cả các items nên được gợi ý cho user u trong trường hợp User-user CF,
hoặc tìm tất cả các users có khả năng thích item u trong trường hợp Item-item CF
70
In toàn bộ kết quả:
Source code cho class này có thể được tìm thấy ở đây.
2.4.2. Áp dụng vào ví dụ
Chúng ta sẽ thử với User-user CF trước:
Kết quả:
71
Với Item-item Collaborative Filtering:
Kết quả:
72
Kết quả với Item-item CF:
Từ đó ta nhận thấy Item-item CF cho lỗi nhỏ hơn (0.987) so với User-user CF
(0.995) và tốt hơn so với Content-based Recommendation Systems ở bài trước
(1.2).
Các bạn cũng có thể thay _neighborhood size k bằng các giá trị khác và so sánh
kết quả
73
Facebook, Instagram, Twitter, Shopee, Amazon,… chúng ta đang sống giữa
thời đại công nghệ 4.0, nơi có biết bao các sàn giao dịch, thương mại điện tử
đang dần trở nên quan trọng và không thể thiếu trong cuộc sống thường nhật
của mỗi con người. Con người không cần phải đến tận cửa hàng mà vẫn có
trong tay những món hàng mà mình muốn. Việc tự thu thập cho bản thân những
kiến thức về thương mại điện tử trong thời đại này là vô cùng cần thiết và hữu
ích.
Phát triển Hệ thống Thương mại điện tử là một môn học không chỉ thú vị về
cách tiếp cận mà còn rất cần thiết với các sinh viên ngành Công nghệ thông tin
vì tính thực tiễn và cập nhật xu hướng của nó. Thông qua môn học, em đã trực
tiếp được tiếp thu và nâng cao những kỹ năng của bản thân về Thiết kế kiến trúc
phần mềm (N-layer package design), phân tích ý kiến/cảm tình khách hàng
(Sentiment Analysis), phân tích hành vi khách hàng (Customer-Product Data
warehouse, Association rules and User interest) và thực hành lập trình hệ thống
bằng nền tảng Django.
Mặc dù quá trình thực hiện các bài tập lớn và tiểu luận rất vất vả, kết quả chưa
được như mong đợi, nhưng lượng kiến thức và kinh nghiệm mà cá nhân em thu
được quả thật không thể dễ dàng gì đánh đổi bằng tiền bạc.
Em xin gửi lời cảm ơn sâu sắc và chân thành nhất tới người thầy mà em vô cùng
yêu quý và kính trọng, thầy Quế. Cảm ơn thầy đã luôn đôn đốc, kỳ vọng và tạo
điều kiện học tập cho em và cả nhóm. Những gì thầy dành cho chúng em trong
suốt năm học vừa qua, chúng em xin phép ghi nhớ mãi. Và em cũng xin gửi lời
cảm ơn của mình đến những người bạn trong nhóm, những người bạn tâm
huyết, sôi nổi và luôn cố gắng hết mình để đạt được kết quả cao nhất của môn
học: bạn Dũng chăm chỉ, bạn Đạt và bạn Nam vừa học giỏi vừa giàu có , luôn
hỗ trợ em trong những lúc khó khăn về mặt tinh thần lẫn tài chính, bạn Khánh
luôn tham vọng và cầu tiến , bậc thầy tán gái .
74
Quãng thời gian 4 năm rưỡi sắp kết thúc, thời sinh viên sắp trôi qua. Hiện tại cá
nhân em đang rất háo hức đón chờ ngày được đi thực tập và báo cáo đồ án, đón
nhận trên tay tấm bằng kỹ sư đỏ rực, điều đáng tiếc rằng em đã không trân trọng
quãng thời gian 5 năm đại học khi nhìn lại nó đã trôi qua rất nhanh nhưng tất cả
đều là những kí ức tươi đẹp mà khi nào có con em sẽ bảo nó tránh xa những thứ
em đã từng trải nghiệm , bài học ngu người .
Cảm ơn tất cả những gì tốt đẹp nhất mà mọi người và ngôi trường PTIT thân
yêu đã mang lại cho tôi. Cảm ơn gia đình đã luôn là chỗ dựa vững chắc, luôn hỗ
trợ quá trình học tập của tôi. Tôi xin cảm ơn và ghi nhớ tất cả trong trái tim của
mình. Hy vọng với những kiến thức và kỹ năng thu thập được khi còn ngồi trên
ghế nhà trường sẽ giúp tôi trở thành 1 kỹ sư Công nghệ thông tin năng động và
thành công trong sự nghiệp sau này , nhận lương tháng 10,000 usd để không
phụ công của thầy
LỜI KẾT
Cảm ơn thầy và các bạn đã giúp đỡ em để có thể hoàn thành một cách tốt nhất
bài tiểu luận này. Nếu có thiếu sót nào trong quá trình thực hiện, em mong nhận
được sự góp ý thẳng thắn từ thầy để có thể rút kinh nghiệm cho sau này. Phát
triển Hệ thống Thương mại điện tử thực sự là một môn học hay và rất có ý
nghĩa với chúng em.
Chúc thầy luôn mạnh khoẻ, vui vẻ và thành công hơn nữa trong sự nghiệp của
mình, chúc các bạn học tập thật tốt!
Hà đông , ngày 20 tháng 6 năm 2021
Học sinh của thầy
Dao
75
Lê Quang Đạo
76