ĐẠ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
NGUYỄN THỊ TÂM
BÙI THANH TÙNG
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ HỖ
TRỢ GỢI Ý SẢN PHẨM
E-commerce application intergrated with product recommendation
system
KỸ SƯ NGÀNH CƠNG NGHỆ PHẦN MỀM
TP. HỒ CHÍ MINH, 2020
ĐẠ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
NGUYỄN THỊ TÂM – 16521065
BÙI THANH TÙNG – 15520982
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ HỖ
TRỢ GỢI Ý SẢN PHẨM
E-commerce application intergrated with product recommendation
system
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
THS. TRẦN ANH DŨNG
TP. HỒ CHÍ MINH, 2020
DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
ngày ……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1.
…………………………………………. – Chủ tịch.
2.
…………………………………………. – Thư ký.
3.
…………………………………………. – Ủy viên.
4.
…………………………………………. – Ủy viên.
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày tháng năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
Xây dựng ứng dụng Thương mại điện tử hỗ trợ gợi ý sản phẩm
Nhóm sinh viên thực hiện:
Cán bộ hướng dẫn:
NGUYỄN THỊ TÂM
16521065
ThS. TRẦN ANH DŨNG
BÙI THANH TÙNG
15520982
Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang
Số chương
Số bảng số liệu
Số hình vẽ
Số tài liệu tham khảo
Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
●
2. Về nội dung nghiên cứu:
●
●
3. Về chương trình ứng dụng:
●
4. Về thái độ làm việc của sinh viên:
●
Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN THỊ TÂM: ………../10
BÙI THANH TÙNG: ………../10
Người nhận xét
(Ký và ghi rõ họ tên)
Trần Anh Dũng
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập – Tự Do – Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày tháng năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
Xây dựng ứng dụng Thương mại điện tử hỗ trợ gợi ý sản phẩm
Nhóm sinh viên thực hiện:
NGUYỄN THỊ TÂM
16521065
BÙI THANH TÙNG
15520982
Cán bộ phản biện:
Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang
Số chương
Số bảng số liệu
Số hình vẽ
Số tài liệu tham khảo
Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
2. Về nội dung nghiên cứu:
3. Về chương trình ứng dụng:
4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN THỊ TÂM: ………../10
BÙI THANH TÙNG: ………../10
Người nhận xét
(Ký và ghi rõ họ tên)
LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức
cơ bản, các kỹ năng thực tế để có thể hồn thành Khóa luận tốt nghiệp của mình.
Để hồn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Cơng nghệ Thơng tin – ĐHQG TP.HCM vì đã tạo
điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài
liệu thuận lợi cho việc tìm kiếm, nghiên cứu thơng tin.
Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học. Đó là những góp ý hết sức
q báu khơng chỉ trong q trình thực hiện luận văn này mà cịn là hành trang tiếp
bước cho chúng em trong quá trình học tập và lập nghiệp sau này.
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa,
bạn bè, tập thể lớp KTPM2015 và KTPM2016 là những người luôn sẵn sàng sẻ chia
và giúp đỡ trong học tập và cuộc sống. Mong rằng, chúng ta sẽ mãi mãi gắn bó với
nhau.
Trong q trình làm khóa luận này chúng em không tránh khỏi được những sai sót,
chúng em kính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để khóa luận
được hồn thiện hơn.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng
hành cùng mọi người.
Thành phố Hồ Chí Minh, 06 tháng 08 năm 2020
Sinh viên
NGUYỄN THỊ TÂM
BÙI THANH TÙNG
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày….. tháng ….. năm ………
ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng ứng dụng Thương mại điện tử hỗ trợ gợi ý sản phẩm
Cán bộ hướng dẫn: ThS. TRẦN ANH DŨNG
Thời gian thực hiện: Từ ngày 02/03/2020 đến ngày 03/08/2020
Sinh viên thực hiện:
1. NGUYỄN THỊ TÂM – 16521065
2. BÙI THANH TÙNG – 15520982
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp
thực hiện, kết quả mong đợi của đề tài)
Mục tiêu:
Ứng dụng mua bán hàng hàng MyStore chạy trên nền Android được thực hiện
dựa trên hai mục đích chính sau:
− Thứ nhất là nghiên cứu các cơng nghệ lập trình như: lập trình ứng dụng
với Android. Và các thuật toán gợi ý sản phẩm, cụ thể là Content-based
và Collaborative. Có thể áp dụng trong ứng dụng MyStore trong việc
gợi ý sản phẩm cũng như những dự án khác sau này.
− Thứ hai là phát triển ứng dụng có tính thực tiễn cao, có khả năng triển
khai ứng dụng vào thực tế, giúp những người có nhu cầu mua bán hàng
hóa có thể thao tác dễ dàng và tiện lợi.
Nhóm hi vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết
hợp với sự tìm hiểu cơng nghệ của nhóm, luận văn tốt nghiệp của nhóm sẽ đạt
được mục đích mong đợi.
Phương pháp thực hiện: làm việc với nhóm 02 thành viên, phân chia cơng
việc phù hợp với năng lực và kinh nghiệm của từng người, thực hiện khố luận
theo lượng cơng việc và thời gian đã được lập kế hoạch chi tiết. Các vấn đề liên
quan đến khoá luận đều được trao đổi trực tiếp giữa các thành viên.
Kết quả mong đợi:
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xây dựng ý
tưởng thiết kế ứng dụng bán hàng cần đạt được những mục tiêu sau:
Đối với khách hàng và người quản trị:
Đối với khách hàng là người dùng chưa đăng nhập, có thể xem sản phẩm, tìm
kiếm sản phẩm, xem các bài viết và đăng ký tài khoản.
Đối với khách hàng là người dùng đã đăng nhập có thể thực hiện chức năng đặt
mua sản phẩm, xem sản phẩm, quản lý sản phẩm mình u thích, quản lý sản
phẩm trong giỏ hàng, quản lý địa chỉ nhận hàng, chọn phương thức thanh toán
(thanh toán khi nhận hàng, chuyển khoản), chat với shop, xem tình trạng đơn
hàng và bình luận đánh giá sản phẩm sau khi mua hàng thành công. Người
dùng đã đăng nhập cũng có thể là người bán hàng, đăng sản phẩm (admin là
người kiểm duyệt sản phẩm đăng), quản lý doanh thu từ việc bán hàng, chat với
người mua hàng. Ngoài ra, người dùng đã đăng nhập cịn có thể xem các bài
viết, quản lý danh sách các bài viết đã lưu (Thêm, xóa), đặt nhắc nhở thời gian
đọc lại bài viết nếu muốn, và liên hệ admin nếu cần hỗ trợ.
Admin là người quản trị thực hiện các chức năng quản lý sản phẩm (duyệt sản
phẩm khách hàng muốn đăng, xóa sản phẩm), quản lý đơn hàng (cập nhật tình
trạng đơn hàng), quản lý danh mục sản phẩm, quản lý khuyến mãi Flash Sale,
quản lý mục quảng cáo, quản lý tài khoản người dùng và quản lý các bài viết.
Hệ thống lưu các sản phẩm người dùng đã xem và gợi ý mua hàng cho người
dùng.
Xây dựng thành công hệ thống gợi ý sản phẩm cho hiệu năng cao.
Hệ thống có khả năng xây dựng và phát triển nhanh chóng.
Hệ thống gợi ý sản phẩm:
Hiểu bài tốn khuyến nghị
Hiểu 2 phương pháp khuyến nghị chính: Content-based và Collaborative.
Có kết quả đánh giá, so sánh.
Hệ thống gợi ý sản phẩm có thể gợi ý sản phẩm hiệu quả cho:
− Người dùng mới (chưa có dữ liệu rating)
− Người dùng cũ (dựa trên collaborative filtering)
Các tiêu chí khác:
Tính thẩm mỹ:
− Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải mái cuốn hút khách
hàng khi sử dụng.
Tính logic và bảo mật:
− Tạo được sự liên kết logic giữa các màn hình để khách hàng có thể
chuyển màn hình một cách nhanh nhất và thuật tiện nhất.
− Đảm bảo tính bảo mật về các thơng tin nhạy cảm của khách hàng tạo
cảm giác an toàn cho khách hàng.
Đối với nhà quản trị có thể cập nhật, thêm xóa sửa đổi thơng tin liên quan đến
mặt hàng và các vấn đề khác. Nhận và trả lời ý kiến về phía khách hàng.
Ngồi ra, cịn áp dụng tiêu chí đánh giá theo chuẩn ISO 9126.
Kế hoạch thực hiện: (Mô tả kế hoạch làm việc và phân chia công việc các
thành viên tham gia)
Với thời gian thực hiện từ 02/03/2020 tới 03/08/2020, nhóm chia thành 8 sprint
với 2 giai đoạn cụ thể:
Giai đoạn 1: Hoàn thiện ứng dụng MyStore với các chức năng dành cho người
dùng (đăng ký, đăng nhập, tìm kiếm sản phẩm, sắp xếp sản phẩm theo hạng
mục, khuyến mãi, xem thông tin sản phẩm, đánh giá, chat với chủ shop, đặt
hàng mua sản phẩm) và các chức năng dành cho người quản trị (quản lý sản
phẩm, đơn hàng, khuyến mãi, thống kê).
Sprint 1: tìm hiểu về platform PHP, front end framework Android Studio, tìm
hiểu nghiệp vụ, quy trình xử lý hàng hóa của các ứng dụng, website tương tự
hiện có.
Sprint 2: Thiết kế chức năng ứng dụng và cơ sở dữ liệu. Xây dựng kiến trúc
ứng dụng.
Sprint 3: Xây dựng các API, xây dựng giao diện ứng dụng để thực hiện một số
chức năng đã được xác định ở sprint 2.
Sprint 4: Xây dựng các API, xây dựng giao diện ứng dụng để thực hiện một số
chức năng còn lại sau sprint 3.
Sprint 5: Xây dựng các API, xây dựng giao diện ứng dụng để thực hiện một số
chức năng còn lại sau sprint 4.
Sprint 6: Xây dựng các API, xây dựng giao diện ứng dụng để thực hiện một số
chức năng cịn lại.
Sprint
NGUYỄN THỊ TÂM
BÙI THANH TÙNG
1
Tìm hiểu PHP, Android Studio, Tìm
(02/03/2020
Firebase, MySQL, nghiệp vụ, Studio, Firebase, MySQL,
–
quy trình xử lý hàng hóa.
22/03/2020)
Khảo sát các ứng dụng hiện hàng hóa.
hiểu
PHP, Android
nghiệp vụ, quy trình xử lý
nay: Tiki, Shopee, Lazada, Khảo sát các ứng dụng hiện
Sendo.
nay: Tiki, Shopee, Lazada,
Sendo.
2
Thiết kế cơ sở dữ liệu.
So sánh ưu/nhược điểm, tính
(23/03/2020
–
Xây dựng kiến trúc ứng dụng tiện dụng của các ứng dụng
đã có trên thị trường.
theo mơ hình MVP.
12/04/2020)
Xây dựng giao diện chính gồm
Thu thập dữ liệu, insert dữ
5 tab sau:Tab trang chủ, Tab
liệu vào database.
danh mục, Tab bài viết, Tab tìm
kiếm, Tab tài khoản
3
Xây dựng giao diện tab trang Xây dựng giao diện tab danh
(13/04/2020
chủ và các chức năng: Tìm mục: Hiển thị các loại danh
–
kiếm tất cả sản phẩm, Hiển thị mục.
03/05/2020)
quảng cáo, Hiển thị sản phẩm Xây dựng giao diện hiển thị
flashsale theo khung giờ, Sản sản phẩm theo danh mục:
phẩm flashsale đang bán, Sản Hiển thị sản phẩm theo danh
phẩm flashsale sắp bán, Hiển mục; Chức năng sắp xếp,
thị các sản phẩm được tìm lọc, kiểu hiển thị cho sản
kiếm hàng đầu, Hiển thị sản phẩm (list hoặc grid), Chức
phẩm u thích.
năng tìm kiếm theo danh
mục, Chức năng loadmore
sản phẩm
4
Xây dựng giao diện Tab bài Xây dựng giao diện, chức
(04/05/2020
viết: Hiển thị loại bài viết
–
Xây dựng giao diện bài viết: thông báo.
24/05/2020)
Hiển thị bài viết, Chức năng Xây dựng giao diện tab tìm
năng: tìm kiếm sản phẩm,
lưu bài viết, Chức năng nhắc kiếm, Chức năng tìm kiếm
nhở bài viết
tất cả sản phẩm
5
Xây dựng giao diện chi tiết sản Xây dựng giao diện nhập
(25/05/2020
phẩm: Hiển thị chi tiết sản thông tin khách hàng: Chức
–
phẩm, Chức năng đánh giá sản năng lưu thông tin khách
14/06/2020)
phẩm, Hiển thị đánh giá sản hàng; Xây dựng giao diện
phẩm, Chức năng u thích sản thanh tốn: Hiển thị sản
phẩm, Hiển thị sản phẩm cùng phẩm thanh toán, Chức năng
shop, Hiển thị sản phẩm liên chọn phương thức thanh
quan; Chức năng chat với tốn, hình thức giao hàng,
shop: Xây dựng giao diện chat, Chức năng ghi chú cho shop,
Xử lý chat, Xử lý hiển thị Chức năng chọn địa chỉ nhận
online hay offline ,Xây dựng hàng
giao diện chatlist: Hiển thị Xây dựng giao diện thanh
danh sách người từng chat, tốn thành cơng: Chức năng
Chức năng thêm giỏ hàng, xem chi tiết đơn hàng, Chức
Chức năng mua ngay
Xây dựng giao diện Shop bán
hàng: Hiển thị sản phẩm của
shop, Chức năng loadmore sản
phẩm, Chức năng tìm kiếm sản
phẩm theo shop, Chức năng
sắp xếp/lọc/kiểu hiển thị sản
phẩm
Xây dựng giao diện giỏ hàng:
Hiển thị sản phẩm được thêm
vào giỏ hàng, Chức năng chọn
sản phẩm trong giỏ hàng, Chức
năng xóa sản phẩm khỏi giỏ
hàng, Chức năng tăng/giảm số
lượng sản phẩm, Chức năng
chỉnh sửa phân loại sản phẩm,
Chức năng thanh toán
năng hủy đơn hàng
6
Xây dựng giao diện tab tài Xây dựng giao diện quản lý
(15/06/2020
khoản: Hiển thị thông tin tài Admin bao gồm: Quản lý
–
khoản, Chức năng thay đổi sản phẩm chờ xác nhận,
05/07/2020)
thông tin tài khoản, Chức năng Quản lý đơn hàng, Đơn hàng
xem đơn mua, Hiển thị sản chuyển khoản, Quản lý danh
phẩm đã xem, Hiển thị đánh mục, Quản lý người dùng.
giá của bạn, Hiển thị sản phẩm Xây dựng giao diện quản lý
đã thích, Chức năng đăng xuất sản phẩm chờ xác nhận:
với firebase, Chức năng quản Chức năng xác nhận sản
lý shop.
phẩm, Chức năng xóa sản
Xây dựng giao diện quản lý phẩm.
shop: Hiển thị sản phẩm của Xây dựng giao diện quản lý
shop, Chức năng thêm/xóa/sửa đơn hàng: Hiển thị tất cả đơn
sản phẩm, Chức năng thống kê hàng, Chức năng cập nhập
doanh thu, Hiển thị đánh giá trạng thái đơn hàng.
của người dùng cho shop.
Xây dựng giao diện quản lý
Xây dựng giao diện quản lý chuyển khoản: Hiển thị
đơn hàng của shop: Hiển thị thông tin chuyển khoản,
đơn hàng theo các trạng thái: Chức năng xác nhận chuyển
Tất cả, chờ xác nhận, đang khoản
giao, đã giao, đã hủy, trả hàng;
Xây dựng giao diện quản lý
Chức năng hủy đơn hàng
danh mục: Hiển thị tất cả
danh
mục,
Chức
năng
thêm/xóa/sửa danh mục, Xây
dựng giao diện quản lý
người dùng, Hiển thị người
dùng theo 3 trạng thái: Tài
khoản Admin, Tài khoản
đang hoạt động, Tài khoản bị
khóa; Chức năng phân quyền
người
dùng:
admin
khách hàng; Chức
hay
năng
khóa/mở khóa tài khoản
người dùng
Giai đoạn 2: Hoàn thành việc áp dụng hệ thống gợi ý sản phẩm vào ứng dụng
MyStore. Giúp ứng dụng có thể gợi ý hiệu quả sản phẩm cho người dùng (đối
với người dùng mới và người dùng trung thành).
Sprint 7: tìm hiểu về hệ thống gợi ý sản phẩm. Thực hiện chạy thử nghiệm và
đánh giá các phương pháp gợi ý sản phẩm.
Sprint 8: áp dụng hệ thống gợi ý sản phẩm vào ứng dung MyStore, đánh giá
hiệu năng.
Sprint
7
(06/07/2020 –
25/07/2020)
NGUYỄN THỊ TÂM
Nghiên
cứu
BÙI THANH TÙNG
phương Nghiên cứu phương pháp gợi ý
pháp gợi ý sản phẩm sản
content-based,
phẩm
content-based,
collaborative.
collaborative.
Xây dựng code thử nghiệm và
đánh giá phương pháp
8
(26/07/2020 –
03/08/2020)
Tham gia hỗ trợ xây Áp dụng gợi ý sản phẩm cho
dựng hệ thống gợi ý sản người
phẩm cho ứng dụng.
dùng
mới
và
collaborative filtering cho người
dùng cũ.
Xác nhận của CBHD
TP. HCM, ngày … tháng … năm …..
(Ký tên và ghi rõ họ tên)
Sinh viên
(Ký tên và ghi rõ họ tên)
Trần Anh Dũng
Nguyễn Thị Tâm
Bùi Thanh Tùng
MỤC LỤC
TÓM TẮT KHÓA LUẬN
Chương 1.
26
GIỚI THIỆU CHUNG
1
1.1. Lý do chọn đề tài
1
1.2. Tính năng mới/ khác biệt về chức năng của đề tài so với một số ứng dụng
thương mại điện tử hiện nay.
3
1.3. Đối tượng nghiên cứu:
5
1.4. Phạm vi nghiên cứu
6
1.5. Phương pháp nghiên cứu
6
Chương 2.
KIẾN THỨC NỀN TẢNG
2.1. Tổng quan về mơ hình MVP
8
8
2.1.1.
Khái niệm
8
2.1.2.
Cấu trúc mơ hình MVP
8
2.1.2.1. Tầng trình diễn – Presenter
8
2.1.2.2. Tầng logic dữ liệu – Model
8
2.1.2.3. Tầng giao diện – View
8
2.1.3.
Tại sao dùng mơ hình MVP
2.1.4.
So sánh MVP và MVC
2.2. Tổng quan về PHP
9
10
11
2.2.1.
Khái niệm
11
2.2.2.
Tạo sao chọn PHP để phát triển server
11
2.3. Hệ quản trị cơ sở dữ liệu MySQL
13
2.4. Google Firebase Cloud
14
2.4.1.
Khái niệm Firebase
14
2.4.2.
Chức năng chính của Google Firebase
14
2.4.2.1. Realtime Database – Cơ sở dữ liệu thời gian thực
14
2.4.2.2. Firebase Authentication – Hệ thống xác thực của Firebase
15
2.4.2.3. Firebase storage
15
2.4.2.4. Firebase Cloud Messaging
15
2.4.3.
Lợi ích của Google Firebase
15
2.4.3.1. Triển khai ứng dụng cực nhanh
15
2.4.3.2. Bảo mật
15
2.4.3.3. Tính linh hoạt và khả năng mở rộng
16
2.5. Tổng quan về Android
16
2.5.1.
Giới thiệu nền tảng Android
16
2.5.2.
Cấu trúc của hệ điều hành Android
16
2.5.3.
Giới thiệu hệ điều hành mở Android
17
2.6. Giới thiệu về chuỗi JSON
17
2.6.1.
Khái niệm chuỗi JSON
17
2.6.2.
Cấu trúc chuỗi JSON
18
2.6.3.
Các trường hợp nên dùng JSON
19
2.7. Hệ thống khuyến nghị
19
2.7.1.
Giới thiệu
19
2.7.2.
Các phương pháp trong hệ thống khuyến nghị
21
2.7.2.1. Hệ thống khuyến nghị theo nội dung (Content-based approach) 21
2.7.2.2. Hệ thống khuyến nghị lọc cộng tác (Collaborative filtering)
21
2.7.2.3. Hệ thống khuyến nghị lai (Hybrid recommender system)
24
2.8. Dropwizard
26
2.9. Apache Spark
27
2.9.1.
Giới thiệu
27
2.9.2.
Thành phần của Apache Spark
27
2.9.3.
Ưu điểm của Apache Spark
29
XÂY DỰNG HỆ THỐNG
30
Chương 3.
3.1. Xây dựng kiến trúc hệ thống
30
3.1.1.
Xác định yêu cầu hệ thống
30
3.1.2.
Phân tích yêu cầu hệ thống
32
3.1.2.1. Phần Android (khách hàng)
32
3.1.2.2. Phần Android (người bán hàng)
34
3.1.2.3. Phần Android (quản trị viên)
35
3.2. Phân tích thiết kế hệ thống
3.2.1.
Sơ đồ use case
37
37
3.2.1.1. Sơ đồ use case
37
3.2.1.2. Danh sách các actors
48
3.2.1.3. Danh sách các use cases
49
3.2.2.
Sơ đồ lớp
52
3.2.3.
Phân tích và thiết kế CSDL
54
3.2.3.1. Bảng Loại sản phẩm
56
3.2.3.2. Bảng Sản phẩm
57
3.2.3.3. Bảng Chi tiết sản phẩm
58
3.2.3.4. Bảng Đánh giá
59
3.2.3.5. Bảng Giỏ hàng
59
3.2.3.6. Bảng Hóa đơn tổng
60
3.2.3.7. Bảng Hóa đơn
61
3.2.3.8. Bảng Chi tiết hóa đơn
62
3.2.3.9. Bảng Chuyển khoản
62
3.2.3.10. Bảng Danh mục loại bài viết
63
3.2.3.11. Bảng Loại bài viết
64
3.2.3.12. Bảng Bài viết
64
3.2.3.13. Bảng Lưu bài viết
65
3.2.3.14. Bảng Loại nhân viên
65
3.2.3.15. Bảng Nhân viên
66
3.2.3.16. Bảng Địa chỉ nhân viên
67
3.2.3.17. Bảng Tìm kiếm
67
3.2.3.18. Bảng Tìm kiếm phổ biến
68
3.2.3.19. Bảng Quảng cáo
68
3.2.3.20. Bảng Sản phẩm Flash Sale
68
3.2.3.21. Bảng Sản phẩm đã xem
69
3.2.3.22. Bảng Sản phẩm yêu thích
70
3.2.3.23. Bảng Chatlist
70
3.2.3.24. Bảng Chat
71
3.3. Thiết kế giao diện
3.3.1.
Giao diện ứng dụng.
71
71
3.3.1.1. Người dùng chưa đăng nhập
71
3.3.1.2. Người dùng đã đăng nhập
82
3.3.1.3. Quản trị viên
99
Chương 4.
ÁP DỤNG GỢI Ý SẢN PHẨM
109
4.1. Thực nghiệm
4.1.1.
Một số định nghĩa
109
109
4.1.1.1. Utility matrix
109
4.1.1.2. Root Mean Squared Error (RMSE)
112
4.1.2.
Phương pháp
112
4.1.2.1. Content-based Recommender System
113
4.1.2.2. Neighborhood-based Collaborative Filtering
115
4.1.2.3. Matrix Factorization Collaborative Filtering
120
4.2. Đánh giá
121
4.2.1.
So sánh kết quả
121
4.2.2.
Content-based Recommender System
122
4.2.3.
Neighborhood-based Collaborative Filtering và Matrix Factorization
Collaborative Filtering
4.3. Áp dụng Matrix Factorization Collaborative Filtering
Chương 5.
KẾT LUẬN, HƯỚNG PHÁT TRIỂN
122
123
127
5.1. Ưu điểm
127
5.2. Nhược điểm
127
5.3. Hướng phát triển
127
DANH MỤC HÌNH VẼ
Hình 2-1: Mơ hình MVP
8
Hình 2-2: So sánh MVP và MVC
10
Hình 2-3: Sự phát triển và độ phổ biến của MySQL
13
Hình 2-4: Google Firebase Cloud
14
Hình 2-5: Cấu trúc hệ điều hành Android
17
Hình 2-6: Ví dụ chuỗi JSON
18
Hình 2-7: Thành phần Apache Spark
27
Hình 3-1: Quy trình xử lý hàng hóa của MyStore
30
Hình 3-2: Biểu đồ use case mức tổng quát
37
Hình 3-4: Biểu đồ use case Đăng nhập
38
Hình 3-6: Biểu đồ use case Quản lý danh mục sản phẩm
39
Hình 3-7: Biểu đồ use case Quản lý sản phẩm
40
Hình 3-8: Biểu đồ use case Quản lý đơn hàng
40
Hình 3-9: Biểu đồ use case Quản lý quảng cáo
41
Hình 3-10: Biểu đồ use case Quản lý bài viết
41
Hình 3-11: Biểu đồ use case Xem bài viết
42
Hình 3-12: Biểu đồ use case Lưu vài viết
42
Hình 3-13: Biểu đồ use case Đặt nhắc nhở xem bài viết
43
Hình 3-14: Biểu đồ use case Quản lý địa chỉ giao hàng
43
Hình 3-15: Biểu đồ use case Quản lý giỏ hàng
44
Hình 3-16: Biểu đồ use case Xem tình trạng đơn hàng
44
Hình 3-17: Biểu đồ use case Tìm kiếm sản phẩm
45
Hình 3-18: Biểu đổ use case Xem sản phẩm
45
Hình 3-19: Biểu đồ use case Quản lý sản phẩm yêu thích
46
Hình 3-20: Biểu đồ use case Đánh giá sản phẩm
46
Hình 3-21: Biểu đồ use case Đặt hàng sản phẩm
47
Hình 3-22: Biểu đồ use case Chat
47
Hình 3-23: Biểu đồ Thống kê doanh thu
48
Hình 3-24: Biểu đồ use case Liên hệ Admin
48
Hình 3-25: Biểu đồ lớp
52
Hình 3-26: Giao diện trang chủ
72
Hình 3-27: Giao diện flash sale
73
Hình 3-28: Giao diện tìm kiếm hàng đầu
74
Hình 3-29: Giao diện Bộ sưu tập u thích
75
Hình 3-30: Giao diện Sản phẩm gợi ý
76
Hình 3-31: Giao diện Tìm kiếm sản phẩm
77
Hình 3-32: Giao diện Thơng tin sản phẩm
78
Hình 3-33: Giao diện Đăng ký tài khoản
79
Hình 3-34: Giao diện bài viết
80
Hình 3-35: Giao diện thơng báo nhắc xem bài viết
81
Hình 3-36: Giao diện tìm kiếm hàng đầu
82
Hình 3-37: Giao diện Giỏ hàng
83
Hình 3-38: Giao diện Nhập thơng tin khách hàng
84
Hình 3-39: Giao diện Xác nhận thơng tin mua hàng
85
Hình 3-40: Giao diện Đặt hàng thành cơng
86
Hình 3-41: Giao diện đơn mua
87
Hình 3-42: Giao diện chi tiết đơn hàng
88
Hình 3-43: Giao diện chức năng trong chi tiết sản phẩm
89
Hình 3-44: Giao diện nhắn tin
90
Hình 3-45: Giao diện danh sách tin nhắn
91
Hình 3-46: Giao diện Tài khoản
92
Hình 3-47: Giao diện Shop của tơi
93
Hình 3-48: Giao diện Quản lý đơn hàng
94
Hình 3-49: Giao diện yêu cầu cấp quyền truy cập vào camera và bộ nhớ
95
Hình 3-50: Giao diện thêm sản phẩm mới
96
Hình 3-51: Giao diện Doanh thu
97
Hình 3-52: Giao diện Shop người bán
98
Hình 3-53: Giao diện Quản trị viên
99
Hình 3-54: Giao diện cập nhật trạng thái đơn hàng
100
Hình 3-55: Giao diện quản lý chuyển khoản
101
Hình 3-56: Giao diện chi tiết chuyển khoản
102
Hình 3-57: Giao diện quản lý sản phẩm chờ xác nhận
103
Hình 3-58: Giao diện quản lý danh mục
104
Hình 3-59: Giao diện thêm mới danh mục
105
Hình 3-60: Giao diện sửa/xóa danh mục
106
Hình 3-61: Giao diện quản lý người dùng
107
Hình 3-62: Giao diện chi tiết người dùng
108
Hình 4-1: Utility matrix
109
Hình 4-2: Consine similarity
111
Hình 4-3: Cơng thức tích similarity giữa A và B
111
Hình 4-4: Sự tương đồng của 2 vector
112
Hình 4-5: Cơng thức tính RMSE
112
Hình 4-6: Kết quả load dữ liệu Content-based
114
Hình 4-7: Ví dụ feature vector của các item
114
Hình 4-8: Kết quả dự đốn content-based
114
Hình 4-9: RMSE của content-based
114
Hình 4-10: Bảng số sao user U rate cho item I
115
Hình 4-11: Các bước thực hiện Neighborhood-based CF
116
Hình 4-12: Cơng thức tính hệ sống tương quan Pearson giữa x và y
119
Hình 4-13: Ý tưởng của Matrix Factorization CF
121
Hình 4-14: Một phần Utility matrix
123
Hình 4-15: Một phần kết quả sau khi chuẩn hóa ma trận utility
123
Hình 4-16: Một phần ma trận similarity
123
Hình 4-17: Kết quả gợi ý raw
125
Hình 4-18: Hiển thị kết quả gợi ý trong ứng dụng
125
Hình 4-19: Lịch sử xem sản phẩm của người dùng
126