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

đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm

84 13 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

Định dạng
Số trang 84
Dung lượng 2,97 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI (9)
    • 1.1. Lý do chọn đề tài (9)
    • 1.2. Mục tiêu của đề tài (10)
    • 1.3. Giới hạn và phạm vi của đề tài (10)
    • 1.4. Kết quả dự kiến đạt được (10)
  • CHƯƠNG 2: KIẾN THỨC NỀN TẢNG (11)
    • 2.1. Kiến thức về Hamming Distance (11)
      • 2.1.1. Giới thiệu về thuật toán Hamming Distance (11)
      • 2.1.2. Hamming Distance trong Laravel (14)
    • 2.2. Ngôn ngữ lập trình PHP và Framework Laravel (15)
      • 2.2.1. Ngôn ngữ PHP (15)
      • 2.2.2. Framework Laravel (16)
    • 2.3. Mô hình MVC (19)
    • 2.4. Hệ quản trị cơ sở dữ liệu MySQL (20)
  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (21)
    • 3.1. Phân tích hệ thống (21)
      • 3.1.1. Use Case hệ thống (21)
      • 3.1.2. Biểu đồ hoạt động (44)
      • 3.1.3. Biểu đồ tuần tự (58)
    • 3.2. Thiết kế về cơ sở dữ liệu (68)
      • 3.2.1. Biểu đồ lớp (68)
      • 3.2.2. Xác định các thực thể (69)
  • CHƯƠNG 4: GIAO DIỆN PHẦN MỀM (75)
    • 4.1. Giao diện quản trị (75)
      • 4.1.1. Giao diện đăng nhập (75)
      • 4.1.2. Giao diện quản lý danh mục sản phẩm (75)
      • 4.1.3. Giao diện quản lý sản phẩm (76)
      • 4.1.4. Giao diện thêm sản phẩm (76)
      • 4.1.5. Giao diện cập nhật sản phẩm (77)
      • 4.1.6. Giao diện quản lý đơn hàng (77)
      • 4.1.7. Giao diện quản lý khách hàng (78)
      • 4.1.8. Giao diện quản lý bài viết (78)
    • 4.2. Giao diện người dùng (79)
      • 4.2.1. Giao diện đăng nhập (79)
      • 4.2.2. Giao diện đăng ký (79)
      • 4.2.3. Giao diện trang chủ (80)
      • 4.2.4. Giao diện xem chi tiết sản phẩm (80)
      • 4.2.5. Giao diện giỏ hàng (81)
      • 4.2.6. Giao diện đặt hàng (81)
      • 4.2.7. Giao diện xem chi tiết đơn hàng (82)
      • 4.2.8. Giao diện đánh giá sản phẩm (82)
  • CHƯƠNG 5: KẾT LUẬN (83)
    • 5.1. Kết quả đạt được (83)
    • 5.2. Hạn chế tồn tại (83)
    • 5.3. Hướng phát triển (83)
  • TÀI LIỆU THAM KHẢO (84)

Nội dung

• Tìm hiểu và vận dụng thuật toán Hamming Distance để gợi ý, lựa chọn các sản phẩm theo nhu cầu của khách hàng • Khảo sát thực trạng quản lý bán hàng của các cửa hàng hiện nay • Phân

GIỚI THIỆU ĐỀ TÀI

Lý do chọn đề tài

Một trong những lý do quan trọng nhất là xu hướng ngày càng gia tăng của thị trường thương mại điện tử Với sự phát triển mạnh mẽ của công nghệ, người tiêu dùng ngày càng chuyển sang mua sắm trực tuyến để tiết kiệm thời gian và có trải nghiệm mua sắm thuận tiện hơn Do đó, xây dựng một website bán hàng đáp ứng được nhu cầu ngày càng cao của khách hàng là một ưu tiên quan trọng

Trong bối cảnh này, việc áp dụng thuật toán Hamming distance để gợi ý sản phẩm trở nên hết sức quan trọng và có ý nghĩa Thuật toán này, ban đầu được phát triển trong lĩnh vực toán học và khoa học máy tính, nay được chú ý vì khả năng tìm kiếm dựa trên đặc tính tương đồng Việc áp dụng Hamming distance vào hệ thống gợi ý sản phẩm giúp tối ưu hóa trải nghiệm người dùng bằng cách đề xuất những sản phẩm có đặc điểm tương tự với những sản phẩm mà khách hàng quan tâm

Bên cạnh đó, sự cạnh tranh cao trong thị trường thương mại điện tử đặt ra thách thức về việc phải cung cấp trải nghiệm mua sắm cá nhân hóa và khác biệt Việc sử dụng Hamming distance không chỉ là một cách tiếp cận tiên tiến mà còn mang lại lợi ích lớn về khả năng tùy chỉnh và hiệu suất gợi ý

Cuối cùng, dự án này không chỉ là một cơ hội để áp dụng kiến thức chuyên sâu về lập trình và thuật toán mà còn mang lại giá trị thực tế cao, cung cấp một hệ thống mua sắm trực tuyến hiện đại và thông minh Sự kết hợp giữa xây dựng website bán hàng và áp dụng thuật toán Hamming distance hứa hẹn mang lại sự đổi mới và nâng cao chất lượng trong lĩnh vực thương mại điện tử ngày nay

Tóm lại, em chọn đề tài "Xây dựng website bán hàng và áp dụng thuật toán Hamming distance để gợi ý sản phẩm" ở đây là xây dựng website bán mỹ phẩm không chỉ mang lại nhiều lợi ích thực tế trong lĩnh vực quản lý bán hàng và tìm kiếm sản phẩm mà còn mở ra cơ hội để em có thể học hỏi và sáng tạo

Mục tiêu của đề tài

• Trình bày được các vấn đề liên quan đến ngôn ngữ PHP, cơ sở dữ liệu MySQL, mô hình MVC

• Tìm hiểu và vận dụng thuật toán Hamming Distance để gợi ý, lựa chọn các sản phẩm theo nhu cầu của khách hàng

• Khảo sát thực trạng quản lý bán hàng của các cửa hàng hiện nay

• Phân tích hệ thống chương trình bao gồm các giao diện, các chức năng nhằm đáp ứng nhu cầu người dùng

• Triển khai và cài đặt chương trình

Giới hạn và phạm vi của đề tài

• Xây dựng chương trình dựa vào ngôn ngữ lập trình PHP với Framework Laravel và cơ sở dữ liệu MySQL

• Chương trình tập chung chức năng nghiệp vụ từ khảo sát thực trạng

Kết quả dự kiến đạt được

• Tìm hiểu nhu cầu, nghiệp vụ của quản trị

• Hiểu về ngôn ngữ lập trình PHP và áp dụng cho xây dựng website

• Hoàn thành website bán hàng áp dụng thuật toán Hamming Distance để gợi ý với các tính năng như:

• Admin: thực hiện các chức năng như quản trị hệ thống, quản lý người dùng, quản lý sản phẩm, quản lý danh mục, quản lý kho, quản lý đơn hàng

• Nhân viên: có thể thực hiện các chức năng như cập nhật thông tin cá nhân, đăng ký, đăng nhập, và thực hiện một số chức năng theo dõi và cập nhật kho

• Hoàn thành báo cáo chi tiết đồ án tốt nghiệp

KIẾN THỨC NỀN TẢNG

Kiến thức về Hamming Distance

2.1.1 Giới thiệu về thuật toán Hamming Distance

Trong những năm của thập niên kỷ 1940, Hamming làm việc tại Bell Labs trên máy tính Bell Model V, một máy điện cơ (electromechanical) dùng rơ-le (relay- based), với tốc độ rất chậm, mấy giây đồng hồ một chu kỳ máy Nhập liệu được cho vào máy bằng những cái thẻ đục lỗ (punch cards), và hầu như máy luôn luôn gây lỗi trong khi đọc Trong những ngày làm việc trong tuần, những mã đặc biệt được dùng để tìm ra lỗi và mỗi khi tìm được, nó nhấp nháy đèn báo hiệu, báo cho người điều khiển biết để họ sửa, điều chỉnh máy lại Trong thời gian ngoài giờ làm việc hoặc trong những ngày cuối tuần, khi người điều khiển máy không có mặt, mỗi khi có lỗi xảy ra, máy tính tự động bỏ qua chương trình đang chạy và chuyển sang công việc khác

Hamming thường làm việc trong những ngày cuối tuần và ông càng ngày càng trở nên bực tức mỗi khi ông phải khởi động lại các chương trình ứng dụng từ đầu, do chất lượng kém, không đáng tin cậy (unreliability) của bộ máy đọc các thẻ đục lỗ Mấy năm tiếp theo đó, ông dồn tâm lực vào việc xây dựng hằng loạt các thuật toán có hiệu quả cao để giải quyết vấn đề sửa lỗi Năm 1950, ông đã công bố một phương pháp mà hiện nay được biết là Mã Hamming Một số chương trình ứng dụng hiện thời vẫn còn sử dụng mã này của ông

 Hamming Distance là cái tên được đặt theo tên của Richard Hamming

Hamming Distance là thước đo để so sánh hai chuỗi dữ liệu nhị phân Khi so sánh hai chuỗi nhị phân có độ dài bằng nhau, khoảng cách Hamming là số vị trí bit trong đó hai bit khác nhau

❖ Ví dụ về thuật toán:

Giả sử có hai chuỗi bit:

• Tại vị trí 1: Bit của A là 0, Bit của B là 0 (giống nhau)

• Tại vị trí 2: Bit của A là 1, Bit của B là 0 (khác nhau)

• Tại vị trí 3: Bit của A là 1, Bit của B là 1 (giống nhau)

• Tại vị trí 4: Bit của A là 1, Bit của B là 1 (giống nhau)

• Tại vị trí 5: Bit của A là 1, Bit của B là 0 (khác nhau)

 Số bit khác nhau là 2, kết luận Hamming Distance giữa chuỗi A và B là 2

❖ Mục đích của Hamming Distance:

Hamming Distance được sử dụng trong kỹ thuật viễn thông để tính số lượng các bit trong một từ nhị phân (binary word) bị đổi ngược, như một hình thức để ước tính số lỗi xảy ra trong quá trình truyền thông, và vì thế, đôi khi, nó còn được gọi là khoảng cách tín hiệu (signal distance) Việc phân tích trọng số Hamming của các bit còn được sử dụng trong một số ngành, bao gồm lý thuyết tin học, lý thuyết mã hóa, và mật mã học

Tuy vậy, khi so sánh các dãy ký tự có chiều dài khác nhau, hay các dãy ký tự có xu hướng không chỉ bị thay thế không thôi, mà còn bị ảnh hưởng bởi dữ liệu bị lồng thêm vào, hoặc bị xóa đi, phương pháp đo lường phức tạp hơn, như khoảng cách Levenshtein (Levenshtein distance) là phương pháp có tác dụng và thích hợp

❖ Kiểm soát lỗi hiệu quả với Hamming Distance:

• Hamming Distance trong kiểm soát lỗi:

Các khái niệm trung tâm trong mã hóa để kiểm soát lỗi là ý tưởng về Hamming Distance Hamming Distance giữa hai từ (có cùng kích thước) là số lượng khác biệt

5 giữa các bit tương ứng Chúng ta biểu thị khoảng cách Hamming giữa hai từ x và y là d(x, y)

Hamming Distance có thể dễ dàng tìm được nếu chúng ta áp dụng phép toán XOR trên hai từ và đếm số 1 trong kết quả Lưu ý khoảng cách Hamming là giá trị lớn hơn 0 Khoảng cách Hamming d(000, 011) là 2 vì 000 ⊕ 011 là 011 (hai số 1) Khoảng cách Hamming d(10101, 11110) là 3 vì 10101 ⊕ 11110 là 01011 (ba số 1)

Hamming Distance tối thiểu là khoảng cách Hamming nhỏ nhất giữa tất cả các cặp có thể Chúng tôi sử dụng "dmin" để xác định khoảng cách Hamming tối thiểu trong sơ đồ mã hóa Để tìm giá trị này, chúng tôi tìm khoảng cách Hamming giữa tất cả các từ và chọn giá trị nhỏ nhất

• Khoảng cách và lỗi Hamming:

Khi một từ mã bị hỏng trong quá trình truyền, khoảng cách Hamming giữa các từ mã được gửi và nhận là số bit bị ảnh hưởng bởi lỗi Nói cách khác, khoảng cách Hamming giữa từ mã nhận được và từ mã gửi đi là số bit bị hỏng trong quá trình truyền

Ví dụ: nếu từ mã 00000 được gửi và 01101 được nhận thì có 3 bit bị lỗi và khoảng cách Hamming giữa hai bit là d(00000, 01101) =3

• Khoảng cách tối thiểu để phát hiện lỗi: Để tìm khoảng cách Hamming tối thiểu trong một mã nếu chúng ta muốn có thể phát hiện tối đa S lỗi Nếu S lỗi xảy ra trong quá trình truyền, khoảng cách Hamming giữa từ mã đã gửi và từ mã nhận được là S Nếu mã phát hiện tối đa S lỗi, khoảng cách tối thiểu giữa các mã hợp lệ phải là s + 1, sao cho mã nhận được từ mã không khớp với từ mã hợp lệ

• Khoảng cách tối thiểu để sửa lỗi:

Việc sửa lỗi phức tạp hơn việc phát hiện lỗi và cần có một quyết định Khi từ mã nhận được không phải là từ mã hợp lệ, người nhận cần quyết

6 định từ mã hợp lệ nào thực sự được gửi Quyết định này dựa trên khái niệm lãnh thổ, một khu vực độc quyền bao quanh từ mã Mỗi từ mã hợp lệ có lãnh thổ riêng Sử dụng phương pháp hình học để xác định từng lãnh thổ Chúng ta giả định rằng mỗi từ mã hợp lệ có một lãnh thổ hình tròn có bán kính t và từ mã hợp lệ nằm ở trung tâm

Ví dụ: giả sử một từ mã x bị hỏng t bit hoặc ít hơn Khi đó từ mã bị hỏng này nằm ở bên trong hoặc trên chu vi của vòng tròn này Nếu người nhận nhận được một từ mã thuộc lãnh thổ này, nó sẽ quyết định rằng từ mã ban đầu là từ mã ở giữa Lưu ý rằng chúng tôi giả định rằng chỉ có tối đa t lỗi xảy ra; nếu không thì quyết định đó là sai Hình dưới đây cho thấy cách giải thích hình học này Một số văn bản sử dụng hình cầu để hiển thị khoảng cách giữa tất cả các mã khối hợp lệ

Hình 2.1 Ví dụ trong Hamming Distance 2.1.2 Hamming Distance trong Laravel

❖ Hàm Hamming Distance trong PHP gmp_hamdist(GMP|int|string $num1, GMP|int|string $num2): int

• $num1, $num2: thuộc kiểu dữ liệu: đối tượng GMP (GMP – GNU

Multiple Precision object), số nguyên (Int), chuỗi số (Numeric String)

• Kết quả trả về Hamming Distance giữa 2 phần tử $num1 và $num2 (là một số nguyên không âm)

❖ Tại sao và lúc nào cần Hamming Distance trong dự án Laravel

Trong ngữ cảnh xây dựng website Laravel, việc sử dụng phân tích các chuỗi bit có thể được áp dụng trong một số tình huống:

• Quản lý quyền và phân quyền: Sử dụng các chuỗi bit để biểu diễn quyền và phân quyền người dùng Mỗi bit có thể đại diện cho một quyền cụ thể (ví dụ: quyền xem, quyền chỉnh sửa, quyền xóa, quyền tạo…)

• Xử lý dữ liệu nhị phân: Có thể sử dụng các chuỗi bit để biểu diễn trạng thái hoặc thuộc tính của một đối tượng

• Tùy chỉnh cấu hình hệ thống: Sử dụng chuỗi bit để tùy chọn cấu hình hệ thống, chẳng hạn như kích hoạt hay tắt tính năng Mỗi bit đại diện cho một tùy chọn cụ thể

Ngôn ngữ lập trình PHP và Framework Laravel

PHP(viết tắt là Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho các mục đích tổng quát Nó rất thích hợp với web và có thể nhúng vào trang HTML.

Do được tối ưu hóa cho các ứng dụng web, cú pháp giống C và Java và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP có rất nhiều các CMS mã nguồn mở như: WordPress, OpenCart… cùng với đó là các framework như: Laravel, CodeIgniter

PHP không phải là ngôn ngữ script phía server duy nhất có sẵn - vẫn còn nhiều ngôn ngữ khác nữa Tuy nhiên, nó lợi thế hơn các đối thủ cạnh tranh nếu chạy trang web WordPress WordPress được xây dựng dựa trên việc sử dụng PHP Vì vậy, sử dụng ngôn ngữ này giúp cải thiện đáng kể số lượng tùy chỉnh trên trang web, như có thể sử dụng nó để sửa đổi plugins hay theme có sẵn Ngoài ra, còn một số lý do khác khiến PHP là ngôn ngữ script tuyệt vời để sử dụng:

• Dễ học: Có thể học dễ dàng vì có tài liệu tuyệt vời về các chức năng ví dụ

• Được sử dụng rộng rãi, phổ biến: Nó được sử dụng để tạo ra các loại nền tảng như thương mại điện tử, blogs, phương tiện truyền thông xã

• Chi phí thấp: Nó là nguồn mở để có thể sử dụng miễn phí

• Cộng đồng lớn: Nếu gặp phải những khó khăn nào đó, sẽ không phải là điều lo lắng vì có rất nhiều blog PHP trên Internet

• Tích hợp với cơ sở dữ liệu: Ví dụ như MySQL, Oracle

Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập trình viên sử dụng thay vì phải tự thiết kế Với Framework, lập trình viên chỉ cần tìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình.

Hình 2.2 Một số loại framework

PHP Framework là một bộ mã nguồn mở được xây dựng, phát triển và đóng gói bởi các chuyên gia lập trình PHP, sử dụng ngôn ngữ PHP xây dựng các lớp nghiệp vụ chuyên biệt.

Laravel là một PHP framework mã nguồn mở miễn phí, phát triển bởi Taylor

Otwell và có mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc model- view-controller (MVC) Những tính năng nổi bật của Laravel làm cho Laravel Framework khác biệt so với các Web Framework khác:

Tính mô đun là khả năng một thành phần ứng dụng web có thể tách rời và kết hợp lại Có thể phân chia logic nghiệp vụ thành các mo-đun khác nhau, tất cả đều hoạt động cùng nhau để làm cho ứng dụng web hoạt động.

Sử dụng cấu trúc mô-đun có thể thiết kế và phát triển ứng dụng doanh nghiệp quy mô lớn một cách dễ dàng Laravel cung cấp các hướng dẫn rất đơn giản để tạo các mô-đun hoặc package trong Laravel.

Xác thực là một phần không thể thiếu của bất kỳ website hiện đại nào Viết các thực trong các Framework khác có thể mất rất nhiều thời gian Nhưng với Laravel thì ngược lại, chỉ cần chạy một lệnh đơn giản, đã có thể tạo một hệ thống xác thực đầy đủ chức năng.

Caching(bộ nhớ đệm) là một kỹ thuật để lưu trữ dữ liệu trong một vị trí lưu trữ tạm thời có thể lấy ra nhanh chóng khi cần, chủ yếu được sử dụng để làm tăng hiệu suất của website.

Laravel gần nhưng lưu tất cả dữ liệu từ View đến routes Điều này giúp Laravel giảm thời gian xử lý và tăng hiệu suất rất nhiều.

• Tính năng Routing: Định tuyến(Routing) trong Laravel rất dễ hiểu, có thể sử dụng để tạo một ứng dụng tĩnh dễ dàng Có thể nhóm các routes, đặt tên cho chúng, áp dụng các bộ lọc cho chúng và liên kết mô hình dữ liệu với chúng Các routes có thể sử dụng để tạo các URL thân thiện với công cụ tìm kiếm.

Restful Controllers của Laravel cho phép tách logic nghiệp vụ sau khi phục vụ các request GET hoặc POST Có thể tạo resource controller có thể được sử dụng để tạo CRUD đơn giản Sau đó, có thể liên kết resource controller để định tuyến phục vụ tất cả các routes CRUD tự động

Database Query Builder của Laravel cung cấp một cách thuận tiện để tạo các truy cấp cơ sở dữ liệu Nó đi kèm với vô số chức năng của trình trợ giúp có thể để lọc dữ liệu.

Có thể thực hiện các truy vấn phức tạp một cách dễ dàng bằng join trong Laravel Cú pháp Query Builder rất dễ hiểu và làm cho việc viết các truy vấn cơ sở dữ liệu trở nên nhẹ nhàng hơn rất nhiều.

• Tính năng bảo mật rất tốt:

Laravel cung cấp cách tạo các ứng dụng web an toàn Lưu trữ tất cả các mật khẩu dưới dạng hash, thay vì mật khẩu text đơn giản(sử dụng BCrytp để băm(hash) mật khẩu).

Mô hình MVC

MVC (Model-View-Controller) là mẫu kiến trúc phần mềm trên máy tính nhằm mục đích tạo lập giao diện cho người dùng Hệ thống MVC được chia thành ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng Ba thành phần ấy bao gồm:

• Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng

• Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…

• View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images…

Mô hình MVC có một số các ưu điểm như:

• Mô hình này quy hoạch các class/function vào các thành phần riêng biệt Controller – Model – View, việc đó làm quá trình phát triển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng chuyên biệt hóa đồng thời kiểm soát được luồng xử lý

• Trình tự xử lý rõ ràng

• Tạo mô hình chuẩn chỉnh, chuyên nghiệp cho dự án, giúp tiếp cận dễ dàng với những người có chuyên môn ngoài dự án

• Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản và dễ triển khai với các dự án nhỏ.

Hệ quản trị cơ sở dữ liệu MySQL

MySQL là hệ quản trị cơ sở dữ liệu sử dụng mã nguồn mở phổ biến nhất thế giới và được các chuyên gia lập trình rất ưa chuộng trong quá trình phát triển web, phát triển ứng dụng của mình Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet MySQL có một số đặc điểm:

• Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trị CSDL dạng server based, hệ gần giống với SQL server

• MySQL là phần mềm quản lý dữ liệu thông qua CSDL Và mỗi một CSDL đều có bảng quan hệ chứa dữ liệu riêng biệt

• MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có thể quản lý cùng lúc một hay nhiều CSDL khác nhau Và mỗi người dùng đều có 1 username và password để truy nhập và truy xuất đến CSDL

• MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh mẽ

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Phân tích hệ thống

• Các tác nhân của hệ thống

Hình 3.1 Các tác nhân của hệ thống

- NHANVIEN: Là nhân viên của hệ thống, có thể đăng nhập, và có các quyền quản lý danh mục sản phẩm, sản phẩm, đơn hàng

- QUANLY: Là người quản trị hệ thống, đăng nhập hệ thống với tất cả các quyền quản lý danh mục sản phẩm, quản lý sản phẩm, quản lý đơn hàng, quản lý tài khoản, quản lý kho, quản lý bài viết

-KHACHHANG: Là người mua hàng của cửa hàng, có thể thực hiện các chức năng đăng ký, đăng nhập, mua hàng, đánh giá sản phẩm,…

Hình 3.2 Use Case tổng quát

Hình 3.3 Use Case hệ thống

- Mô tả: Cho phép nhân viên và quản lý truy cập phần mềm

- Đầu vào: Người dùng nhập vào thông tin tên tài khoản và mật khẩu, sau đó chọn đăng nhập

- Thực hiện: Kiểm tra tên đăng nhập và mật khẩu có trùng khớp với thông tin trong cơ sở dữ liệu Kiểm tra quyền người dùng

- Đầu ra: Nếu không đúng thông tin thì thông báo tài khoản không hợp lệ Ngược lại, tùy theo quyền người dùng, hiển thị danh sách chức năng theo quyền người dùng trên hệ thống

- Mô tả: Cho phép người dùng thoát khỏi hệ thống

- Đầu vào: Người dùng chọn đăng xuất

- Thực hiện: Hủy lưu thông tin đăng nhập

- Đầu ra: Hiển thị trang chủ.

- Mô tả: Khách hàng truy cập website có thể đăng ký thành viên, xem các sản phẩm và chi tiết sản phẩm, tìm kiếm các sản phẩm mong muốn

- Đầu vào: Khi khách hàng truy cập, nhập các thông tin để tạo tài khoản và chọn đăng ký

- Thực hiện: Hệ thống kiểm tra các trường thông tin bắt buộc

- Đầu ra: Nếu thiếu trường thông tin bắt buộc thì yêu cầu khách hàng bổ sung, ngược lại lưu tài khoản khách hàng đã đăng ký và hiển thị giao diện đăng nhập

• Use Case của tác nhân KHACHHANG:

Hình 3.4 Use Case của tác nhân KHACHHANG

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

- Mô tả: Khách hàng muốn xem chi tiết một sản phẩm

- Đầu vào: UseCase sử dụng khi khách hàng chọn một sản phẩm

- Thực hiện: hệ thống lấy thông tin chi tiết của sản phẩm theo mã

- Đầu ra: Hiển thị form chi tiết sản phẩm

✓ Xem chi tiết bài viết:

- Mô tả: Khách hàng muốn xem chi tiết một bài viết

- Đầu vào: UseCase sử dụng khi khách hàng chọn một bài viết

- Thực hiện: hệ thống lấy thông tin chi tiết của bài viết theo mã

- Đầu ra: Hiển thị form chi tiết bài viết

✓ Thêm sản phẩm vào giỏ hàng:

- Mô tả: Các khách hàng muốn thêm sản phẩm vào giỏ hàng

- Đầu vào: UseCase sử dụng khi khách hàng chọn thêm một sản phẩm vào giỏ hàng

• Ca sử dụng bắt đầu khi khách hàng chọn thêm sản phẩm

• Hệ thống kiểm tra số lượng sản phẩm: Nếu còn hàng sẽ thêm sản phẩm vào giỏ hàng Ngược lại, hệ thống thông báo không đủ số lượng sản phẩm và hủy thao tác

- Đầu ra: Cập nhật giỏ hàng của khách hàng

✓ Cập nhật số lượng sản phẩm trong giỏ:

- Mô tả: Các khách hàng muốn cập nhật sản phẩm vào giỏ hàng

- Đầu vào: UseCase sử dụng khi khách hàng nhập tăng/giảm số lượng sản phẩm trong giỏ

• Ca sử dụng bắt đầu khi khách hàng nhập tăng/giảm số lượng sản phẩm trong giỏ hàng

• Hệ thống kiểm tra số lượng sản phẩm: Nếu còn hàng sẽ cập nhật số lượng sản phẩm vào giỏ hàng Ngược lại, hệ thống thông báo không đủ số lượng sản phẩm và hủy thao tác

- Đầu ra: Cập nhật giỏ hàng của khách hàng

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

- Mô tả: Các khách hàng muốn xóa sản phẩm khỏi giỏ hàng

- Đầu vào: UseCase sử dụng khi khách hàng chọn xóa sản phẩm trong giỏ hàng

- Thực hiện: Hệ thống xóa sản phẩm khỏi giỏ hàng

- Đầu ra: Cập nhật giỏ hàng của khách hàng

- Mô tả: Các khách hàng muốn đặt mua sản phẩm của cửa hàng

- Đầu vào: UseCase sử dụng khi khách hàng chọn đặt hàng

• Khách hàng chọn thanh toán các sản phẩm trong giỏ hàng

• Hệ thống hiển thị form thanh toán

• Khách hàng nhập các thông tin cần thiết, và chọn đặt hàng

• Hệ thống kiểm tra các trường thông tin: Nếu đầy đủ, thực hiện lưu thông tin đơn hàng và chi tiết giao dịch Ngược lại, yêu cầu khách hàng bổ sung thông tin

- Đầu ra: Lưu thông tin đơn hàng của khách hàng và trả ra giao diện chi tiết đơn hàng

✓ Xem chi tiết đơn hàng:

- Mô tả: Khách hàng muốn xem chi tiết một đơn hàng

- Đầu vào: UseCase sử dụng khi khách hàng chọn một đơn hàng

- Thực hiện: hệ thống lấy thông tin chi tiết của đơn hàng theo mã

- Đầu ra: Hiển thị form chi tiết đơn hàng

- Mô tả: Khách hàng đánh giá sản phẩm sau khi mua hàng

- Đầu vào: Khi khách hàng đăng nhập hệ thống thành công và chọn đánh giá sản phẩm

• Khách hàng chọn đơn hàng muốn đánh giá

• Khách hàng đánh giá sản phẩm có trong đơn hàng, và chọn lưu

• Hệ thống kiểm tra các trường dữ liệu: Nếu đầy đủ và đúng định dạng thì lưu đánh giá vào cơ sở dữ liệu và thông báo cập nhật đánh giá của khách hàng thành công Nếu không thì yêu cầu khách hàng bổ sung thông tin

- Đầu ra: Các đánh giá về sản phẩm được cập nhật vào cơ sở dữ liệu

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

Hình 3.5 Use Case Quản lý danh mục sản phẩm

- Mô tả: Quản lý và nhân viên thực hiện quản lý danh mục sản phẩm của hệ thống

- Đầu vào: Use Case sử dụng bắt đầu khi người dùng đăng nhập thành công hệ thống

• Người dùng truy cập vào hệ thống và chọn Quản lý danh mục sản phẩm

• Kiểm tra quyền truy cập

• Hệ thống lấy dữ liệu danh sách, hiển thị giao diện danh sách Danh mục sản phẩm

• Hệ thống hiển thị chức năng người dùng có thể thực hiện: thêm, sửa, xóa danh mục: o Nếu chọn “Thêm” thì sự kiện con “Thêm thông tin danh mục” được thực hiện o Nếu chọn “Sửa” thì sự kiện con “Sửa thông tin danh mục” được thực hiện o Nếu chọn “Xóa” thì sự kiện con “Xóa thông tin danh mục” được thực hiện

• Thêm thông tin danh mục: o Hệ thống hiển thị form thêm thông tin Danh mục o Người dùng nhập thông tin o Nhấn nút thêm thông tin: Nếu thêm mới thành công thì thực hiện bước tiếp theo Nếu sai thực hiện dòng sự kiện rẽ nhánh A1 o Hiển thị thông báo thêm thành công o Hệ thống lưu thông tin danh mục vào cơ sở dữ liệu

• Sửa thông tin danh mục: o Hệ thống hiển thị form sửa thông tin Danh mục o Người dùng nhập thông tin muốn sửa

21 o Nhấn nút sửa thông tin: Nếu cập nhật thành công thì thực hiện bước tiếp theo Nếu sai thực hiện dòng sự kiện rẽ nhánh A1 o Hiển thị thông báo cập nhật thành công o Hệ thống cập nhật thông tin danh mục vào cơ sở dữ liệu

• Xóa thông tin danh mục: o Người dùng chọn danh mục muốn xóa o Chọn xóa danh mục o Hệ thống kiểm tra ràng buộc: o Nếu thỏa mãn thực hiện xóa danh mục o Nếu không thông báo vi phạm ràng buộc o Hệ thống cập nhật danh mục nếu xóa thành công

- Ca sử dụng kết thúc

- Dòng sự kiện rẽ nhánh A1:

• Hệ thống thông báo việc nhập dữ liệu không hợp lệ

• Người dùng nhập lại thông tin

• Quay lại bước 3 của dòng sự kiện chính, hoặc hủy bỏ thao tác, khi đó ca sử dụng kết thúc

- Đầu ra: Các thông tin danh mục hợp lệ được cập nhật trong cơ sở dữ liệu, hiển thị các thông báo phù hợp

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

Hình 3.6 Use Case Quản lý sản phẩm

- Mô tả: Quản lý và nhân viên quản lý các sản phẩm còn lại trong kho

- Đầu vào: Use Case sử dụng bắt đầu khi người dùng đăng nhập thành công hệ thống

• Người dùng truy cập vào hệ thống và chọn Quản lý sản phẩm

• Kiểm tra quyền truy cập

• Hệ thống lấy dữ liệu danh sách, hiển thị giao diện danh sách Sản phẩm

• Hệ thống hiển thị chức năng người dùng có thể thực hiện: thêm, sửa, xóa, tìm kiếm sản phẩm: o Nếu chọn “Thêm” thì sự kiện con “Thêm thông tin sản phẩm” được thực hiện o Nếu chọn “Sửa” thì sự kiện con “Sửa thông tin sản phẩm” được thực hiện

23 o Nếu chọn “Xóa” thì sự kiện con “Xóa thông tin sản phẩm” được thực hiện o Nếu chọn “Tìm kiếm” thì sự kiện con “Tìm kiếm sản phẩm” được thực hiện

• Thêm thông tin sản phẩm: o Hệ thống hiển thị form thêm thông tin sản phẩm o Người dùng nhập thông tin o Nhấn nút thêm thông tin: Nếu thêm mới thành công thì thực hiện bước tiếp theo Nếu sai thực hiện dòng sự kiện rẽ nhánh A1 o Hiển thị thông báo thêm thành công o Hệ thống lưu thông tin sản phẩm vào cơ sở dữ liệu

• Sửa thông tin sản phẩm: o Hệ thống hiển thị form sửa thông tin sản phẩm o Người dùng nhập thông tin muốn sửa o Nhấn nút sửa thông tin: Nếu cập nhật thành công thì thực hiện bước tiếp theo Nếu sai thực hiện dòng sự kiện rẽ nhánh A1 o Hiển thị thông báo cập nhật thành công o Hệ thống cập nhật thông tin sản phẩm vào cơ sở dữ liệu

Thiết kế về cơ sở dữ liệu

3.2.2 Xác định các thực thể

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã bài viết Khóa chính, không được phép rỗng

2 name text Nội dung bài viết Không được phép rỗng

3 avatar varchar(255) Hình ảnh Không được phép rỗng

4 descriptio n varchar(255) Mô tả Được phép rỗng

5 menu_id bit Menu bài viết Không được phép rỗng

6 content text Nội dung bài viết

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 name varchar Tên menu Được phép rỗng

3 description varchar(255) Mô tả Được phép rỗng

4 avatar varchar Hình ảnh Được phép trống

5 status int Trạng thái Được phép trống

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 name varchar Tên danh mục Được phép rỗng

3 description varchar(255) Mô tả Được phép rỗng

4 avatar varchar Hình ảnh Được phép trống

5 status int Trạng thái Được phép trống

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 name varchar Tên quận huyện Được phép rỗng

3 province_id int Khoá ngoài t/tp Được phép rỗng

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 user_id int Mã quản lý Khóa ngoại, không được phép rỗng

3 discount int Giảm giá Không được phép rỗng

4 total_discount int Tổng giảm giá Không được phép rỗng

5 total_price int Tổng tiền Không được phép rỗng

6 note varchar Ghi chú Được phép trống

7 status int Trạng thái đơn hàng Không được phép rỗng

8 shipping_status int Trạng thái giao hàng Được phép trống

9 order_type int Hình thức thanh toán Không được phép rỗng

10 receiver_name varchar Người nhận Được phép trống

11 receiver_email varchar Email người nhận Được phép trống

12 receiver_phone varchar Phone người nhận Không được phép rỗng

13 receiver_address varchar Địa chỉ nhận Được phép trống

14 total_shipping_order int Tổng tiền ship Không được phép rỗng

16 district_id int Quận huyện Được phép trống

17 product_id int Mã sản phẩm Khóa ngoại, không được phép rỗng

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 name int Tên Được phép rỗng

3 description int Mô tả Được phép rỗng

4 avatar int Hình ảnh Được phép trống

5 status int Trạng thái Không được phép rỗng

6 category_id varchar Danh mục Khóa ngoại, không được phép rỗng

8 price int Giá Không được phép rỗng

9 number int Số lượng Không được phép rỗng

10 sale varchar Giảm giá Được phép trống

11 user_id varchar Người thêm

Khóa ngoại, không được phép rỗng

12 content varchar Nội dung Được phép trống

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 name varchar Tên quận huyện Được phép rỗng

3 code int Mã code Không được phép rỗng

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã slide Khóa chính, không được phép rỗng

2 name varchar(255) Tiêu đề Được phép rỗng

3 name varchar(255) Tên Được phép rỗng

4 link varchar(255) Link slide Được phép rỗng

5 avatar varchar(255) Hình ảnh Được phép rỗng

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã Khóa chính, không được phép rỗng

2 order_id int(10) Mã đơn hàng Khóa ngoại, không được phép rỗng

4 status int Trạng thái Được phép rỗng

5 user_id int Mã khách hàng

Khóa ngoại, không được phép rỗng

6 discount int Giảm giá Không được phép rỗng

7 price int Giá Không được phép rỗng

8 quantity int Số lượng Không được phép rỗng

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã thành viên

Khóa chính, không được phép rỗng

2 name varchar(255) Tên Được phép rỗng

3 description varchar(255) Mô tả Được phép rỗng

4 avatar varchar(255) Hình ảnh Được phép rỗng

5 password varchar Mật khẩu Không được phép rỗng

9 birthday date Ngày sinh Được phép trống

STT Tên Kiểu dữ liệu Mô tả Ràng buộc

1 id int(10) Mã thành viên Khóa chính, không được phép rỗng

2 product_id int Mã sản phẩm Khóa ngoại, không được phép rỗng

3 user_id int User đánh giá Khóa ngoại, không được phép rỗng

4 content_vote varchar(255) Nội dung đánh giá Được phép rỗng

5 number_vote int Số sao Không được phép rỗng

GIAO DIỆN PHẦN MỀM

Giao diện quản trị

Hình 4.1 Giao diện đăng nhập (quản trị) 4.1.2 Giao diện quản lý danh mục sản phẩm

Hình 4.2 Giao diện quản lý danh mục sản phẩm

4.1.3 Giao diện quản lý sản phẩm

Hình 4.3 Giao diện quản lý sản phẩm 4.1.4 Giao diện thêm sản phẩm

Hình 4.4 Giao diện thêm sản phẩm

4.1.5 Giao diện cập nhật sản phẩm

Hình 4.5 Giao diện cập nhật sản phẩm 4.1.6 Giao diện quản lý đơn hàng

Hình 4.6 Giao diện quản lý đơn hàng

4.1.7 Giao diện quản lý khách hàng

Hình 4.7 Giao diện quản lý khách hàng 4.1.8 Giao diện quản lý bài viết

Hình 4.8 Giao diện quản lý bài viết

Giao diện người dùng

Hình 4.9 Giao diện đăng nhập (người dùng) 4.2.2 Giao diện đăng ký

Hình 4.10 Giao diện đăng ký

Hình 4 11 Giao diện trang chủ 4.2.4 Giao diện xem chi tiết sản phẩm

Hình 4.12 Giao diện xem chi tiết sản phẩm

Hình 4.13 Giao diện giỏ hàng 4.2.6 Giao diện đặt hàng

Hình 4.14 Giao diện đặt hàng

4.2.7 Giao diện xem chi tiết đơn hàng

Hình 4.15 Giao diện xem chi tiết đơn hàng 4.2.8 Giao diện đánh giá sản phẩm

Hình 4.16 Giaodiện đánh giá sản phẩm

Ngày đăng: 15/05/2024, 09:29

HÌNH ẢNH LIÊN QUAN

Hình 3.2. Use Case tổng quát - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.2. Use Case tổng quát (Trang 22)
Hình 3.4. Use Case của tác nhân KHACHHANG - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.4. Use Case của tác nhân KHACHHANG (Trang 24)
Hình 3.5. Use Case Quản lý danh mục sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.5. Use Case Quản lý danh mục sản phẩm (Trang 27)
Hình 3.6. Use Case Quản lý sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.6. Use Case Quản lý sản phẩm (Trang 30)
Hình 3.7. Use Case Quản lý đơn hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.7. Use Case Quản lý đơn hàng (Trang 32)
Hình 3.11. Use Case Quản lý kho - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.11. Use Case Quản lý kho (Trang 41)
Hình 3.12. Biểu đồ hoạt động đăng nhập - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.12. Biểu đồ hoạt động đăng nhập (Trang 44)
Hình 3.13. Biểu đồ hoạt động đăng ký - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.13. Biểu đồ hoạt động đăng ký (Trang 45)
Hình 3.14. Biểu đồ hoạt động xem danh sách sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.14. Biểu đồ hoạt động xem danh sách sản phẩm (Trang 46)
Hình 3.15. Biểu đồ hoạt động thêm sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.15. Biểu đồ hoạt động thêm sản phẩm (Trang 47)
Hình 3.16. Biểu đồ hoạt động cập nhật sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.16. Biểu đồ hoạt động cập nhật sản phẩm (Trang 48)
Hình 3.18. Biểu đồ hoạt động gợi ý sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.18. Biểu đồ hoạt động gợi ý sản phẩm (Trang 50)
Hình 3.20. Biểu đồ hoạt động cập nhật sản phẩm vào giỏ hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.20. Biểu đồ hoạt động cập nhật sản phẩm vào giỏ hàng (Trang 52)
Hình 3.21. Biểu đồ hoạt động xóa sản phẩm trong giỏ hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.21. Biểu đồ hoạt động xóa sản phẩm trong giỏ hàng (Trang 53)
Hình 3.23. Biểu đồ hoạt động cập nhật khách hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.23. Biểu đồ hoạt động cập nhật khách hàng (Trang 55)
Hình 3 24. Biểu đồ hoạt động xóa khách hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3 24. Biểu đồ hoạt động xóa khách hàng (Trang 56)
Hình 3.25. Biểu đồ hoạt động cập nhật trạng thái đơn hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.25. Biểu đồ hoạt động cập nhật trạng thái đơn hàng (Trang 57)
Hình 3.26. Biểu đồ tuần tự đăng nhập - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.26. Biểu đồ tuần tự đăng nhập (Trang 58)
Hình 3.29. Biểu đồ tuần tự thêm sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.29. Biểu đồ tuần tự thêm sản phẩm (Trang 60)
Hình 3.30. Biểu đồ tuần tự cập nhật sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.30. Biểu đồ tuần tự cập nhật sản phẩm (Trang 61)
Hình 3.31. Biểu đồ tuần tự xóa sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.31. Biểu đồ tuần tự xóa sản phẩm (Trang 62)
Hình 3.32. Biểu đồ tuần tự tìm kiếm sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.32. Biểu đồ tuần tự tìm kiếm sản phẩm (Trang 63)
Hình 3.33. Biểu đồ tuần tự đặt hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.33. Biểu đồ tuần tự đặt hàng (Trang 64)
Hình 3.34. Biểu đồ tuần tự thêm khách hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.34. Biểu đồ tuần tự thêm khách hàng (Trang 65)
Hình 3.35. Biểu đồ tuần tự cập nhật khách hàng - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.35. Biểu đồ tuần tự cập nhật khách hàng (Trang 66)
Hình 3.37. Biểu đồ lớp - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 3.37. Biểu đồ lớp (Trang 68)
Hình 4 11. Giao diện trang chủ  4.2.4. Giao diện xem chi tiết sản phẩm - đồ án 2 xây dựng website bán hàng và áp dụng thuật toán hamming distance để gợi ý sản phẩm
Hình 4 11. Giao diện trang chủ 4.2.4. Giao diện xem chi tiết sản phẩm (Trang 80)

TỪ KHÓA LIÊN QUAN

w