1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống gợi ý sản phẩm công nghệ cho người dùng

114 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng hệ thống gợi ý sản phẩm công nghệ cho người dùng
Tác giả Võ Duy Tạo, Bùi Anh Tài
Người hướng dẫn Th.S. Lê Thị Minh Châu
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 114
Dung lượng 16,71 MB

Cấu trúc

  • 1. Lý do chọn đề tài (12)
  • 2. Đối tượng nghiên cứu (13)
  • 3. Phạm vi nghiên cứu (13)
  • CHƯƠNG 1: PHÂN TÍCH YẾU CẦU PHẦN MỀM (14)
    • 1.1. Đặc tả yêu cầu (14)
      • 1.1.1. Yêu cầu chức năng phần website (14)
      • 1.1.2. Yêu cầu phi chức năng phần website (15)
      • 1.1.3. Yêu cầu chức năng phần app (16)
      • 1.1.4. Yêu cầu phi chức năng phần app (17)
    • 1.2. Mô tả usecase (18)
      • 1.2.1. Lược đồ usecase tổng quan (18)
      • 1.2.2. Lược đồ usecase chi tiết (19)
    • 1.3. Lược đồ sequence (43)
    • 1.4. Lượt đồ activity (55)
    • 1.5. Class Diagram (58)
  • CHƯƠNG 2: HỆ THỐNG GỢI Ý SẢN PHẨM (59)
    • 2.1. Tìm hiểu về các hệ thống gợi ý sản phẩm hiện nay (59)
      • 2.1.1. Giới thiệu về hệ thống gợi ý (59)
      • 2.1.2. Các loại hệ thống gợi ý chính hiện nay (59)
    • 2.2. So sánh việc áp dụng các hệ thống gợi ý vào website hiện tại (60)
    • 2.3. Tìm hiểu cách gợi ý sản phẩm bằng lọc nội dung (Content-based filtering) 60 2.4. Thực hiện tìm hiểu và triễn khai trên tập data mẫu (64)
    • 2.5. Tìm hiểu Bidirectional Encoder Representations from Transformers (68)
    • 2.6. Tìm hiểu Bidirectional Encoder Representations from Transformers (70)
      • 2.6.1. Chuẩn bị data (70)
      • 2.6.2. Giai đoạn xử lý dữ liệu (73)
      • 2.6.3. Xây dựng chức năng gợi ý (75)
  • CHƯƠNG 3: APP QUẢN LÝ VẬN CHUYỂN (87)
    • 3.1 Giới thiệu (87)
    • 3.2 Mô tả Quy trình Vận chuyển (0)
      • 3.2.1 Đặt hàng (Ordered) (87)
      • 3.2.2 Xác nhận đơn hàng (Confirmed) (87)
      • 3.2.3 Hủy đơn hàng (Cancelled) (88)
      • 3.2.4 Yêu cầu giao hàng (Requesting) (88)
      • 3.2.5 Phân công shipper (Working) (88)
      • 3.2.6 Đang vận chuyển (Delivering) (88)
      • 3.2.7 Chuyển giao shipper khác (Change_Delivering) (88)
      • 3.2.8 Đã giao (Delivered) (88)
      • 3.2.9 Yêu cầu đổi hàng (Request_Change) (89)
      • 3.2.10 Yêu cầu trả hàng (Request_Return) (89)
      • 3.2.11 Yêu cầu đổi và trả hàng (Request_Change_And_Return) (89)
      • 3.2.12 Đơn hàng nhận thành công (Received) (90)
      • 3.2.13 Đơn hàng thành công (Success) (90)
      • 3.2.14 Đơn hàng thất bại (Failed) (90)
    • 3.3 Kết luận (90)
  • CHƯƠNG 4: LẬP KẾ HOẠCH KIỂM THỬ (91)
    • 4.1. Lịch trình kiểm thử (91)
    • 4.2. Mục tiêu kiểm thử (92)
      • 4.2.1. Mục tiêu .............................................................................................. 88 4.2.2. Phạm vi kiểm thử .................................. Error! Bookmark not defined (92)
      • 4.2.3. Những người sử dụng tài liệu này (0)
    • 4.3. Những yêu cầu về tài nguyên (92)
      • 4.3.1. Phần cứng (92)
      • 4.3.2. Phần mềm (92)
      • 4.3.3. Công cụ kiểm thử (92)
      • 4.3.4. Môi trường kiểm thử (93)
    • 4.4. Chiến lược kiểm thử (93)
    • 4.5. Điều kiện chấp nhận (93)
    • 4.6. Defect Tracking (93)
      • 4.6.1. Phân loại lỗi (93)
      • 4.6.2. Quy trình xử lí lỗi (94)
  • CHƯƠNG 5 TRIỂN KHAI CHƯƠNG TRÌNH (95)
    • 5.1 Triển khai website (95)
    • 5.2 Triển khai app (101)
  • CHƯƠNG 6 ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ HƯỚNG PHÁT TRIỄN (108)
    • 6.1. Ưu điểm (108)
    • 6.2 Nhược điểm (108)
    • 6.3 Hướng phát triễn (109)
  • KẾT LUẬN (110)
  • TÀI LIỆU THAM KHẢO (113)

Nội dung

Tìm sản phẩm theo danh mục: Hiển thị danh sách sản phẩm theo từng danh mục và có hiển thị phân trang Danh sách giỏ hàng : Hiển thị các sản phẩm được chọn mua trong giỏ hàng Danh sách hóa

PHÂN TÍCH YẾU CẦU PHẦN MỀM

Đặc tả yêu cầu

1.1.1 Yêu cầu chức năng phần website

Bảng 1 Yêu cầu chức năng phần website

Yêu cầu Mô tả Chi tiết

Để đảm bảo bảo mật thông tin và phiên làm việc của người dùng, hệ thống sử dụng JWT (JSON Web Token) Trong hệ thống, có hai quyền cơ bản được phân quyền cho người dùng: ADMIN và USER, nhằm quản lý và kiểm soát truy cập hiệu quả.

Lưu trữ Thông tin người dùng, sản phẩm, danh mục, thương hiệu, được lưu trữ trên bộ nhớ của cơ sở dữ liệu MySQL

Thư viện hình ảnh được lưu trữ trên AWS và lưu trữ trong cơ sở dữ liệu dưới dạng URL, cho phép người dùng dễ dàng tra cứu và tìm kiếm sản phẩm theo yêu cầu.

Tìm sản phẩm theo danh mục: Hiển thị danh sách sản phẩm theo từng danh mục và có hiển thị phân trang

Danh sách giỏ hàng : Hiển thị các sản phẩm được chọn mua trong giỏ hàng

Danh sách hóa đơn và chi tiết hóa đơn: Hiển thị danh sách các hóa đơn đã đặt của người dùng và chi tiết của hóa đơn

Danh sách sản phẩm yêu thích: Hiển thị danh sách sản phẩm mà người dùng yêu thích

Danh sách mã giảm giá: Cung cấp một danh sách mã giảm giá hấp dẫn Tính toán và thống kê các thông tin quan trọng như số lượng người dùng, số đơn hàng, số sản phẩm và tổng giá trị hóa đơn.

Chức năng quản lý Quản lý người dùng Đăng ký tài khoản Đăng nhập

Chỉnh sửa thông tin cá nhân Đổi mật khẩu

Quên mật khẩu Quản lý địa chỉ Quản lý danh mục sản phẩm

Thêm, xóa, sửa danh mục

Thêm, xóa, sửa thương hiệu

Thêm, xóa sửa sản phẩm

Quản lý mã giảm giá

Thêm, xóa, sửa mã giảm giá

Chức năng tự động Gửi thông báo

Gửi thông báo khi người dùng xác nhận đặt hàng và tình trạng đơn hàng

1.1.2 Yêu cầu phi chức năng phần website

Bảng 2 Yêu cầu phi chức năng phần website

Yêu cầu Mô tả Chi tiết

Chương trình xây dựng trên tiêu chuẩn

Sử dụng Springboot và React

Cấu trúc request và response theo mẫu

Code cần có comment Thiết bị sử dụng Trình duyệt web

Hỗ trợ Microsoft Edge version ≥ 88.0 Tốc độ và thời gian xử lý

Tốc độ và thời gian xử lý phải nhanh

Thời gian tối đa xử lý dữ liệu : 10 giây Trong lúc xử lý phải hiển thị loading để tránh gây hiểu nhầm

Thông báo Đưa thông báo cụ thể

Thông báo cụ thể về lỗi, cách sử dụng, thông tin thao tác một cách cụ thể nhất, không lan man

Bảo mật trên trình duyệt

Tự động đăng xuất sau khoảng 10 phút không hoạt động của người dùng

1.1.3 Yêu cầu chức năng phần app

Bảng 2 Chức năng phần app

Yêu cầu Mô tả Chi tiết

Yêu cầu nghiệp vụ Bảo mật Bảo mật thông tin, phiên làm việc của người dùng bằng JWT

Phân quyền người dùng trong hệ thống: Có hai quyền cơ bản được xác định trong ứng dụng là: MANAGER và SHIPPER

Thông tin người dùng, sản phẩm, danh mục và thương hiệu được lưu trữ trong cơ sở dữ liệu MySQL Bên cạnh đó, thư viện hình ảnh được lưu trữ trên AWS S3 và được ghi lại trong cơ sở dữ liệu dưới dạng URL.

Tra cứu Tra cứu tình trạng đơn hàng

Danh sách hóa đơn và chi tiết hóa

Tính toán Thống kê các thông tin như số shipper, số đơn hàng, số sản phẩm, tổng giá trị hóa đơn

Chức năng quản lý Quản lý người dùng Đăng ký tài khoản Đăng nhập

Chỉnh sửa thông tin cá nhân Đổi mật khẩu

Lên lịch giao đơn, giao đơn, theo dõi, xác nhận đơn hàng

Xem thông tin danh thu của shipper

Chức năng tự động Gửi thông báo

Gửi thông báo khi shipper giao thành công hoặc nhận đơn

1.1.4 Yêu cầu phi chức năng phần app

Bảng 3 Chức năng phi yêu cầu phần app

Yêu cầu Mô tả Chi tiết

Chương trình xây dựng trên tiêu chuẩn

Sử dụng Springboot và ReactNative

Cấu trúc request và response theo mẫu Code cần có comment

Thiết bị sử dụng Android

Thời gian tối đa xử lý dữ liệu : 10 giây

Tốc độ và thời gian xử lý

Tốc độ và thời gian xử lý phải nhanh

Trong lúc xử lý phải hiển thị loading để tránh gây hiểu nhầm

Thông báo Đưa thông báo cụ thể

Thông báo cụ thể về lỗi, cách sử dụng, thông tin thao tác một cách cụ thể nhất, không lan man.

Mô tả usecase

1.2.1 Lược đồ usecase tổng quan

1.2.2 Lược đồ usecase chi tiết

Bảng 4 Chi tiết usecase đăng nhập

Use Case Name Đăng nhập hệ thống

Description Đăng nhập vào website của hệ thống này

Pre-Condition(s) Có tài khoản cá nhân đã được tạo

Post-Condition(s) Xác thực đăng nhập thành công

Basic Flow Người dùng truy cập trang đăng nhập của website

Nhập thông tin tương ứng vào form đăng nhập Nhấp chọn nút đăng nhập

Hệ thống tiến hành xác thực đăng nhập và gửi thông báo

16 Ứng dụng thông báo đăng nhập thành công và chuyển hướng vào màn hình chính

Exception Flow E5 Xác thực thất bại và ứng dụng hiển thị thông báo “Đăng nhập không thành công, vui lòng kiểm tra lại tài khoản và mật khẩu”

Business Rules BR1: Người dùng nhập sai thông tin đăng nhập ở lần thứ 6 liên tiếp sẽ bị khóa tài khoản 30 phút

NFR1: Mật khẩu của người dùng phải được hash

1.2.2.2 Use case đổi mật khẩu

Bảng 5 Chi tiết usecase đổi mật khẩu

Use Case Name Đổi mật khẩu

Description Quy trình đổi mật khẩu của người dùng

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Thay đổi mật khẩu mới thành công

1 Truy cập vào trang thông tin cá nhân

3 Nhập mật khẩu hiện tại và mật khẩu mới

4 Hệ thống xác thực mật khẩu

5 Hệ thống thông báo thay đổi mật khẩu thành công Alternative Flow

Exception Flow E4 Mật khẩu khẩu xác thực tất bại

E4.1 Mật khẩu cũ không chính xác E4.2 Mật khẩu mới không đủ mạnh Business Rules BR1: Mật khẩu mới không giống mật khẩu cũ

BR2: Mật khẩu mới phải tuân thủ các yêu cầu về độ an toàn (ít nhất 8 ký tự, bao gồm chữ, số và ký tự đặc biệt)

Bảng 6 Chi tiết usecase chỉnh sửa thông tin cá nhân

1.2.2.3 Use case xem và sửa thông tin cá nhân

Use Case Name Xem và sửa thông tin cá nhân

Description Quy trình xem và sửa thông tin cá nhân của người dùng

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Thông tin được cập nhật thành công

1 Truy cập vào trang thông tin cá nhân

2 Hệ thống hiển thị thông tin của người dùng

3 Người dùng nhập thông tin mới

5 Hệ thống thông báo xác nhận đổi mật khẩu

6 Hệ thống xác thực thông tin mới

7 Hệ thống thông báo cập nhật thông tin thành công

Alternative Flow A5 Người dùng chọn “Hủy” không muốn sửa thông tin Use case quay lại bước 2 Exception Flow E6 Hệ thống xác thực thông tin thất bại

Xem và sửa thông tin 1

1.2.2.4 Use case xem danh sách sản phẩm

Bảng 7 Xem danh sách sản phẩm

Use Case Name Xem danh sách sản phẩm

Description Cho phép người dùng xem danh sách sản phẩm, lọc và tìm kiếm sản phẩm

Trigger Người dùng muốn xem danh sách các sản phẩm

Pre-Condition  Người dùng đã truy cập vào website

 Thiết bị người dùng được kết nối internet khi sử dụng

Basic Flow 1 Người dùng truy cập vào trang sản phẩm

2 Hệ thống hiển thị danh sách sản phẩm

3 Nguời dùng nhấn vào sản phẩm bất kỳ để xem thông tin chi tiết

4 Hệ thống hiển thị chi tiết sản phẩm

A.F.1.2:Người dùng chọn danh mục sản phẩm

Tiếp tục thực hiện bước 2

A.F.1.4:Người đùng nhập tên sản phẩm vào trường tìm kiếm

Tiếp tục thực hiện bước 2

Exception Flow Người dùng nhập tên sản phẩm không tồn tại trong hệ thống

Hệ thống báo danh sách sản phẩm trống

1.2.2.5 Use case tìm kiếm sản phẩm

Bảng 8 Usecase tìm kiếm sản phẩm

Use Case Name Tìm kiếm sản phẩm

Description Quy trình người dùng thực hiện để tìm kiếm sản phẩm

Pre-Condition(s) Đã truy cập vào website

Post-Condition(s) Kết quả tìm kiếm được hiển thị cho người dùng

1 Truy cập vào trang chủ của website

2 Nhập thông tin vào ô tìm kiếm

3 Nhấn Enter hoặc nhấn nút “Tìm kiếm”

4 Hệ thống tìm kiếm sản phẩm phù hợp với từ khóa

5 Hệ thống tìm kiếm cho người dùng

Alternative Flow A5 Không tìm thấy sản phẩm phù hợp từ khóa thì hiển thị “Không tìm thấy”

NFR1: Tốc độ tìm kiếm nhanh và chính xác

1.2.2.6 Use case lọc sản phẩm

Bảng 9 Lọc theo yêu cầu

Use Case Name Filter sản phẩm

Description Lọc các sản phẩm theo yêu cầu

Post-Condition(s) Danh sách sản phẩm theo yêu cầu

Basic Flow 1 Người dùng chọn danh mục, nhập khoảng giá,và đánh giá mong muốn trên thanh sidebar

1.2.2.7.Use case thêm giỏ hàng

Use Case Name Quản lý giỏ hàng

Description Xem, cập nhật và thanh toán giỏ hàng

Trigger Người dùng muốn thanh toán giỏ hàng

Pre-Condition  Người dùng phải có sẵn tài khoản

 Tài khoản đã được phân quyền

 Người dùng đã đăng nhập vào website

 Thiết bị người dùng được kết nối internet khi sử dụng

Basic Flow 1 Người dùng bấm vào nút “Đặt hàng”

2 Hệ thống hiển thị thông báo xác nhận đặt hàng, người dùng bấm đồng ý

3 Hệ thống hiển thị thông báo đặt hàng thành công và lưu dữ liệu đơn hàng

4 Hệ thống xóa bỏ giỏ hàng cũ

2.1 Nếu người dùng bấm hủy bỏ, hệ thống chuyển hướng người dùng về trang giỏ hàng

4.1 Nếu không chọn thanh toán toàn bộ, một giỏ hàng mới với các sản phẩm còn lại sẽ được tạo ra

A.F.1.2: Người dùng chọn sản phẩm và thực hiện thay đổi số lượng sản phẩm trong giỏ hàng, nếu số lượng bằng 0 Sản phẩm sẽ bị xóa khỏi giỏ hàng A.F.1.3: Người dùng chọn lệnh xóa toàn bộ sản phẩm trong giỏ hàng, tất cả sản phẩm trong giỏ hàng sẽ bị xóa

Exception Flow Nếu không có sản phẩm nào trong giỏ hàng, hệ thống sẽ thông báo giỏ hàng trống

1.2.2.8 Use case Cập nhật giỏ hàng

Bảng 11 Cập nhật giỏ hàng

Use Case Name Cập nhật giỏ hàng

Description Quy trình cập nhật giỏ hàng

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Giỏ hàng được cập nhật thành công

1 Truy cập vào giỏ hàng

2 Hệ thống hiển thị các sản phẩm đã được thêm vào giỏ hàng

3 Nhấn dấu công để tăng số lượng hoặc dấu trừ để giảm số lượng hoặc nhấn nút xóa để loại bỏ sản phẩm ra khỏi giỏ hàng ở từng sản phẩm

4 Hệ thống hiển thị lại thông tin danh sách các sản phẩm có trong giỏ hàng Alternative Flow

Use Case Name Mua hàng

Description Quy trình đặt hàng

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Đơn hàng được thêm vào đơn mua

Basic Flow Truy cập vào giỏ hàng chọn các sản phẩm cần mua nhấn nút mua hàng

Hệ thống hiển thị thông báo đơn hàng đã được đặt hàng thành công

1.2.2.10 Use case xem trạng thái đơn

Use Case Name Xem trạng thái đơn hàng

Description Quy trình xem trạng thái đơn hàng

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Xem được các đơn hàng đã được đặt hàng

1 Nhấn vào tên đăng nhập

3 Hệ thống hiển thị danh sách các đơn mua và trạng thái của nó

1 Admin ấn vào đơn hàng trên thanh taskbar

2 Hệ thống hiển thị danh sách đơn hàng Alternative Flow

1.2.2.11 Use Case quản lý sản phẩm

Bảng 13 Quản lý sản phẩm

Use Case Name Quản lý sản phẩm

Description Quy trình quản lý sản phẩm

Pre-Condition(s) Đã đăng nhập vào hệ thống

Post-Condition(s) Quản lý được các sản phẩm

Basic Flow Trường hợp 1: Xem danh sách sản phẩm

1.1 Admin ấn vào sản phẩm trên thanh taskbar 1.2 Hệ thống hiển thị danh sách sản phẩm Trường hợp 2: Xem chi tiết sản phẩm 2.1 Admin ấn vào sản phẩm muốn xem chi tiết 2.2 Hệ thống hiển thị chi tiết thông tin sản phẩm Trường hợp 3: Thêm sản phẩm

3.1 Admin ấn vào nút Thêm sản phẩm 3.2 Hệ thống hiển thị form nhập thông tin sản phẩm 3.3 Admin điền thông tin và nhấn vào nút thêm 3.4 Hệ thống thông báo thêm sản phẩm thành công

Trường hợp 4: Cập nhật sản phẩm 4.1 Admin ấn vào sản phẩm muốn cập nhật

4.2 Hệ thống hiển thị form cập nhật thông tin sản phẩm

4.3 Admin cập nhật thông tin và nhấn vào nút thêm

4.4 Hệ thống thông báo cập nhật sản phẩm thành công

Trường hợp 5: Xóa sản phẩm 5.1 Admin nhấn vào sản phẩm muốn xóa 5.2 Hệ thống xóa sản phẩm

Alternative Flow 3.3.1 Admin nhấn vào nút hủy

3.3.2 Hệ thống trở về trang xem danh sách 4.3.1 Admin nhấn vào nút hủy

4.3.2 Hệ thống trở về trang xem danh sách Exception Flow

1.2.2.12 Use Case quản lý đơn hàng

Bảng 14 Quản lý đơn hàng

Use Case Name Quản lý đơn hàng

Description Quản lý các đơn hàng của khách hàng

Basic Flow Trường hợp 1: Xem danh sách đơn hàng

1.1 Admin ấn vào đơn hàng trên thanh taskbar 1.2 Hệ thống hiển thị danh sách đơn hàng Trường hợp 2: Xem chi tiết đơn hàng 2.1 Admin ấn vào đơn hàng muốn xem chi tiết 2.2 Hệ thống hiển thị chi tiết đơn hàng

Trường hợp 3: Xác nhận đơn hàng 3.1 Admin ấn vào đơn hàng muốn xác nhận 3.2 Admin ấn xác nhận đã giao hàng thành công

Use Case Name Đăng nhập

Description Đăng nhập vào hệ thống

 Người dùng đã đăng ký tài khoản mới

 Tài khoản được phân quyền rồi

 Thiết bị người dùng được kết nối internet khi sử dụng dịch vụ

1 Người dùng nhấn vào nút “Đăng nhập” trên ứng dụng

2 Hệ thống hiển thị form đăng nhập

3 Người dùng nhập tài khoản và mật khẫu và bấm nút “Đăng nhập”

4 Hệ thống xử lý đăng nhập thành công

2.1 Nếu chưa có tài khoản, người dùng có thể bấm vào nút

“Đăng ký” để chuyển sang usecase Đăng Ký

2.2 Nếu người dùng quên mật khẫu, người dùng có thể bấm vào nút “Quên mật khẩu” để chuyển sang usecase Quên mật khẫu

4.1 Nếu người dùng chưa nhập tài khoản hoặc mật khẩu, hệ thống hiển thị thông báo “Vui lòng nhập đầy đủ tài khoản, mật khẫu”

4.2 Nếu người dùng nhập thông tin không chính xác, hệ thống thông báo “Thông tin đăng nhập không chính xác”

Use Case Name Đăng ký

Description Đăng ký tải khoản

Pre-Condition  Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng nhấn vào nút “Đăng ký” trên ứng dụng

2 Hệ thống hiển thị form đăng ký

3 Người dùng nhập tài khoản, mật khuẫ và các thông tin khác và bấm nút “Đăng ký”

4 Hệ thống xử lý đăng ký thành công

2.1 Nếu có tài khoản, người dùng có thể bấm vào nút “Đăng nhập” để chuyển sang usecase Đăng nhập

4.1 Nếu người dùng chưa nhập tài khoản hoặc mật khẩu, hệ thống hiển thị thông báo “Vui lòng nhập đầy đủ tài khoản, mật khẫu”

1.3.2.3 Use case chỉnh sửa thông tin

Use Case Name Nhận đơn hàng

Description Shipper nhận đơn hàng đi giao

 Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng chọn đơn hàng muốn nhận trên danh sách

2 Hệ thống hiển thị cảnh báo “Bạn có chắc chắn muốn nhận đơn này không”

3 Người dùng ấn nút “Xác nhận”

4 Hệ thống thông báo “Đã nhận đơn hàng thành công”

3.1 Người dùng ấn “Huỷ” quay trở lại trang danh sách đơn hàng

Exception Flow 4.1 Hệ thống thông báo “Đơn hàng nhận thất bại do có shipper khác đã nhận”

Use Case Name Vận đơn

Description Shipper giao hàng cho khách

 Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng chọn đơn hàng muốn giao

2 Hệ thống hiển thị hiển thị “Bạn chắc chắn muốn vận đơn”

3 Người dùng ấn nút “Xác nhận”

4 Hệ thống thông báo “Đơn hàng đang được vận chuyển”

3.1 Người dùng ấn “Huỷ” quay trở lại trang danh sách đơn hàng

1.3.2.6 Use case xác nhận đơn

Use Case Name Xác nhận đơn hàng

Description Shipper xác nhận giao hàng thành công

 Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng chọn đơn hàng đang giao

2 Hệ thống hiển thị hiển thị form nhập thông tin, hình ảnh đơn hàng

3 Người dùng upload hình ảnh và ấn “Xác nhận”

4 Hệ thống thông báo “Đơn hàng đang chờ manager xét duyệt”

3.1 Người dùng ấn “Huỷ” quay trở lại trang danh sách đơn hàng

1.3.2.6 Use case huỷ nhận đơn

Use Case Name Huỷ đơn hàng

Description Shipper huỷ đơn hàng do có vấn đề phát sinh

 Thiết bị người dùng được kết nối internet khi sử dụng

Basic Flow 1 Người dùng chọn đơn hàng đang giao hoặc đả nhận và chọn “Huỷ đơn hàng”

2 Hệ thống hiển thị form nhập thông tin

3 Người dùng nhập lý do huỷ đơn và nhấn “Huỷ”

4 Hệ thống hiển thị cảnh báo “Bạn có chắc chắn muốn huỷ đơn hàng!”

5 Người dùng nhấn “Xác nhận”

6 Hệ thống thông báo “Đơn hàng đã huỷ thành công”

5.1 Người dùng ấn “Huỷ” quay trở lại trang danh sách đơn hàng

Use Case Name Chat – liên lạc

Description Chat giữa shipper và manager

 Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng chọn hỗ trợ trên menu

2 Hệ thống hiển thị app chat

3 Người dùng nhập tin nhắn và nhấn “Gửi”

Use Case Name Giao đơn

Description Manager giao đơn hàng cho shipper

 Thiết bị người dùng được kết nối internet khi sử dụng

1 Người dùng chọn đơn hàng cần giao, và ấn nút “Giao đơn”

2 Hệ thống hiển thị form chọn shipper

3 Người dùng chọn shipper và nhấn “Xác nhận”

4 Hệ thống giao đơn hàng cho shipper và thông báo “Giao đơn thành công”

Flow 3.1 Người dùng nhấn “Huỷ” quay về trang danh sách

Lược đồ sequence

Hình 1 Sequence đăng nhập

Hình 2 Sequence Đăng ký

1.3.3 Use case đổi mật khẩu

Hình 3 Sequence Đổi mật khẩu

Figure 3: SD Đổi mật khẩu

1.3.4 Use case xem và sửa thông tin cá nhân

Hình 4 Sequence xem và sửa thông tin

1 Figure 4: SD Xem và sửa thông tin cá nhân

1.3.3 Use case tìm kiếm sản phẩm

Hình 5 Tìm kiếm sản phẩm

Figure 5: SD Tìm kiếm sản phẩm

1.3.6 Use case thêm sản phẩm

Hình 6 Sequence thêm giỏ hàng

Figure 6: SD Thêm giỏ hàng

1.3.7 Use case cập nhật giỏ hàng

Hình 7 Sequence cập nhật giỏ hàng

Figure 7: SD Cập nhật giỏ hàng

Hình 8 Sequence mua hàng

1.3.9 Use case xem trạng thái đơn

Hình 9 xem trạng thái

Figure 9: SD Xem trạng thái đơn

1.3.10 Use case thêm sản phẩm

Hình 10 Thêm sản phẩm

Figure 10: SD Thêm sản phẩm

Hình 11 Danh sách sản phẩm

Figure 11: SD Xem danh sách sản phẩm

Hình 12 Cập nhật sản phẩm

Figure 12: SD Cập nhật sản phẩm

Hình 13 Xóa sản phẩm

Figure 13: SD Xo sản phẩm

1.3.11 Use case xem danh sách đơn hàng

Hình 14 Xem danh sách đơn hàng

Figure 14: SD Xem danh sách các đơn hàng

Hình 15 Cập nhật trạng thái đơn hàng

Figure 15: SD Cập nhật trạng thái đơn hàng

1.3.12 Use case xem tài khoản người dùng

Hình 16 Xem danh sách tài khoản

Figure 16: SD Xem danh sách tài khoản người dùng

Hình 17 Cập nhật tài khoản người dùng

1.3.16 Use case chỉnh sửa thông tin cá nhân

Lượt đồ activity

Class Diagram

ERD sản phẩm và đơn hàng:

HỆ THỐNG GỢI Ý SẢN PHẨM

Tìm hiểu về các hệ thống gợi ý sản phẩm hiện nay

2.1.1 Giới thiệu về hệ thống gợi ý

Hệ thống gợi ý (Recommender System) là công nghệ trí tuệ nhân tạo (AI) giúp tìm kiếm và đề xuất sản phẩm, nội dung phù hợp với người dùng dựa trên hành vi và sở thích của họ trên ứng dụng Hệ thống này phân tích dữ liệu từ trang web, thông tin mua hàng và tương tác của người dùng để dự đoán những sản phẩm và nội dung mà họ có khả năng quan tâm.

Hệ thống gợi ý hiện nay được áp dụng phổ biến trong nhiều lĩnh vực, bao gồm thương mại điện tử, dịch vụ truyền hình trực tuyến, mạng xã hội và các trang web tin tức.

2.1.2 Các loại hệ thống gợi ý chính hiện nay

Hiện nay, có ba loại hệ thống gợi ý chính:

Hệ thống gợi ý dựa trên lọc cộng tác (Collaborative Filtering)

Hệ thống này hoạt động dựa trên nguyên tắc rằng những người có sở thích tương tự sẽ có xu hướng ưa chuộng những sản phẩm giống nhau Bằng cách phân tích dữ liệu hành vi người dùng, như thông tin tìm kiếm, lượt truy cập và đánh giá, hệ thống có khả năng nhóm người dùng có sở thích tương đồng Sau đó, nó sẽ đề xuất cho từng người dùng trong nhóm những sản phẩm mà các thành viên khác đã mua, từ đó tối ưu hóa trải nghiệm mua sắm.

Hệ thống gợi ý dựa trên nội dung (Content-based Filtering)

Hệ thống này hoạt động dựa trên nguyên tắc rằng người dùng có xu hướng yêu thích các sản phẩm có nội dung tương tự Bằng cách phân tích nội dung của những sản phẩm mà người dùng đã xem hoặc mua trước đó, hệ thống sẽ đề xuất những sản phẩm khác có nội dung tương đồng.

Hệ thống lọc và gợi ý sản phẩm giúp người dùng tìm kiếm các sản phẩm tương tự trong hệ thống Ví dụ, trên một trang web bán sách, khi người dùng mua sách, hệ thống sẽ phân tích thói quen xem và mua sách của họ, từ đó đưa ra gợi ý về những cuốn sách có nội dung và thể loại tương đồng.

Hệ thống gợi ý lai (Hybird Filtering):

Hệ thống này kết hợp hai hệ thống khác nhau, mang lại hiệu quả tốt hơn trong thực tế Tuy nhiên, việc kết hợp này cũng đòi hỏi độ phức tạp và chi phí cao hơn Do đó, việc lựa chọn và sử dụng hệ thống cần xem xét kỹ lưỡng các yếu tố như nghiệp vụ, nhân lực, tài nguyên và dữ liệu hiện có.

Ngoài ra, còn tồn tại các hệ thống gợi ý khác như hệ thống gợi ý dựa trên quy tắc (Rule-based filtering) và hệ thống gợi ý dựa trên mạng xã hội (Social Filtering).

So sánh việc áp dụng các hệ thống gợi ý vào website hiện tại

Tiêu chí Lọc cộng tác (CF) Lọc dựa trên nội dung (CBF) Lọc lai (Hybrid) Khả năng khám phá

Cao - Giới thiệu sản phẩm mới dựa trên sở thích tương đồng, đa dạng, tránh "bong bóng lọc"

Thấp - Giới thiệu sản phẩm mới dựa trên nội dung tương tự, ít đa dạng, dễ tạo "bong bóng lọc"

Cao - Kết hợp ưu điểm của CF và CBF, giới thiệu sản phẩm mới đa dạng, tránh

Cá nhân hóa Cao - Cá nhân hóa cao dựa trên lịch sử mua hàng, hành vi duyệt web, thích ứng tốt với sở thích thay đổi

Thấp - Cá nhân hóa thấp hơn CF, chỉ dựa trên sở thích nội dung, thích ứng kém hơn

Cao - Kết hợp ưu điểm của CF và CBF, cá nhân hóa cao dựa trên sở thích, hành vi và nội dung, thích

57 với sở thích thay đổi ứng tốt với sở thích thay đổi

Khó - Khó giải thích cho người dùng và nhà phát triển do thuật toán phức tạp

Dễ - Dễ giải thích cho người dùng do dựa trên nội dung sản phẩm, dễ giải thích cho nhà phát triển do quy tắc rõ ràng

Phụ thuộc - Khả năng giải thích phụ thuộc vào cách kết hợp và hiển thị lý do gợi ý, có thể dễ hoặc khó giải thích

Minh bạch Thấp - Thiếu minh bạch do thuật toán học máy phức tạp, khó kiểm soát

Cao - Cao minh bạch do dựa trên quy tắc rõ ràng, dễ kiểm soát

Phụ thuộc - Phụ thuộc vào cách kết hợp và minh bạch của từng thuật toán

Phụ thuộc dữ liệu người dùng

Cao - Yêu cầu lượng dữ liệu người dùng lớn để hoạt động hiệu quả, gặp vấn đề "cold start"

Thấp - Ít phụ thuộc dữ liệu người dùng hơn CF, có thể hoạt động hiệu quả với dữ liệu hạn chế

Trung bình - Cần cả dữ liệu người dùng và dữ liệu nội dung sản phẩm, lượng dữ liệu vừa phải

Lịch sử mua hàng, hành vi duyệt web

Mô tả sản phẩm, thông số kỹ thuật, danh mục, đánh giá

Cả hai loại dữ liệu

Kỹ thuật học máy phổ biến

KNN, Matrix Factorization, Collaborative Filtering with ALS

TF-IDF, LDA, Word Embedding

NCF, MFSI, Attention-based Recommender Systems Ưu điểm Khả năng khám phá cao, cá nhân

Khả năng giải thích cao, minh

Kết hợp ưu điểm của

58 hóa cao, thích ứng tốt bạch, ít phụ thuộc dữ liệu

Nhược điểm Yêu cầu nhiều dữ liệu, gặp vấn đề

"cold start", khó giải thích

Khả năng khám phá thấp, thiên vị sản phẩm phổ biến

Phức tạp, cần nhiều dữ liệu và nguồn lực

Lựa chọn cho website bán đồ công nghệ

Phù hợp khi có nhiều dữ liệu người dùng và muốn đề xuất sản phẩm mới

Phù hợp khi có dữ liệu nội dung sản phẩm chất lượng cao và muốn giải thích dễ dàng

Phù hợp khi muốn kết hợp ưu điểm của cả

CF và CBF, có đủ dữ liệu để huấn luyện mô hình

Dựa trên các yếu tố phân tích và tài nguyên hiện có, chúng tôi nhận thấy rằng với thời gian tìm hiểu và nghiên cứu hạn chế, việc triển khai hệ thống gợi ý Hybrid là quá khó khăn Do đó, chúng tôi sẽ tập trung vào một trong hai hệ thống còn lại để triển khai trước, và dự kiến sẽ nâng cấp lên hệ thống Hybrid trong tương lai.

Để xây dựng một hệ thống gợi ý hiệu quả, việc xem xét dữ liệu hiện tại và tương lai là rất quan trọng Một tập dữ liệu đa dạng và chất lượng cao là yếu tố quyết định cho sự thành công của hệ thống Chúng tôi đã tiến hành phân tích các loại dữ liệu, nội dung chi tiết và hành vi của website hiện tại cũng như các website tương tự đang hoạt động tại Việt Nam.

Dữ liệu chi tiết về nội dung sản phẩm hiện có trên website và dễ dàng tìm thấy trên các diễn đàn chia sẻ, với độ chính xác rất cao.

Dữ liệu hành vi người dùng thường khó thu thập, vì nó chủ yếu dựa vào các tương tác của người dùng với trang web Để có được thông tin chính xác, dữ liệu này cần được tích lũy và tổng hợp trong một khoảng thời gian dài.

Dựa trên khảo sát của chúng tôi trên các trang bán đồ công nghệ nổi tiếng như Thế giới di động, FPT Shop, và Cellphones, số lượng đánh giá của người dùng đối với sản phẩm là rất ít, mặc dù đây là những website mua sắm hàng đầu tại Việt Nam So sánh số lượng đánh giá của sản phẩm bán chạy nhất trên Thế giới di động với các sàn thương mại điện tử khác cho thấy sự chênh lệch rõ rệt Nguyên nhân cơ bản của vấn đề này nằm ở chất lượng sản phẩm.

Một chiếc smartphone, ngay cả khi là flagship giá rẻ, vẫn có giá trị cao Là người tiêu dùng, tôi không thể chỉ dựa vào đánh giá trên trang web để quyết định mua Thay vào đó, tôi thường nghiên cứu kỹ lưỡng và so sánh nhiều mẫu điện thoại trong cùng phân khúc Nguồn thông tin tin cậy mà tôi lựa chọn là các video review sản phẩm trên Youtube.

Nếu chọn xây dựng hệ thống gợi ý bằng Collaborative Filtering, chúng tôi không thể chỉ dựa vào đánh giá sản phẩm, đặc biệt khi số lượng đánh giá hiện tại còn hạn chế Để theo đuổi hướng này, chúng tôi cần đầu tư thời gian và công sức để thu thập dữ liệu hành vi người dùng, chẳng hạn như số lượt xem và thời gian người dùng tương tác với sản phẩm Điều này yêu cầu một nỗ lực lớn và thời gian đáng kể.

Nếu chọn xây dựng hệ thống gợi ý bằng phương pháp Content-based Filtering, chúng tôi có thể tiết kiệm thời gian và công sức, từ đó nâng cao hiệu quả trong việc nghiên cứu và phát triển hệ thống, đáp ứng tốt hơn nhu cầu hiện tại và đảm bảo hoàn thiện trong thời gian cho phép.

Hệ thống AI hiện nay có khả năng thu thập dữ liệu chi tiết về các sản phẩm công nghệ từ nhiều nguồn khác nhau Thông tin này được chia sẻ rộng rãi trên các trang web, giúp việc thu thập dữ liệu trở nên dễ dàng hơn Đặc biệt, dữ liệu này thường có độ chính xác cao vì nó chủ yếu là dữ liệu gốc, không phải là thông tin ngẫu nhiên.

Chính vì tất cả những yếu tố trên mà nhóm em quyết định xây dựng hệ thống gợi ý sản phẩm dựa trên phương pháp Content-based Filtering

Tìm hiểu cách gợi ý sản phẩm bằng lọc nội dung (Content-based filtering) 60 2.4 Thực hiện tìm hiểu và triễn khai trên tập data mẫu

Content-based filtering (CBF) là một kỹ thuật trong hệ thống đề xuất, giúp dự đoán mức độ quan tâm của người dùng đối với các mục dựa trên nội dung của chúng CBF phân tích nội dung các mục mà người dùng đã tương tác trước đó, như bài viết, video hay sản phẩm, để tìm ra những mục tương tự mà người dùng có thể yêu thích.

CBF hoạt động dựa trên hai bước chính:

Xây dựng hồ sơ (Profile):

Để xác định các đặc trưng mô tả nội dung của các mục, cần xem xét các yếu tố quan trọng như chủ đề, từ khóa và tác giả đối với bài viết, trong khi đối với sản phẩm, các đặc trưng bao gồm loại sản phẩm, thương hiệu và giá cả Việc phân tích các đặc trưng này giúp tạo ra nội dung có giá trị và tối ưu hóa cho công cụ tìm kiếm.

- Tạo hồ sơ cho mỗi mục bằng cách biểu diễn các đặc trưng của mục đó dưới dạng vectơ

Tạo hồ sơ người dùng dựa trên lịch sử tương tác giúp cá nhân hóa trải nghiệm của họ, bằng cách phân tích các bài viết đã đọc và sản phẩm đã mua Việc này không chỉ nâng cao sự hài lòng của người dùng mà còn tối ưu hóa nội dung và sản phẩm được đề xuất, từ đó tăng cường khả năng giữ chân khách hàng.

Tính toán mức độ tương thích:

- Sử dụng các phương pháp so sánh vectơ để tính toán mức độ tương thích giữa hồ sơ người dùng và hồ sơ của các mục

- Gợi ý cho người dùng những mục có mức độ tương thích cao nhất

Các thuật toán phổ biến

- K-Nearest Neighbors (KNN): Tìm kiếm K mục có mức độ tương thích cao nhất với hồ sơ người dùng

- Cosine Similarity: Tính toán độ tương đồng cosin giữa vectơ hồ sơ người dùng và vectơ hồ sơ của các mục

Chỉ số Jaccard là phương pháp tính toán tỷ lệ giao nhau giữa tập hợp các đặc trưng trong hồ sơ người dùng và tập hợp các đặc trưng trong hồ sơ của các mục.

- Support Vector Machines (SVM): Sử dụng SVM để phân loại các mục thành

"thích" và "không thích" dựa trên lịch sử tương tác của người dùng

2.4 Thực hiện tìm hiểu và triễn khai trên tập data mẫu

Data mẫu là một tập data smartphone với các giá trị model, price, rating, sim, …

Xây dựng dữ liệu đầu vào: Trong phần này, tôi muốn so sánh sự tương đồng của dữ liệu đầu vào dựa trên một cột dữ liệu cụ thể Do đó, tôi sẽ triển khai theo hai phương pháp khác nhau.

- Gộp hết data vào một cột bằng nối chuổi rồi train model

Sau đó ta sẽ dùng thuật toán TF*IDF để tạo ma trận và tính ma trận tương tự cosine

Cuối cùng dùng ma trận cosine tìm được lấy sản phẩm tương đồng nhất với sản phẩm ban đầu

- Train model cho từng cột data và gợi ý theo cột

Với cách này ta sẽ training cho từng cột data

Khi gợi ý sản phẩm, ta sẽ thêm option column để lọc ra sản phẩm gợi ý Đánh giá

Hệ số tương đồng giữa các vector chưa cao

Tìm hiểu Bidirectional Encoder Representations from Transformers

BERT (Bidirectional Encoder Representations from Transformers) là mô hình ngôn ngữ do Google phát triển vào năm 2018, đánh dấu một bước tiến quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) Mô hình này được thiết kế để hiểu ngữ cảnh từ trong câu bằng cách sử dụng kiến trúc transformer hai chiều.

Transformer là một kiến trúc mô hình tiên tiến dựa trên cơ chế tự chú ý (self-attention), loại bỏ hoàn toàn các kết nối tuần tự như trong mạng nơ-ron truyền thống (RNN hoặc LSTM) Kiến trúc này bao gồm hai phần chính, giúp cải thiện hiệu suất xử lý dữ liệu và tối ưu hóa khả năng học tập của mô hình.

- Encoder: Biến đổi đầu vào thành một loạt các vector

- Decoder: Biến đổi các vector này thành đầu ra mong muốn

BERT là một mô hình transformer hai chiều, cho phép nó phân tích ngữ cảnh của từ từ cả hai phía, trước và sau Điều này tạo ra sự khác biệt so với các mô hình trước đây như GPT, chỉ xem xét ngữ cảnh từ trái sang phải.

Huấn Luyện Trước (Pre-training) và Tinh Chỉnh (Fine-tuning)

BERT sử dụng hai giai đoạn huấn luyện:

- Pre-training: Mô hình được huấn luyện trước trên một lượng lớn văn bản không nhãn bằng cách sử dụng hai nhiệm vụ chính:

 Masked Language Model (MLM): Một số từ trong câu được che lại (masked) và mô hình phải dự đoán các từ bị che này

 Next Sentence Prediction (NSP): Mô hình phải dự đoán xem một câu có phải là câu tiếp theo của câu trước đó hay không

Mô hình BERT sau khi được huấn luyện sẽ được tinh chỉnh cho các nhiệm vụ cụ thể bằng cách sử dụng dữ liệu có nhãn Quá trình này cho phép toàn bộ mô hình BERT được điều chỉnh lại, tối ưu hóa hiệu suất cho từng nhiệm vụ riêng biệt.

Các Phiên Bản Của BERT

BERT có nhiều phiên bản khác nhau tùy thuộc vào kích thước của mô hình:

 BERT-base: 12 layers (transformer blocks), 768 hidden units, 12 self-attention heads

 BERT-large: 24 layers (transformer blocks), 1024 hidden units, 16 self- attention heads Ứng Dụng Của BERT

BERT có thể được áp dụng trong nhiều nhiệm vụ NLP khác nhau như:

 Phân loại văn bản (Text classification)

 Trả lời câu hỏi (Question answering)

 Nhận dạng thực thể có tên (Named entity recognition)

 Dịch máy (Machine translation) Ưu Điểm Của BERT

 Hiệu Quả Cao: BERT đã thiết lập các chuẩn mực mới cho nhiều tác vụ NLP

 Đa Nhiệm Vụ: BERT có thể được sử dụng cho nhiều nhiệm vụ khác nhau với hiệu suất cao

 Hiểu Ngữ Cảnh Tốt Hơn: BERT có khả năng hiểu ngữ cảnh của từ trong câu tốt hơn so với các mô hình trước đây

 Tài Nguyên Tính Toán: Huấn luyện và tinh chỉnh BERT đòi hỏi rất nhiều tài nguyên tính toán.

Tìm hiểu Bidirectional Encoder Representations from Transformers

Dữ liệu tiền để là một bộ dữ liệu mẫu về smartphone mà nhóm chúng tôi đã thực hiện nhằm kiểm tra hiệu quả của các mô hình Sau đó, nhóm sẽ lựa chọn mô hình tốt nhất để phát triển chức năng.

Hiện tại, nhóm em quyết định xử lý tập data mẫu với sự tương đồng cao về cấu trúc lưu trữ, nhằm thêm 1020 sản phẩm vào hệ thống Để thực hiện điều này, em sẽ cài đặt các tham số cần thiết như thương hiệu, màu sắc và tỷ số quy đổi tiền hiện tại, vì dữ liệu mẫu không sử dụng tiền VND.

Sau đó em sẽ xây dựng các function để tiến hành extract được dữ liệu từ data mẫu

Sau khi trích xuất dữ liệu, tôi sẽ tạo file JSON để thêm sản phẩm Một số trường dữ liệu có thể không có thông tin, vì vậy tôi sẽ tiến hành giả lập dữ liệu cho những trường này.

68 Tiếp đến em sẽ sử dụn API thêm sản phẩm đã có ở hệ thống hiện tại để tiến hành thêm đồng loạt các sản phẩm vào hệ thống

Sau khi hoàn tất quy trình, hệ thống của chúng tôi đã thu thập dữ liệu từ hơn 1000 sản phẩm điện thoại thông minh Đây là nguồn dữ liệu quan trọng, giúp hệ thống gợi ý của chúng tôi hoạt động hiệu quả dựa trên thông tin sản phẩm.

2.6.2 Giai đoạn xử lý dữ liệu Đầu tiên ta tiến hành lấy các thông tin cơ bản của sản phẩm từ database lên Sau đó ở giai đoạn xử lý, ta dùng một thư viện chuẩn hoá dữ liệu của python nltk để tiến hành chuẩn hoá dữ liệu Ở đây nhóm em đang sử dụng hai resource chính là wordnet và punkt

WordNet là một cơ sở dữ liệu từ vựng phong phú cho tiếng Anh, tổ chức các từ thành các tập hợp đồng nghĩa (synsets) Nó không chỉ cung cấp định nghĩa ngữ nghĩa ngắn gọn mà còn ghi nhận các mối quan hệ giữa các tập hợp này, giúp người dùng hiểu rõ hơn về cách sử dụng từ trong ngữ cảnh.

- Lemmatization: Sử dụng để chuẩn hóa các từ về dạng cơ bản (nguyên thể) Ví dụ, từ "running" sẽ được chuẩn hóa về "run"

Tìm kiếm từ đồng nghĩa là một phương pháp quan trọng giúp nâng cao hiệu suất của các ứng dụng xử lý ngôn ngữ tự nhiên Việc hiểu và nhận diện các từ có cùng ý nghĩa không chỉ cải thiện khả năng phân tích ngôn ngữ mà còn tối ưu hóa quá trình xử lý thông tin.

- Hyponyms/Hypernyms: Giúp xác định mối quan hệ phân cấp giữa các từ Ví dụ,

"car" là hyponym của "vehicle" và "vehicle" là hypernym của "car"

- Word Similarity: Đánh giá mức độ tương tự giữa các từ dựa trên khoảng cách ngữ nghĩa của chúng trong cơ sở dữ liệu

Punkt là một công cụ tokenizer tiên tiến, được đào tạo trên dữ liệu tiếng Anh, giúp tách văn bản thành các câu và từ một cách hiệu quả Thay vì sử dụng từ điển hay quy tắc cú pháp, Punkt dựa vào mô hình thống kê đã được huấn luyện trước để thực hiện nhiệm vụ này.

- Sentence Tokenization: Tách một đoạn văn bản thành các câu Ví dụ, từ đoạn văn

"This is a sentence This is another sentence." sẽ tách thành hai câu riêng biệt

- Word Tokenization: Tách một câu thành các từ Ví dụ, từ câu "This is a sentence." sẽ tách thành các từ ["This", "is", "a", "sentence", "."]

- Language Independence: Mặc dù được huấn luyện chủ yếu trên dữ liệu tiếng Anh, Punkt có thể được tùy chỉnh và áp dụng cho các ngôn ngữ khác

Additionally, we will utilize "stopwords_vietnamese.txt" to eliminate redundant words in properties that predominantly use Vietnamese, particularly in the description section.

Trong hệ thống, mô tả đang được lưu trữ dưới dạng HTML, vì vậy tôi sẽ sử dụng thư viện BeautifulSoup để loại bỏ các thẻ HTML khỏi dữ liệu.

Sau quá trình xử lý dữ liệu, data sẽ được ghi vào một file CSV để có thể read nhanh hơn thay vì truy vấn vào database

2.6.3 Xây dựng chức năng gợi ý

Tải Mô Hình Và Tokenizer BERT và tính độ tương đồng similarity Đầu tiên, chúng ta tải mô hình BERT và tokenizer từ thư viện transformers:

Chúng tôi đã triển khai việc viết các hàm để chuyển đổi câu thành vector dựa trên mô hình BERT, đồng thời thực hiện tính toán độ tương đồng giữa hai vector.

Chúng em đã phát triển một hàm để tính toán độ tương đồng giữa sản phẩm mà khách hàng chọn và tất cả các sản phẩm hiện có trong hệ thống Kết quả của quá trình tính toán sẽ được lưu trữ trong một mảng.

Cuối cùng là thực hiện lấy ra top N sản phẩm có độ trung bình tương đồng cao nhất, từ trên xuống

- Thời gian để có thể tính toán hết lượng sản phẩm hiện tại (hơn 1000 sản phẩm) là quá lớn

- Với cách làm như vậy, việc chuyển đổi vector được lặp đi lặp lại nhiều lần, tốn nhiều tài nguyên

Tối ưu hoá tốc độ gợi ý với FAISS(IndexFlatIP)

FAISS (Facebook AI Similarity Search) là thư viện mã nguồn mở do Facebook AI Research phát triển, cung cấp các giải pháp hiệu quả và linh hoạt cho việc tìm kiếm và phân tích sự tương đồng trong dữ liệu.

FAISS là công cụ hỗ trợ tìm kiếm các vector gần nhất (k-NN) trên không gian lớn, cho phép thực hiện cả tìm kiếm chính xác và tìm kiếm gần đúng (Approximate Nearest Neighbor Search) Được thiết kế để xử lý các tập dữ liệu lớn, FAISS tận dụng khả năng tính toán của CPU và GPU nhằm tăng tốc độ xử lý hiệu quả.

Cơ Sở Lý Thuyết FAISS IndexFlatIP

Tìm Kiếm K-Nearest Neighbors (k-NN Search) là một bài toán cơ bản trong học máy và xử lý dữ liệu, nhằm xác định k điểm dữ liệu gần nhất với một điểm truy vấn trong tập dữ liệu Bài toán này đóng vai trò quan trọng trong nhiều ứng dụng, bao gồm tìm kiếm thông tin, nhận diện hình ảnh và gợi ý sản phẩm.

APP QUẢN LÝ VẬN CHUYỂN

Mô tả Quy trình Vận chuyển

CHƯƠNG 3: APP QUẢN LÝ VẬN CHUYỂN 3.1 Giới thiệu Ứng dụng quản lý vận chuyển là một công cụ quan trọng trong việc điều hành và quản lý các hoạt động vận chuyển hàng hóa Nó giúp doanh nghiệp theo dõi, quản lý và tối ưu hóa quá trình giao nhận hàng hóa từ lúc đặt hàng đến khi hàng hóa được giao thành công hoặc hoàn trả Đây là một phần mềm không thể thiếu trong việc nâng cao hiệu quả và giảm thiểu rủi ro trong hoạt động vận chuyển

Sơ đồ flow trạng thái đơn hàng

Hình 20 Sơ đồ flow trạng thái đơn hàng

3.2 Mô tả Quy trình Vận chuyển

Quy trình vận chuyển hàng hóa trong ứng dụng được mô tả chi tiết qua các trạng thái và hoạt động sau:

Khi một đơn hàng được tạo ra, nó sẽ ở trạng thái "Ordered" (Đơn hàng đã được đặt)

3.2.2 Xác nhận đơn hàng (Confirmed)

Sau khi đơn hàng được xác nhận bởi quản lý, nó sẽ chuyển sang trạng thái

"Confirmed" (Đơn hàng đã được quản lý xác nhận)

Nếu đơn hàng bị hủy, nó sẽ chuyển sang trạng thái "Cancelled" (Đơn hàng đã bị hủy)

3.2.4 Yêu cầu giao hàng (Requesting)

Khi đơn hàng được yêu cầu giao cho shipper, nó sẽ chuyển sang trạng thái

"Requesting" (Đơn hàng shipper yêu cầu giao)

Khi đơn hàng được phân công cho shipper, nó sẽ chuyển sang trạng thái "Working" (Đơn hàng đã phân công cho shipper)

Khi shipper bắt đầu vận chuyển đơn hàng, trạng thái sẽ chuyển sang "Delivering" (Đơn hàng đang được vận chuyển)

3.2.7 Chuyển giao shipper khác (Change_Delivering)

Nếu đơn hàng cần chuyển giao cho shipper khác, trạng thái sẽ là

"Change_Delivering" (Đơn hàng đang được chuyển cho shipper khác)

3.2.7.1 Thất bại vận chuyển (Delivering_Fail)

Nếu quá trình vận chuyển gặp thất bại, đơn hàng sẽ chuyển sang trạng thái

"Delivering_Fail_1", "Delivering_Fail_2" hoặc "Delivering_Fail_3" tùy theo mức độ thất bại

Khi đơn hàng được giao thành công, trạng thái sẽ chuyển sang "Delivered" (Đơn hàng đã vận chuyển)

3.2.9 Yêu cầu đổi hàng (Request_Change)

Nếu khách hàng yêu cầu đổi hàng, đơn hàng sẽ chuyển sang trạng thái

"Request_Change" (Yêu cầu đổi hàng)

Trong quá trình đổi hàng, trạng thái sẽ là "Changing" (Đơn hàng đang đổi)

3.2.9.2 Đổi hàng thành công (Changed)

Khi quá trình đổi hàng hoàn tất, trạng thái sẽ chuyển sang "Changed" (Đơn hàng đổi thành công)

3.2.10 Yêu cầu trả hàng (Request_Return)

Nếu khách hàng yêu cầu trả hàng, đơn hàng sẽ chuyển sang trạng thái

"Request_Return" (Yêu cầu trả hàng)

Trong quá trình trả hàng, trạng thái sẽ là "Returning" (Đơn hàng đang trả lại)

3.2.10.2 Trả hàng thành công (Returned)

Khi quá trình trả hàng hoàn tất, trạng thái sẽ chuyển sang "Returned" (Đơn hàng trả lại shop thành công)

3.2.11 Yêu cầu đổi và trả hàng (Request_Change_And_Return)

Nếu khách hàng yêu cầu đổi và trả hàng cùng lúc, trạng thái sẽ là

"Request_Change_And_Return" (Yêu cầu trả và đổi hàng)

3.2.11.1 Đang đổi và trả hàng (Changing_And_Returning)

Trong quá trình đổi và trả hàng, trạng thái sẽ là "Changing_And_Returning" (Đang đổi và trả hàng)

3.2.11.2 Đổi và trả hàng thành công (Changed_And_Returned)

Khi quá trình đổi và trả hàng hoàn tất, trạng thái sẽ chuyển sang

"Changed_And_Returned" (Đã đổi và trả hàng thành công)

3.2.12 Đơn hàng nhận thành công (Received)

Khi khách hàng nhận được hàng, trạng thái sẽ là "Received" (Đơn hàng đã được nhận)

3.2.13 Đơn hàng thành công (Success)

Khi toàn bộ quy trình hoàn tất mà không có vấn đề gì, đơn hàng sẽ được đánh dấu là

"Success" (Đơn hàng thành công)

3.2.14 Đơn hàng thất bại (Failed)

Nếu bất kỳ phần nào của quy trình thất bại, đơn hàng sẽ được đánh dấu là "Failed" (Đơn hàng thất bại).

Kết luận

Ứng dụng quản lý vận chuyển mang đến hệ thống theo dõi và quản lý toàn diện, giúp tối ưu hóa quá trình vận chuyển Sử dụng ứng dụng này, doanh nghiệp có thể nâng cao hiệu quả hoạt động, giảm rủi ro và cải thiện trải nghiệm khách hàng.

LẬP KẾ HOẠCH KIỂM THỬ

Lịch trình kiểm thử

Trong quá trình kiểm thử, các công việc quan trọng được thực hiện bao gồm: Lập kế hoạch kiểm thử với tài liệu Test Plan trong 4 ngày từ 07/11/2023 đến 10/11/2023; Xem lại các tài liệu Test Plan trong 2 ngày từ 11/11/2023 đến 12/11/2023; Thiết kế các testcase với tài liệu Testcase trong 2 ngày từ 14/11/2023 đến 15/11/2023; và cuối cùng, Viết các testcase trong 1 ngày vào 16/11/2023.

Thực thi các testcase và viết bugreports

Tài liệu Testcase, Tài liệu bugreports 2 ngày 17/11/2023 18/11/2023

Ghi nhận và đánh giá kết quả kiểm thử Tài liệu Testcase 1 ngày 19/11/2023 19/11/2023

Chọn mã nguồn kiểm thử hộp trắng

Tài liệu mã nguồn hộp trắng 1 ngày 21/11/2023 21/11/2023

Thiết kế các sơ đồ

Tài liệu sơ đồ luồng điều khiển và luồng dữ liệu

Kiểm thử luồng dữ liệu từng biến

Tài liệu luồng dữ liệu cho từng biến 2 ngày 24/11/2023 25/11/2023

Ghi nhận và đánh giá kiểm thử hộp trắng

Tài liệu kiểm thử hộp trắng 1 ngày 26/11/2023 26/11/2023

Ghi nhận và đánh giá kết quả kiểm thử của đồ án

Tài liệu Testcase, Tài liệu kiểm thử hộp trắng, Tài liệu bugreports

Mục tiêu kiểm thử

- Xác định thông tin cơ bản về dự án và các thành phần chức năng được kiểm thử và không được kiểm thử

- Liệt kê những yêu cầu cho việc kiểm thử

- Những chiến lược kiểm thử nên được sử dụng

- Ước lượng những yêu cầu về tài nguyên và chi phí cho việc kiểm thử

- Những tài liệu được lập sau khi hoàn thành việc kiểm thử

4.2.2 Những người sử dụng tài liệu này

Tài liệu này được sử dụng cho Test Manager, Test Designer và Tester.

Những yêu cầu về tài nguyên

Các thiết bị ngoại vi có kết nối mạng và các công cụ trình duyệt

Tên phần mềm Phiên bản Loại

Google Chrome ≥ 40.0 Trình duyệt web

Microsoft Edge ≥ 88.0 Trình duyệt web

Hoạt động Công cụ Nhà cung cấp Phiên bản

Quản lý Test Case Microsoft

Thiết bị ngoại vi có kết nối mạng Internet để có thể truy cập vào trang web thương mại điện tử https://tlcn-frontend.vercel.app/ bằng trình duyệt.

Chiến lược kiểm thử

Liệt kê tất cả các vấn đề liên quan phát sinh trong quá trình thực thi kiểm thử.

Điều kiện chấp nhận

Passed tất cả các testcases đã được định nghĩa

Hệ thống chạy ổn định trên các trình duyệt web khác nhau ( Firefox, Microsoft Edge và Google Chrome phiên bản mới nhất).

Defect Tracking

Mức độ nghiêm trọng Đặc tả lỗi

- Không thể đăng ký tài khoản

- Không thể xem được trang chủ

- Không xem được thông tin chi tiết sản phẩm

- Không hiển thị thông tin người dùng

- Không thể thêm danh mục

- Không thể thêm thương hiệu

- Không thể thêm sản phẩm

- Không thể thay đổi thông tin người dùng

- Không thể đưa sản phẩm vào giỏ hàng

- Không thể tiến hành thanh toán

- Sai thông tin thanh toán

- Hiển thị sai thông tin hoạt động của người dùng

- Hiển thị sai thông tin sản phẩm

- Hiển thị không đầy đủ thông tin người dùng

- Sai số lượng sản phẩm khi đưa vào giỏ hàng

- Sai thuộc tính sản phẩm trong giỏ hàng

- Sai thông tin giỏ hàng khi thanh toán

- Sai thông tin sản phẩm khi thực hiện thêm

- Sai thông tin danh mục khi thực hiện thêm

- Sai thông tin thương hiệu khi thêm Low

- Các chức năng chạy không ổn định

- Tiến trình xử lí chậm hơn mong đợi

- Các lỗi giao diện ít ảnh hưởng đến người dùng

4.6.2 Quy trình xử lí lỗi

Ghi nhận lại các lỗi được tìm thấy trong quá trình kiểm thử

Viết báo cáo lỗi tìm thấy để developer sửa lỗi

TRIỂN KHAI CHƯƠNG TRÌNH

Triển khai website

UC: Quản lý người dùng

Quản lý thông tin của người dùng cũng như cho phép thêm xem sửa xoá người dùng

Hình 21 Trang quản lý người dùng

UC: Quản lý sản phẩm

Quản lý thông tin của sản phẩm cũng như cho phép thêm xem sửa xoá sản phẩm

Hình 22 Trang quản lý sản phẩm

UC: Quản lý đơn hàng

Giao diện quản lý đơn hàng của admin, cho phép xem chi tiết sản phẩm của người dùng đã đặt, hoặc xác nhận trạng thái cho đơn hàng

Hình 23 Trang quản lý đơn

UC: Đăng ký, đăng nhập, quên mật khẩu

Cho phép người dùng đăng ký tài khoản, đăng nhập và cấp lại mật khẩu khi bị quên

Hình 24 Trang quên mật khẩu

Hình 25 Trang người dùng

UC: Xem danh sách sản phẩm

Hình 26 Trang xem danh sách sp

Hình 27 Lọc sản phẩm

UC: Xem chi tiết sản phẩm

Hình 28 Trang chi tiết sản phẩm

Cho phép người dùng chọn sản phẩm muốn thanh toán, hoặc thêm giảm số lượng sản phẩm trước khi thanh toán

Hình 29 Trang giỏ hàng

Người dùng có thể thực hiện thanh toán cho sản phẩm đã chọn và thêm vào giỏ hàng bằng cách điền các thông tin cần thiết và chọn phương thức thanh toán phù hợp.

Hình 30 Trang thanh toán

Người dùng chọn phương thức thanh toán bằng VNPay

UC: Xem lịch sử và đánh giá đơn hàng

Hình 31 Trang lịch sử đơn hàng

Triển khai app

Hình 32 Màn hình shipper

UC: đăng nhập, đăng ký

Hình 33 Màn hình shipper đăng ký

UC: Quản lý thông tin cá nhân

Cho phép shipper hoặc admin có thể xem và chỉnh sửa thông tin cá nhân

Hình 34 Màn hình thông tin shipper

UC: Quản lý đơn hàng

Quản lý các trạng thái của đơn hàng

Hình 35 Màn hình quản lý đơn hàng

Hình 36 Màn hình lọc đơn hàng

Hình 37 Màn hình chi tiết đơn hàng

Hình 38 Màn hình xác nhận đơn hàng

Hình 39 Màn hình xem bảng đồ

Giao diện thống kê của shipper và admin, cho phép xem thống kê doanh thu, đơn hàng đã đặt của người dùng đã đặt

Hình 40 Màn hình thống kê

ƯU ĐIỂM, NHƯỢC ĐIỂM VÀ HƯỚNG PHÁT TRIỄN

Ưu điểm

Quá trình làm dự án:

Tiếp cận công nghệ mới thông qua việc nghiên cứu các hệ thống gợi ý và quy trình vận chuyển sản phẩm thực tế giúp chúng tôi tích lũy kiến thức và kinh nghiệm quý giá cho tương lai.

- Thực hành và nâng cao các kỹ năng lập trình của mình

Làm việc nhóm là yếu tố quan trọng trong phát triển ứng dụng, yêu cầu sự phối hợp chặt chẽ giữa các thành viên Quá trình này không chỉ giúp hoàn thiện sản phẩm mà còn rèn luyện kỹ năng làm việc nhóm cho từng cá nhân.

- Học hỏi lẫn nhau Quá trình phát triển ứng dụng là một cơ hội để chúng em học hỏi từ các thành viên trong nhóm

- Ứng dụng có tính năng đầy đủ, hoàn thảnh 100% các mục tiêu, chức năng đề ra

- Hệ thống gợi ý đề xuất được những sản phẩm góp phần làm tăng trãi nghiệm mua hàng cho người dùng

Việc tích hợp quy trình vận chuyển và ứng dụng shipper cho phép đội ngũ quản lý theo dõi và giao hàng dựa trên nguồn lực của cửa hàng, loại bỏ sự phụ thuộc vào các đơn vị vận chuyển bên ngoài.

Ứng dụng của chúng tôi được thiết kế với khả năng mở rộng cao, nhờ vào việc sử dụng các công nghệ linh hoạt như ReactJS và Spring Boot Điều này cho phép chúng tôi dễ dàng nâng cấp và mở rộng ứng dụng để đáp ứng nhu cầu ngày càng đa dạng của người dùng trong tương lai.

Nhược điểm

Mặc dù các chức năng đã được hoàn thiện, nhưng khi xem xét lại, các tính năng vẫn còn khá đơn giản và chưa thực sự khả thi trong thực tế.

- Trang web đang chưa có một phần quan trọng không thiếu của một hệ thống bán hàng của doanh nghiệp là hệ thống quản lý nhân sự

- Ngoài ra, trang web cũng cần phải nâng cao hệ thống gợi ý để góp phần làm cho quá trình mua hàng của người dùng được tốt hơn

- Dù đã được kiểm tra kỹ lưỡng, vẫn có thể có lỗi tồn tại trong ứng dụng.

Hướng phát triễn

Phần gợi ý sản phẩm hiện tại được xây dựng dựa trên mô hình Content-based filtering, nghĩa là hoàn toàn dựa vào nội dung và thông tin chi tiết của sản phẩm Trong tương lai, khi trang web có đủ người dùng và nhiều đánh giá sản phẩm hơn, cần nghiên cứu và áp dụng thêm các hệ thống gợi ý khác để nâng cao trải nghiệm người dùng.

Hệ thống vận chuyển sản phẩm hiện tại đã tương đối đầy đủ, nhưng vẫn cần được chi tiết hóa hơn để phù hợp với thực tế Đây là một hướng phát triển mà nhóm chúng tôi sẽ tập trung vào trong tương lai Bên cạnh đó, việc quản lý đội ngũ shipper cũng đòi hỏi nghiên cứu và xây dựng một hệ thống tìm đường đi ngắn nhất để tối ưu hóa quá trình giao hàng, điều này là rất quan trọng để nâng cao hiệu quả hoạt động.

Với thời gian và nguồn lực hạn chế, chúng tôi chưa thể phát triển phần quản lý nhân sự cho trang web Tuy nhiên, việc xây dựng hệ thống quản lý lương cho đội ngũ nhân viên bán hàng và shipper là rất quan trọng đối với sự phát triển của doanh nghiệp.

Ngày đăng: 19/11/2024, 08:46

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5]. Ant Design - a UI Design Language and React UI Library.” Ant.design, 2019, ant.design/. https://ant.design/ Sách, tạp chí
Tiêu đề: Ant.design
[6]. MUI. “MUI: The React Component Library You Always Wanted.” Mui.com, mui.com/. https://mui.com/ Sách, tạp chí
Tiêu đề: MUI: The React Component Library You Always Wanted.” "Mui.com
[7]. tailwindcss. “Tailwind CSS - Rapidly Build Modern Websites without Ever Leaving Your HTML.” Tailwindcss.com, 2023, tailwindcss.com/.https://tailwindcss.com/ Sách, tạp chí
Tiêu đề: Tailwind CSS - Rapidly Build Modern Websites without Ever Leaving Your HTML.” "Tailwindcss.com
[1]. Getting Started. (2022). Truy cập September 20, 2023, from Spring.io website: https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html Link
[2]. baeldung. (2017, January 15). Guide to Spring Email | Baeldung. Truy cập October 10, 2023, from Baeldung website: https://www.baeldung.com/spring-email Link
[3]. Dockerize a Spring Boot app in 3 minutes. (2020). Truy cập October 20, 2023, from Docker cloud hosting. Cheap, simple and fast to deploy and manage website: https://dockerize.io/guides/docker-spring-boot-guide Link
[4]. Spring Boot Scheduling. (2022, March 22). Truy cập December 2, 2023, from GeeksforGeeks website: https://www.geeksforgeeks.org/spring-boot-scheduling/ Link

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w