TỐNG QUAN VỀ ĐỀ TÀI
LÍ DO CHỌN ĐỀ TÀI
Hiện nay, xã hội đang phát triển nhanh chóng, dẫn đến nhu cầu tiêu dùng ngày càng tăng, đặc biệt là trong mua sắm trực tuyến Theo khảo sát năm 2022 tại Việt Nam, 70% cư dân thành phố sử dụng dịch vụ thương mại điện tử, với ngành hàng thời trang là nổi bật nhất.
Nhóm quyết định chọn đề tài "Thiết kế và xây dựng hệ thống quản lý kinh doanh cho doanh nghiệp thời trang" để đáp ứng nhu cầu tìm kiếm và mua sắm sản phẩm thời trang qua internet một cách dễ dàng và tiện lợi Hệ thống này không chỉ giúp người dùng tiếp cận nhanh chóng các chính sách và thông tin của cửa hàng mà còn hướng tới mục tiêu mang lại trải nghiệm tốt nhất cho khách hàng.
Các doanh nghiệp và nhãn hàng có thể tận dụng nền tảng do nhóm cung cấp để quản lý cửa hàng hiệu quả, tiếp cận khách hàng với sản phẩm và chính sách phù hợp, từ đó tối ưu hóa trải nghiệm mua sắm, gia tăng doanh thu và nâng cao sự hài lòng của khách hàng.
ĐỐI TƯỢNG NGHIÊN CỨU
Khách hàng là người sử dụng hệ thống, có nhu cầu tìm hiểu về các sản phẩm của cửa hàng và thực hiện đặt hàng qua website.
- Quản trị viên: Là người quản trị hệ thống, có nhu cầu quản lý các thông tin về cửa hàng và khách hàng của hệ thống.
PHẠM VI NGHIÊN CỨU
Đề tài này nghiên cứu về thiết kế và xây dựng hệ thống quản lý kinh doanh cho doanh nghiệp thời trang, tập trung vào các doanh nghiệp, tổ chức và cá nhân có nhu cầu tạo website bán hàng riêng Bên cạnh đó, nó cũng phục vụ cho những người tiêu dùng muốn tìm kiếm cửa hàng và mua sắm qua website.
KẾT QUẢ DỰ KIẾN
Hệ thống được xây dựng gồm 2 website với các mục đích chính:
Một website admin-site cho phép các chủ doanh nghiệp dễ dàng quản lý sản phẩm, người dùng, danh mục, đơn hàng và doanh thu Nhờ đó, họ có thể thiết lập các chính sách phù hợp nhằm cải thiện hiệu quả kinh doanh, thu hút khách hàng và nâng cao hiệu suất cửa hàng.
Website user-site được thiết kế để quảng bá và bán hàng trực tuyến, giúp người dùng dễ dàng tiếp cận sản phẩm của doanh nghiệp Người tiêu dùng có thể nhanh chóng tìm kiếm, lựa chọn và mua sắm thời trang phù hợp với nhu cầu của mình một cách tiện lợi.
BẢNG PHÂN CÔNG CÔNG VIỆC
Bảng 1 Bảng phân công công việc
STT Thành viên Công việc Tiến độ Đóng góp
1 Mai Thanh Nhã - Viết báo cáo
- Vẽ Use case diagram, đặc tả use case
- Lập trình Backend, xây dựng API cho hệ thống
2 Phạm Phi Anh - Tổng hợp nội dung và xây dựng hệ thống khuyến nghị
3 Nguyễn Hữu Đăng - Xây dựng hệ thống khuyến nghị
- Định hướng phát triển hệ thống
CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG
KIẾN TRÚC HỆ THỐNG
Hình 1 Kiến trúc hệ thống
Hệ thống sử dụng kiến trúc gồm 3 thành phần chính:
- Front-end: Tầng sử dụng API và hiển thị giao diện
- Back-end: Tầng kết nối database và xử lý nghiệp vụ để phản hồi dữ liệu cho Front-end
- Database: Tầng lưu trữ dữ liệu của hệ thống
Khi người dùng gửi yêu cầu qua giao diện, Front-end sẽ chuyển tiếp request đến Back-end Tại đây, Back-end sẽ tiếp nhận và phân tích yêu cầu cùng dữ liệu, thực hiện xử lý nghiệp vụ bằng cách kết nối với cơ sở dữ liệu, sau đó gửi phản hồi trở lại Front-end.
CÔNG NGHỆ BACK-END
Spring Boot là một phần mở rộng của ngôn ngữ Java, thuộc Spring Framework, giúp đơn giản hóa quá trình cấu hình phức tạp Nhờ đó, lập trình viên có thể nhanh chóng tạo ra các dự án và tập trung vào việc phát triển các tính năng kinh doanh cho ứng dụng.
Spring Boot được hỗ trợ trên nhiều IDE như Eclipse, VSCode, IntelliJ,…
2.2.2 Đặc điểm của Spring Boot
Spring Boot đơn giản hóa việc tạo dự án với Spring Initializr, cho phép người dùng dễ dàng mở mã nguồn và lập trình Để chạy ứng dụng Spring Boot, người dùng có thể thực hiện trực tiếp trong IDE hoặc xây dựng thành file JAR.
Spring Boot được tích hợp nhiều thư viện có sẵn, do đó người dùng có thể thuận tiện trong quá trình tìm hiểu và code
Cấu trúc của Spring Boot rất chặt chẽ, giúp người đọc dễ hình dung và hiểu cách hoạt động
2.2.3 Khái niệm Spring Data JPA
Spring Data là một extention của Spring Framework, nó cung cấp mô hình nhất quán giúp việc cài đặt data access layers trở nên tối ưu hơn
Spring Data JPA is a module within Spring Data designed for managing relational data in applications It adheres to the ORM structure and provides an Entity Manager for executing queries on objects through a database.
2.2.4 Đặc điểm của Spring Data JPA
Cú pháp truy vấn dữ liệu của Spring Data JPA rất đơn giản, gọn gàng
Dữ liệu trong JPA được biểu thị bằng các Object và Class và sử dụng POJO để biểu diễn
Là Repository mạnh mẽ, dễ dàng tích hợp và sử dụng trên các ứng dụng Spring Boot với namespace tùy ý
2.2.5 Sự khác biệt giữa JPA và Hibernate
Có một số điểm khác biệt nổi bật giữa JPA và Hibernate như sau:
- JPA sử dụng Entity Manager trong khi Hibernate sử dụng Session
- Hibernate là nhà cung cấp JPA
- Package định nghĩa: javax.persistence, org.hibernate
- JPA sử dụng JPQL trong khi Hibernate sử dụng HQL
- Chỉ có Hibernate cung cấp class implementation
CÔNG NGHỆ FRONT-END
ReactJS là một opensource của Java Script, được phát triển từ năm 2011 bởi Facebook
Nguyên lý hoạt động của ReactJS dựa vào các components, cho phép lập trình viên xây dựng giao diện thông qua các file JSX Quá trình này tạo ra các DOM ảo, từ đó render thành giao diện người dùng (UI).
Render dữ liệu được thực hiện cả trên server và client
ReactJS giúp việc tối ưu và hiển thị UI trở nên nhanh chóng, mượt mà, có khả năng tái sử dụng và mở rộng
Giúp tạo ra các ứng dụng một cách nhanh chóng, hiệu quả
ReactJS gồm 2 thành phần chính là Redux và Virtual DOM:
- Redux giúp quản lý trạng thái của state
- Virtual DOM là một abstraction của DOM, giúp cải thiện hiệu suất cho React.
CƠ SỞ DỮ LIỆU MYSQL
Cơ sở dữ liệu là một tập hợp các dữ liệu có cấu trúc tương tự, trong đó database là nơi lưu trữ chính Dữ liệu trong database được tổ chức dưới dạng các bảng, mỗi bảng chứa các trường thể hiện các đặc điểm của đối tượng được lưu trữ.
2.4.2 Cơ sở dữ liệu quan hệ là gì
Cơ sở dữ liệu quan hệ là cơ sở dữ liệu dựa trên mô hình quan hệ Các bảng được liên kết thông qua Relationship
Cở sở dữ liệu quan hệ giúp đảm bảo sự dư thừa dữ liệu không đáng có nhưng vẫn đảm bảo tính nhất quán
MySQL là hệ thống quản trị cơ sở dữ liệu mã nguồn mở, hoạt động theo mô hình Client-Server Hệ thống này quản lý dữ liệu thông qua các schema, trong đó mỗi schema chứa nhiều bảng và được liên kết với nhau thông qua các mối quan hệ.
MySQL nổi bật bởi việc dễ sử dụng, tính bảo mật cao, đa tính năng và khả năng mở rộng dễ dàng, mạnh mẽ.
POSTMAN
Postman là công cụ phổ biến để kiểm thử API, đặc biệt là các API theo cấu trúc REST Công cụ này hỗ trợ tất cả các phương thức HTTP như GET, POST, PUT, DELETE và cho phép lưu trữ dữ liệu, giúp lập trình viên dễ dàng trong quá trình kiểm thử API.
Cài đặt và sử dụng Postman rất nhanh chóng, cho phép lập trình viên dễ dàng chia sẻ công cụ này với các cộng sự, từ đó giúp việc quản lý API trở nên tiện lợi và hiệu quả hơn.
FLASK
Flask là một micro web framework sử dụng Python, được sử dụng để xây dựng các ứng dụng web đơn giản và có thể mở rộng
Nhóm đã sử dụng Flask để phát triển các API bằng ngôn ngữ Python, phục vụ cho các chức năng như tìm kiếm sản phẩm qua hình ảnh và gợi ý sản phẩm dựa trên danh sách yêu thích.
JSON WEB TOKEN
JWT là tiêu chuẩn mở được dùng để đảm bảo an toàn khi truyền tin theo mô hình Client-Server
JWT chứa thông tin được định dạng dưới dạng JSON, với tính bảo mật được đảm bảo thông qua chữ ký điện tử sử dụng Private Key và Public Key, cùng với các thuật toán như HMAC.
JWT gồm 3 thành phần chính
- Header: cho biết loại mã token và thuật toán sử dụng mã hóa
- Payload: chứa các thuộc tính xác định cần mã hóa
- Signature: chữ ký điện tử để xác định thông tin không bị thay đổi trong quá trình truyền tin
- JWT giúp đảm bảo tính bảo mật cho hệ thống sử dụng
- JWT được sử dụng rất rộng rãi, phổ biến
- JWT nhỏ gọn và dễ dàng xử lý.
ELASTIC-SEARCH
Elasticsearch là một công cụ tìm kiếm và phân tích mạnh mẽ, được phát triển dựa trên nền tảng Apache Lucene Với khả năng xử lý dữ liệu JSON, Elasticsearch đã trở thành lựa chọn phổ biến nhờ vào hiệu suất cao và tính linh hoạt trong việc tìm kiếm thông tin.
Elasticsearch được sử dụng ở các công ty lớn như Wikimedia, Facebook, Github, Quora,…
Cách hoạt động của Elasticsearch:
Hình 2 Cách hoạt động của Elasticsearch
- Tìm kiếm nhanh chóng, hiệu quả, mạnh mẽ
- Đi kèm với khả năng phân tích
- Có khả năng mở rộng theo chiều ngang
- Hỗ trợ trên nhiều ngôn ngữ như Java, Python, Ruby,…
TENSORFLOW VGG-16
Mạng nơ-ron tích chập (CNNs) là một trong những mô hình Deep Learning tiên tiến và phổ biến nhất hiện nay, chủ yếu được ứng dụng trong việc phát triển các hệ thống nhận diện nhờ vào độ chính xác cao mà chúng mang lại.
Convolutional là một loại kernel hoạt động trên ma trận, với các lớp convolutional sử dụng các kernel (cửa sổ trượt) khác nhau đã được huấn luyện Chúng giúp trích xuất thông tin chính xác mà không cần phải chọn lựa các đặc trưng.
Filter là ma trận được mã hóa với mỗi điểm ảnh có giá trị 0 hoặc 1 Khi nhân Kernel với Filter sẽ thu được Convoled feature
Hình 3 Cấu trúc mạng CNN
VGG-16 là một mạng tiêu biểu và có độ chính xác rất cao 92.7% được đề xuất bởi Simonyan và Zisserman
Tensorflow có hỗ trợ VGG-16 thông qua tf.keras, trong đó các tham số tinh chỉnh bao gồm:
Hình 4 Tham số của VGG-16 Tensorflow
Hình 5 Chi tiết các tham số VGG-16
KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU
KHẢO SÁT HIỆN TRẠNG
Chiến lược tìm kiếm: Tìm kiếm với từ khóa là mục đích mua hàng của người dùng, lấy kết quả hiển thị đầu tiên
Từ khóa tìm kiếm: “mua quan ao”
Kết quả: Với khoảng 167 triệu kết quả, và nổi bật hơn cả là SIXDO
Hình 6 Kết quả tìm kiếm “mua quan ao”
Hình 7 Trang chủ website sixdo.vn
Website của SIXDO có các đặc điểm nổi bật:
- Bố cục phân chia hợp lý, rất thu hút người dùng
- Trang sản phẩm hiển thị đầy đủ thông tin cho người dùng
- Có size chart cụ thể
- Có chức năng tìm kiếm sản phẩm
- Responsive đầy đủ ở tất cả các kích thước website
3.1.2 Trang https://www.shein.com.vn
Chiến lược tìm kiếm hiệu quả là sử dụng từ khóa thể hiện rõ mục đích tìm kiếm các cửa hàng thời trang trên internet, nhằm đạt được kết quả hiển thị đầu tiên.
Từ khóa tìm kiếm: “cua hang thoi trang”
Kết quả tìm kiếm: Với khoảng 360 triệu kết quả và SHEIN là website hiển thị nổi bật đầu tiên
Hình 8 Kết quả tìm kiếm “cua hang thoi trang”
Hình 9 Trang chủ shein.com.vn
Các đặc điểm nổi bật ở SHEIN:
- Sản phẩm phân chia cụ thể theo từng danh mục
- Có chức năng tìm kiếm thông qua filter về giá cả
- Có chức năng thêm sản phẩm vào danh sách yêu thích
- Dễ dàng thêm vào giỏ hàng thông qua quick view
Chiến lược tìm kiếm: Tìm kiếm các nhãn hàng hot trend hiện nay, chọn nhãn hàng nổi bật và truy cập vào website nhãn hàng này
Từ khóa tìm kiếm: “thoi trang hot”
Kết quả tìm kiếm: Với khoảng 120 triệu kết quả và COOLMATE nổi bật nhất khi hiển thị đầu tiên
Hình 10 Kết quả tìm kiếm “thoi trang hot”
Hình 11 Trang chủ coolmate.me
Các đặc điểm nổi bật của COOLMATE:
- Có chức năng gợi ý size dựa trên chiều cao, cân nặng và loại sản phẩm mà người dùng muốn kiểm tra
- Thông tin sản phẩm hiển thị rõ ràng, đẹp mắt
- Có phần bình luận, đánh giá sản phẩm sau khi mua
- Đa dạng phương thức thanh toán cho người dùng
Nhìn chung, cả 3 website khảo sát đều đặc điểm sau:
- Có bố cục hợp lý, đầy đủ các thành phần cần thiết như Header, Content và Footer
- Hình ảnh sử dụng cân đối, hài hòa với tổng thể website, tạo cho người dùng cảm giác dễ chịu
Ứng dụng này cung cấp đầy đủ chức năng cho người dùng, cho phép thực hiện thao tác mua hàng dễ dàng và xem thông tin chi tiết về cửa hàng.
- Có chức thêm sản phẩm vào năng danh sách yêu thích
- Có bố cục layout website cân đối
- Cho phép đa dạng phương thức thanh toán
- Cho phép người dùng đánh giá cũng như xem các bình luận về sản phẩm
- Có chức năng tìm kiếm cũng như lọc sản phẩm thông qua các tiêu chí để tăng trải nghiệm khách hàng
- Có tính năng khuyến nghị sản phẩm dựa trên danh sách sản phẩm yêu thích của khách hàng
- Responsive đầy đủ cho website để tăng trải nghiệm người dùng
XÁC ĐỊNH YÊU CẦU
3.2.1.1 Yêu cầu chức năng nghiệp vụ
STT Yêu cầu Loại YC Mô tả/ Ràng buộc/ Công thức
1 Thêm sản phẩn Lưu trữ Danh mục của sản phẩm phải tồn tại ở cơ sở dữ liệu.
2 Tìm kiếm sản phẩm Tra cứu Nhập tên, thông tin sản phẩm muốn tìm kiếm.
3 Xem danh sách tất cả sản phẩm
Kết xuất Hiện tất cả các sản phẩm có phân trang.
4 Xem sản phẩm theo danh mục
Kết xuất Chỉ hiển thị các sản phẩm thuộc danh mục đã chọn.
5 Sửa sản phẩm bất kỳ
Lưu trữ Chọn sản phẩm cần sửa, nhập các thông tin sửa chữa và lưu lại.
6 Xóa sản phẩm Lưu trữ Cập nhật trạng thái của sản phẩm là
7 Xem danh sách tất cả danh mục
Kết xuất Hiện tất cả các danh mục có phân trang.
8 Sửa danh mục bất kỳ
Lưu trữ Chọn danh mục cần sửa, nhập các thông tin sửa chữa và lưu lại.
9 Xóa danh mục Lưu trữ Cập nhật trạng thái của danh mục là
10 Xem danh sách tất cả người dùng
Kết xuất Hiện thông tin tất cả các người dùng có phân trang.
11 Sửa thông tin người dùng bất kỳ
Lưu trữ Chọn thông tin người dùng cần sửa, nhập các thông tin sửa chữa và lưu lại.
12 Xóa người dùng Lưu trữ Cập nhật trạng thái của người dùng là “Disable”.
13 Xem danh sách tất cả đơn hàng
Kết xuất Hiện tất cả các đơn hàng có phân trang.
14 Sửa thông tin đơn hàng bất kỳ
Lưu trữ Chọn đơn hàng cần sửa, nhập các thông tin sửa chữa và lưu lại.
15 Xóa đơn hàng Lưu trữ Cập nhật trạng thái của đơn hàng là
Mô tả/ Ràng buộc/ Công thức
1 Tìm kiếm sản phẩm Tra cứu Nhập tên, thông tin sản phẩm muốn tìm kiếm.
2 Xem danh sách tất cả sản phẩm
Kết xuất Hiện tất cả các sản phẩm có phân trang.
3 Xem sản phẩm theo danh mục
Kết xuất Hiển thị các sản phẩm thuộc danh mục đã chọn.
4 Thêm sản phẩm vào danh sách yêu thích
Lưu trữ Chọn sản phẩm muốn đưa vào danh sách yêu thích, chọn “Yêu thích”
5 Thêm sản phẩm vào giỏ hàng
Lưu trữ Chọn sản phẩm muốn đưa vào giỏ hàng, chọn “Thêm vào giỏ hàng”.
6 Xem danh sách tất cả sản phẩm trong giỏ hàng
Kết xuất Hiện tất cả các sản phẩm trong giỏ hàng có phân trang.
7 Xóa sản phẩm trong giỏ hàng
Lưu trữ Chọn sản phẩm cần xóa khỏi giỏ hàng, chọn “Xóa”.
8 Đăng ký tài khoản Lưu trữ Thêm thông tin một tài khoản mới vào hệ thống.
9 Thay đổi thông tin cá nhân
Lưu trữ Trong mục “Thông tin cá nhân”, nhập các thông tin sửa chữa và lưu lại.
10 Thêm bình luận và đánh giá cho sản phẩm đã mua
Lưu trữ Chọn sản phẩm đã thanh toán, thêm bình luận, đánh giá và gửi.
11 Đặt hàng Lưu trữ Tại trang “Thanh toán”, xác nhận các thông tin cần thiết và chọn “Đặt hàng”
Kết xuất Người dùng yêu thích các sản phẩm để hệ thống khuyến nghị sản phẩm
13 Tìm kiếm sản phẩm bằng hình ảnh
Tra cứu Chọn hình ảnh sản phẩm cần tìm kiếm và nhấn Tìm kiếm
14 Tìm kiếm sản phẩm thông qua Elastic Search
Tra cứu Nhập thông tin tìm kiếm vào ô tìm kiếm và nhấn “Enter” hoặc nhấn vào biểu tượng Tìm kiếm
3.2.1.2 Yêu cầu chức năng hệ thống
STT Yêu cầu Mô tả/ Ràng buộc
Phân quyền cho 2 loại người dùng trong hệ thống: Admin và User.
Cho phép xem thông tin tất cả người dùng, nâng cấp quyền và hạ quyền, cấp lại mật khẩu và có thể cấm người dùng khỏi hệ thống.
3 Gửi mail Hệ thống gửi mail thông báo đến khi người dùng thực hiện khôi phục mật khẩu thông qua email.
3.2.2 Yêu cầu phi chức năng
STT Yêu cầu Loại yêu cầu
1 Giao diện thân thiện, dễ sử dụng Tính tiện dụng
2 Có khả năng mở rộng, nâng cấp, cải tiến trong tương lai
3 Tốc độ tải trang ổn định, các thao tác phản hồi nhanh chóng
4 Bảo mật tốt Tính bảo mật
5 Có sử dụng responsive cho website Tính tiện dụng
PHÂN TÍCH THIẾT KẾ PHẦN MỀM
LƯỢC ĐỒ USE CASE
Hệ thống của website bán hàng thời trang gồm 3 actor: Admin (Người quản trị), Guest (Khách vãng lai), User (Người dùng)
Admin là người quản lý hệ thống, có khả năng theo dõi thống kê cửa hàng, quản lý danh mục và sản phẩm, cũng như giám sát người dùng và đơn hàng Dựa trên những thông tin này, admin có thể phát triển các chiến lược và chính sách hợp lý để tối ưu hóa hiệu quả hoạt động của cửa hàng.
Khách vãng lai là những cá nhân có nhu cầu tìm hiểu thông tin về cửa hàng, tìm kiếm và xem sản phẩm Họ có thể đăng ký để sử dụng các chức năng và dịch vụ của cửa hàng.
Người dùng website có khả năng tìm kiếm và xem sản phẩm, lọc theo danh mục, cũng như quản lý giỏ hàng và đơn hàng của mình Họ có thể tạo danh sách yêu thích, tiến hành đặt hàng, thanh toán, và nhận gợi ý sản phẩm từ hệ thống Bên cạnh đó, người dùng còn có thể đánh giá các sản phẩm đã mua.
Bảng 2 Bảng mô tả use case của hệ thống
STT Tên use case Ý nghĩa
1 Đăng ký Guest có thể đăng ký tài khoản để đăng nhập vào website cửa hàng.
2 Đăng nhập Bước đầu tiên để sử dụng website Hệ thống xác thực và đối chiếu thông tin với hệ thống để xác thực người dùng.
3 Quản lý sản phẩm Người quản trị có thể xem thông tin tất cả các sản phẩm, thêm mới, sửa và xóa sản phẩm hiện có của cửa hàng.
Người dùng, Khách vãng lai có thể xem thông tin sản phẩm và tìm kiếm các sản phẩm hiện có trên cửa hàng.
Người dùng có khả năng quản lý đơn hàng một cách hiệu quả, bao gồm việc xem thông tin chi tiết và tình trạng đơn hàng của mình Họ cũng có thể đánh giá chất lượng sản phẩm cho những đơn hàng đã được mua thành công.
Người quản trị có thể xem tất cả các đơn hàng, cập nhập trạng thái cho đơn hàng.
5 Quản lý danh mục Người quản trị có thể xem tất cả các danh mục của cửa hàng, thêm, xóa, sửa thông tin danh mục.
Người dùng, Khách vãng lai có thể xem các danh mục hiện có của cửa hàng.
6 Quản lý người dùng Quản trị viên có thể cấm người dùng khỏi hệ thống, xem thông tin tất cả người dùng trong hệ thống.
Người dùng có khả năng xem và chỉnh sửa thông tin cá nhân, thay đổi mật khẩu cũng như yêu cầu khôi phục mật khẩu qua email đã đăng ký.
7 Thống kê doanh số Quản trị viên có thể xem biểu đồ doanh thu 9 ngày gần nhất, thống kê doanh thu của cửa hàng theo ngày, tháng, năm.
Người dùng có thể quản lý giỏ hàng bằng cách xem các sản phẩm đã thêm, cập nhật số lượng hoặc xóa sản phẩm khỏi giỏ Sau khi xác nhận giỏ hàng, người dùng chọn phương thức thanh toán và tiến hành đặt hàng để hoàn tất đơn hàng.
9 Quản lý sản phẩm yêu thích
Người dùng có thể xem thông tin các sản phẩm mà mình đã yêu thích, thêm hoặc xóa sản phẩm khỏi danh sách sản phẩm yêu thích
Hình 12 Use case diagram của hệ thống
Bảng 3 Bảng đặc tả Use case Đăng ký
Short Description Người dùng cần tạo tài khoản để đăng nhập và sử dụng các dịch vụ của website
Pre-Conditions Người dùng phải vào trang web và cung cấp đầy đủ thông tin để có thể thực hiện tạo tài khoản
Post Conditions Người dùng tạo tài khoản thành công và đăng nhập vào trang web
Main Flow (1) Người dùng truy cập vào website
(2) Người dùng chọn vào mục Đăng nhập
(3) Người dùng chọn Đăng ký ngay
(4) Người dùng điền thông tin đầy đủ
(5) Người dùng chọn Đăng ký để xác nhận tạo tài khoản [A1] [E1]
(6) Hệ thống hiển thị thông báo Đăng ký tài khoản thành công
(7) Chuyển hướng đến trang Đăng nhập Alternate Flow (A1) Người dùng hủy đăng ký tài khoản và kết thúc quá trình đăng ký
Exception Flow (E1) Nếu tên tài khoản hoặc email đã tồn tại thì quay trở lại bước (3)
Bảng 4 Bảng đặc tả Use case Đăng nhập
Short Description Người dùng có thể đăng nhập vào tài khoản thông qua tài khoản và mật khẩu đã tạo
Pre-Conditions Tên người dùng phải tồn tại trong hệ thống.
Post Conditions Người dùng đăng nhập thành công.
Main Flow (1) Người dùng truy cập vào website
(2) Người dùng chọn vào mục Đăng nhập
(3) Người dùng điền tài khoản và mật khẩu.
(4) Người dùng nhấp vào “Đăng nhập”
(5) Hệ thống xác thực tài khoản [E1]
(6) Hệ thống điều hướng trang đến màn hình trang chủ [A1]
Alternate Flow (A1) Hệ thống điều hướng đến trang admin.
Exception Flow (E1) Tài khoản hoặc mật khẩu người dùng vừa nhập không hợp lệ, quay lại bước (3)
Bảng 5 Bảng đặc tả Use case Xem sản phẩm
Use case Xem sản phẩm Short Description Người dùng có thể xem các sản phẩm của cửa hàng.
Actors User, Admin, Guest Pre-Conditions
Post Conditions Người dùng có thể xem được các sản phẩm của cửa hàng.
Main Flow (1) Chọn vào danh mục cần xem sản phẩm nếu đang đăng nhập với quyền User hoặc chưa đăng nhập [A1]
(2) Hệ thống hiển thị danh sách các sản phẩm tương ứng.
Alternate Flow (A1) Chọn vào quản lý sản phẩm nếu đăng nhập với quyền
4.1.3.4 Xem chi tiết sản phẩm
Bảng 6 Bảng đặc tả Use case Xem chi tiết sản phẩm
Use case Xem chi tiết sản phẩm
Người dùng có thể xem chi tiết thông tin sản phẩm của cửa hàng.
Actors User, Admin, Guest Pre-Conditions
Post Conditions Người dùng có thể xem được các thông tin của sản phẩm.
Main Flow (1) Chọn vào sản phẩm cần xem thông tin
(2) Hệ thống hiển thị thông tin chi tiết của sản phẩm.
Bảng 7 Bảng đặc tả Use case Thêm mới sản phẩm
Use case Thêm mới sản phẩm
Short Description Quản trị viên có thể thêm mới các sản phẩm cho cửa hàng của mình.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống. Post Conditions Quản trị viên có thể tạo mới một sản phẩm.
Main Flow (1) Chọn vào Quản lý sản phẩm
(3) Nhập các thông tin về sản phẩm.
(4) Chọn Lưu sản phẩm để tạo mới sản phẩm [A1]
(5) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác thêm mới và quay về trang Quản lý sản phẩm.
Exception Flow (E1) Người dùng điền thông tin không hợp lệ và quay lại bước (3)
4.1.3.6 Sửa thông tin sản phẩm
Bảng 8 Bảng đặc tả Use case Sửa thông tin sản phẩm
Use case Sửa thông tin sản phẩm
Short Description Quản trị viên có thể sửa đổi các thông tin sản phẩm cho cửa hàng của mình.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống. Post Conditions Quản trị viên có thể thay đổi thông tin của một sản phẩm.
Main Flow (1) Chọn vào Quản lý sản phẩm
(2) Chọn sửa chữa tại vị trí của sản phẩm cần thay đổi thông tin.
(3) Nhập các thông tin cần thay đổi về sản phẩm.
(4) Chọn Lưu để tạo lưu thông tin sản phẩm [A1]
(5) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác thay đổi và quay về trang Quản lý sản phẩm.
Exception Flow (E1) Người dùng điền thông tin không hợp lệ và quay lại bước (3)
Bảng 9 Bảng đặc tả Use case Xóa sản phẩm
Use case Thêm mới sản phẩm Short Description Quản trị viên có thể xóa sản phẩm khỏi cửa hàng của mình.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống.
Post Conditions Quản trị viên có thể xóa một sản phẩm hiện có trong cửa hàng.
Main Flow (1) Chọn vào Quản lý sản phẩm
(2) Chọn Ẩn tại vị trí của sản phẩm cần thay đổi thông tin.
(3) Xác nhận thao tác xóa sản phẩm [A1]
(4) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác xóa sản phẩm và quay về trang Quản lý sản phẩm.
Bảng 10 Bảng đặc tả Use case Xem danh mục
Use case Xem danh mục Short Description Người dùng có thể xem các danh mục hiện có của cửa hàng. Actors User, Admin, Guest
Post Conditions Người dùng có thể xem được các danh mục của cửa hàng.
Main Flow (1) Chọn vào quản lý danh mục nếu đăng nhập với quyền
(2) Hệ thống hiển thị danh sách các danh mục của cửa hàng [A1]
Alternate Flow (A1) Danh mục được hiển thị trên thanh Điều hướng khi người dùng đăng nhập với vai trò User hoặc chưa đăng nhập.
Bảng 11 Bảng đặc tả Use case Thêm danh mục
Use case Thêm danh mục Short Description Quản trị viên có thể thêm danh mục mới cho cửa hàng.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống quản lý.
Post Conditions Quản trị viên có thể thêm danh mục mới cho cửa hàng.
Main Flow (1) Chọn vào Quản lý danh mục.
(3) Nhập các thông tin về danh mục.
(4) Chọn Lưu danh mục để tạo mới danh mục [A1]
(5) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác thêm mới và quay về trang Quản lý danh mục.
Exception Flow (E1) Người dùng điền thông tin không hợp lệ và quay lại bước (3)
Bảng 12 Bảng đặc tả Use case Sửa danh mục
Use case Sửa danh mục Short Description Quản trị viên có thể sửa danh mục đã có trong cửa hàng.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống quản lý.
Post Conditions Quản trị viên có thể sửa danh mục đã có trong cửa hàng.
Main Flow (1) Chọn vào Quản lý danh mục.
(2) Chọn Chỉnh sửa tại vị trí của danh mục cần thay đổi thông tin.
(3) Nhập các thông tin cần thay đổi về danh mục.
(4) Chọn Lưu danh mục để lưu thông tin danh mục [A1]
(5) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu [E1]
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác thay đổi và quay về trang Quản lý danh mục.
Exception Flow (E1) Người dùng điền thông tin không hợp lệ và quay lại bước (3)
Bảng 13 Bảng đặc tả Use case Xóa danh mục
Use case Xoá danh mục Short Description Quản trị viên có thể xóa danh mục đã có trong cửa hàng.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống quản lý.
Post Conditions Quản trị viên có thể xóa một danh mục đã có trong cửa hàng.
Main Flow (1) Chọn vào Quản lý danh mục.
(2) Chọn Ẩn tại vị trí của danh mục cần thay đổi thông tin.
(3) Xác nhận thao tác xóa danh mục [A1]
(4) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác xóa và quay về trang
4.1.3.12 Cấm người dùng khỏi hệ thống
Bảng 14 Bảng đặc tả Use case Cấm người dùng khỏi hệ thống
Use case Cấm người dùng khỏi hệ thống
Short Description Cấm người dùng bất kỳ khỏi việc đăng nhập và sử dụng hệ thống.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống quản lý.
Post Conditions Quản trị viên có thể cấm một người dùng bất kỳ khỏi hệ thống.
Main Flow (1) Chọn vào Quản lý người dùng.
(2) Chọn Khóa tại vị trí của người dùng cần cấm.
(3) Xác nhận cấm người dùng [A1]
(4) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu.
Alternate Flow (A1) Chọn Hủy để hủy bỏ thao tác cấm và quay lại phần quản lý người dùng.
4.1.3.13 Xem thông tin người dùng trong hệ thống
Bảng 15 Bảng đặc tả Use case Xem thông tin người dùng trong hệ thống
Use case Xem thông tin của người dùng trong hệ thống.
Short Description Xem thông tin chung của tất cả người dùng trong hệ thống.
Pre-Conditions Quản trị viên phải đăng nhập thành công vào hệ thống quản lý.
Post Conditions Quản trị viên có thể xem thông tin chung của tất cả người dùng trong hệ thống.
Main Flow (1) Chọn vào quản lý người dùng.
(2) Hiển thị danh sách người dùng hiện có cùng các thông tin chung.
4.1.3.14 Chỉnh sửa thông tin cá nhân
Bảng 16 Bảng đặc tả Use case Chỉnh sửa thông tin cá nhân
Use case Chỉnh sửa thông tin cá nhân người dùng
Short Description Chỉnh sửa các trường thông tin các nhân của người dùng hệ thống
Pre-Conditions Người dùng phải đăng nhập vào hệ thống.
Post Conditions Người dùng có thể thay đổi thông tin cá nhân của mình.
Main Flow (1) Vào phần thông tin cá nhân sau khi đăng nhập.
(2) Thay đổi các trường thông tin có thể thay.
(4) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu.[E1]
Alternate Flow (A1) Người dùng thoát trang thông tin cá nhân, không có dữ liệu nào được thay đổi.
Exception Flow (E1) Thông tin vừa gửi xung đột với dữ liệu bên dưới và quay lại bước (1)
Bảng 17 Bảng đặc tả Use case Thay đổi mật khẩu
Use case Thay đổi mật khẩu cá nhân.
Short Description Thay đổi mật khẩu của tài khoản người dùng.
Actors User, Admin Pre-Conditions Đăng nhập vào hệ thống
Post Conditions Thay đổi mật khẩu cá nhân.
Main Flow (1) Vào phần thông tin cá nhân sau khi đăng nhập.
(2) Vào phần đổi mật khẩu.
(5) Nhập lại mật khẩu mới.[E2]
(7) Hệ thống xác nhận thông tin và lưu vào cơ sở dữ liệu.[E3]
Alternate Flow (A1) Người dùng thoát trang trong lúc nhập liệu, không có dữ liệu nào thay đổi.
Exception Flow (E1) Mật khẩu không đúng định dạng và điều kiện, nút Lưu sẽ không thể bấm.
(E3) Kiểm tra mật khẩu cũ không đúng, quay lại bước (2)
Bảng 18 Bảng đặc tả Use case Reset mật khẩu
Use case Reset mật khẩu Short Description Reset mật khẩu người dùng đã quên thông qua email. Actors User, Admin
Pre-Conditions Bấm vào quên mật khẩu trong phần đăng nhập.
Post Conditions Đến được phần lấy lại mật khẩu.
Main Flow (1) Nhập email của tài khoản cần reset mật khẩu.[A1][E1]
(2) Kiểm tra OTP được gửi qua email.
(3) Nhập OTP vào ô nhập liệu [E2]
(4) Nhập mật khẩu mới sau khi đã nhập OTP.[E3]
(5) Hệ thống xác nhận thông tin và cập nhật lại cơ sở dữ liệu.
Alternate Flow (A1) Người dùng thoát trong lúc nhập email.
Exception Flow (E1) Email không tồn tại, quay lại bước (1).
(E2) Nhập sai OTP, quay lại bước (3).
(E3) Mật khẩu không đúng điều kiện, quay lại bước (4).
4.1.3.17 Xem thống kê doanh thu theo ngày, tháng, năm
Bảng 19 Bảng đặc tả Use case Xem thống kê doanh thu
Use case Xem thống kê doanh thu theo ngày, tháng, năm.
Short Description Xem thống kê doanh thu theo ngày, tháng, năm.
Pre-Conditions Quản trị viên đăng nhập thành công vào hệ thống quản lý. Post Conditions Xem được thống kê doanh thu theo ngày, tháng, năm.
Main Flow (1) Vào phần thống kê doanh số.
(2) Chọn vào Radio button (Ngày, tháng, năm) để hiện doanh thu tương ứng.
(3) Hiển thị doanh thu ra màn hình.
Bảng 20 Bảng đặc tả Use case Tìm kiếm sản phẩm
Use case Tìm kiếm sản phẩm
Short Description Các sản phẩm có thể tìm được thông qua thanh tìm kiếm
Post Conditions Hệ thống hiển thị danh sách các sản phẩm tìm được
Main Flow (1) Người dùng nhấp chọn vào thanh tìm kiếm
(2) Người dùng nhập thông tin muốn tìm kiếm [A1]
(3) Người dùng nhần phím Enter
(4) Hệ thống hiển thị danh sách các sản phẩm tìm được thông qua từ khóa người dùng vừa nhập
Alternate Flow (A1) Người dùng nhấp chọn ngoài khu vực thanh tìm kiếm và quay lại bước (1)
4.1.3.19 Thêm sản phẩm vào giỏ hàng
Bảng 21 Bảng đặc tả Use case Thêm sản phẩm vào giỏ hàng
Use case Thêm sản phẩm vào giỏ hàng
Short Description Người dùng có thể thêm sản phẩm vào giỏ hàng
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Post Conditions Sản phẩm được thêm vào giỏ hàng thành công
Main Flow (1) Người dùng nhấp chọn vào sản phẩm mong muốn
(2) Hệ thống điều hướng đến trang chi tiết sản phẩm
(3) Người dùng nhấp chọn kích cỡ, màu sắc và số lượng sản phẩm
(4) Người dùng nhấp chọn “Thêm vào giỏ” [E1]
(5) Hệ thống thực hiện thêm sản phẩm với kích cỡ, màu sắc và số lượng tương ứng vào giỏ hàng
Exception Flow (E1) Người dùng không chọn đầy đủ phân loại, hiển thị thông báo yêu cầu người dùng chọn phân loại sản phẩm
4.1.3.20 Chỉnh sửa số lượng sản phẩm trong giỏ hàng
Bảng 22 Bảng đặc tả Use case Chỉnh sửa số lượng sản phẩm trong giỏ hàng Use case Chỉnh sửa số lượng sản phẩm trong giỏ hàng
Short Description Người dùng có thể chỉnh sửa số lượng sản phẩm trong giỏ hàng
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Có ít nhất một sản phẩm trong giỏ hàng.
Post Conditions Số lượng của sản phẩm trong giỏ được chỉnh sửa
Main Flow (1) Người dùng nhấp chọn vào biểu tượng Giỏ hàng
(2) Hệ thống hiển thị danh sách sản phẩm trong giỏ hàng
(3) Người dùng thực hiện điều chỉnh số lượng sản phẩm trong giỏ hàng [E1]
(4) Hệ thống thực hiện lưu thông tin giỏ hàng
Exception Flow (E1) Giá trị nhập vượt quá số lượng sản phẩm còn lại, hệ thống thực hiện thông báo số lượng sản phẩm tối đa và quay lại bước (2)
4.1.3.21 Xóa sản phẩm khỏi giỏ hàng
Bảng 23 Bảng đặc tả Use case Xóa sản phẩm khỏi giỏ hàng
Use case Xóa sản phẩm khỏi giỏ hàng
Short Description Người dùng có thể xóa sản phẩm trong giỏ hàng
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Có ít nhất một sản phẩm trong giỏ hàng.
Post Conditions Sản phẩm được xóa khỏi giỏ hàng thành công
Main Flow (1) Người dùng nhấp chọn vào mục “Giỏ hàng”
(2) Hệ thống hiển thị danh sách sản phẩm trong giỏ hàng
(3) Người dùng nhấp chọn xóa sản phẩm mong muốn
(4) Người dùng chọn xác nhận [A1]
(5) Hệ thống thực hiện xóa sản phẩm khỏi giỏ hàng
Alternate Flow [A1] Người dùng chọn hủy thao tác và quay lại bước 2
4.1.3.22 Xem danh sách các sản phẩm trong giỏ hàng
Bảng 24 Bảng đặc tả Use case Xem danh sách các sản phẩm trong giỏ hàng Use case Xem danh sách các sản phẩm trong giỏ hàng
Short Description Người dùng có thể xem danh sách các sản phẩm trong giỏ hàng
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Post Conditions Người dùng có thể xem được các sản phẩm trong giỏ hàng
Main Flow (1) Người dùng nhấp chọn vào mục “Giỏ hàng”
(2) Hệ thống hiển thị danh sách sản phẩm trong giỏ hàng
4.1.3.23 Đặt hàng các sản phẩm có trong giỏ hàng
Bảng 25 Bảng đặc tả Use case Đặt hàng
Use case Đặt hàng các sản phẩm có trong giỏ hàng
Short Description Người dùng vào giỏ hàng để tiến hành đặt hàng các sản phẩm đã thêm.
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Người dùng đã có ít nhất 1 sản phẩm trong giỏ hàng
Post Conditions Các sản phẩm được đặt hàng thành công
Main Flow (1) Người dùng chọn vào biểu tượng Giỏ hàng
(2) Người dùng nhấp chọn “Mua hàng”
(3) Hệ thống điều hướng đến trang thanh toán
(4) Người dùng cung cấp địa chỉ nhận hàng và chọn phương thức thanh toán COD [A1]
(6) Đơn hàng được đưa vào mục đơn hàng cá nhân và chờ admin xác nhận [A2]
Alternate Flow [A1] Chọn hình thức VNPAY
Hệ thống VNPAY chuyển hướng người dùng đến trang thanh toán, nơi họ hoàn tất quá trình thanh toán Nếu giao dịch thành công, trạng thái đơn hàng sẽ được cập nhật thành "đang giao hàng" và số lượng sản phẩm cũng sẽ được điều chỉnh.
Exception Flow [E1] Nếu tài khoản VNPAY không đủ số dư thì đặt hàng không thành công và điều hướng người dùng về trang thanh toán.
4.1.3.24 Quản lý đơn hàng cá nhân
Bảng 26 Bảng đặc tả Use case Quản lý đơn hàng cá nhân
Use case Quản lý đơn hàng cá nhân
Short Description Người dùng vào đơn hàng cá nhân xem danh sách và trạng thái các đơn hàng
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Người dùng đã vào trang thông tin cá nhân
Post Conditions Xem danh sách và trạng thái của các đơn hàng.
Main Flow (1) Người dùng vào đơn hàng
(2) Hệ thống điều hướng đến trang đơn hàng
(3) Người dùng thấy được danh sách và trạng thái của các đơn hàng [A1]
Alternate Flow [A1] Chọn vào tab muốn xem theo trạng thái đơn hàng
4.1.3.25 Thêm sản phẩm vào mục yêu thích
Bảng 27 Bảng đặc tả Use case Thêm sản phẩm vào mục yêu thích
Use case Thêm sản phẩm vào mục yêu thích
Short Description Người dùng thêm sản phẩm vào mục yêu thích
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Người dùng đang xem sản phẩm
Post Conditions Sản phẩm được thêm vào mục yêu thích
Main Flow (1) Người dùng nhấp vào biểu tượng Yêu thích và nút chuyển sang trạng thái đã thích
(2) Sản phẩm xuất hiện trong mục yêu thích của người dùng
Bảng 28 Bảng đặc tả Use case Chấp nhận đơn hàng
Use case Chấp nhận đơn hàng
Short Description Quản trị viên có thể chấp nhận đơn hàng để bàn giao cho đơn vị vận chuyển.
Pre-Conditions Người dùng đã đăng nhập vào hệ thốngvới quyền admin
Post Conditions Chấp nhận đơn hàng thành công
Main Flow (1) Người dùng chọn vào Quản lý đơn hàng
(2) Người dùng chọn vào “Xác nhận”
(3) Hệ thống ghi nhận thao tác, chuyển đổi trạng thái đơn hàng thành Đang giao và cập nhật số lượng sản phẩm hiện có [A1] [E1]
Alternate Flow [A1] Chuyển đổi trạng thái đơn hàng thành Đã giao nếu trạng thái đơn hàng đang là đang giao
[E1] Xác nhận đơn hàng thất bại nếu số lượng sản phẩm trong đơn hàng lớn hơn số lượng sản phẩm hiện có
Bảng 29 Bảng đặc tả Use case Hủy đơn hàng
Use case Hủy đơn hàng
Short Description Quản trị viên có thể hủy đơn hàng đối nếu đơn hàng đó có vấn đề.
Pre-Conditions Người dùng đã đăng nhập vào hệ thốngvới quyền admin
Post Conditions Hủy đơn hàng thành công
Main Flow (1) Người dùng chọn vào Quản lý đơn hàng
(2) Người dùng chọn vào “Hủy đơn”
(3) Hệ thống ghi nhận thao tác, chuyển đổi trạng thái đơn hàng thành Đã giao
4.1.3.28 Xóa sản phẩm khỏi mục yêu thích
Bảng 30 Bảng đặc tả Use case Xóa sản phẩm khỏi mục yêu thích
Use case Xóa sản phẩm khỏi mục yêu thích
Short Description Người dùng xóa sản phẩm khỏi mục yêu thích
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Người dùng đang xem sản phẩm hoặc đã truy cập vào mục thông tin cá nhân
Post Conditions Sản phẩm được xóa khỏi mục yêu thích
Main Flow (1) Người dùng nhấp vào biểu tượng Yêu thích và nút chuyển sang trạng thái yêu thích [A1]
(2) Sản phẩm được xóa khỏi mục yêu thích của người dùng
Alternate Flow [A1] Người dùng vào mục yêu thích sản phẩm
[A1a] Hệ thống điều hướng sang trang yêu thích sản phẩm[A1b] Người dùng nhấp vào “xóa”
4.1.3.29 Bình luận, đánh giá sản phẩm sau khi mua
Bảng 31 Bảng đặc tả Use case Đánh giá sản phẩm
Use case Bình luận, đánh giá sản phẩm sau khi mua
Short Description Người dùng đánh giá và để lại bình luận sản phẩm đã mua
Pre-Conditions Người dùng đã đăng nhập vào hệ thống
Người dùng đã mua sản phẩm và chưa bình luận về sản phẩm này
Người dùng đã truy cập vào thông tin cá nhân
Post Conditions Đánh giá và bình luận sản phẩm đã mua
Main Flow (1) Người dùng vào đơn hàng
(2) Hệ thống điều hướng đến trang đơn hàng
(3) Người dùng nhấp vào “Đánh giá” đối với sản phẩm cho phép đánh giá.
(4) Website hiện lên một form đánh giá
(5) Người dùng bắt buộc chọn số sao cho sản phẩm và có thể để lại bình luận
(7) Modal được tắt và sản phẩm đã được đánh giá thành công
Alternate Flow [A1] Người dùng nhấp chọn “Huỷ” và quay lại bước (2)
LƯỢC ĐỒ TUẦN TỰ
Hình 13 Sequence Diagram Đăng ký
Hình 14 Sequence Diagram Đăng nhập
Hình 15 Sequence Diagram Xem sản phẩm
Hình 16 Sequence Diagram Thêm sản phẩm
Hình 17 Sequence Diagram Sửa sản phẩm
Hình 18 Sequence Diagram Xóa sản phẩm
Tương tự Xem sản phẩm ở mục 2.6.3
Tương tự Thêm sản phẩm ở mục 2.6.4
Tương tự Xóa sản phẩm ở mục 2.6.5
Tương tự Sửa sản phẩm ở mục 2.6.6
4.2.11 Cấm người dùng khỏi hệ thống
Hình 19 Sequence Diagram Cấm người dùng
4.2.12 Xem thông tin người dùng
Hình 20 Sequence Diagram Xem thông tin người dùng
4.2.13 Chỉnh sửa thông tin người dùng
Hình 21 Sequence Diagram Chỉnh sửa thông tin người dùng
Hình 22 Sequence Diagram Thay đổi mật khẩu
Hình 23 Sequence Diagram Reset mật khẩu
Hình 24 Sequence Diagram Xem thống kê
4.2.17 Thêm sản phẩm vào giỏ hàng
Hình 25 Thêm sản phẩm vào giỏ hàng
Hình 26 Sequence Diagram Chỉnh sửa giỏ hàng
Hình 27 Sequence Diagram Xem giỏ hàng
Hình 28 Sequence Diagram Thanh toán COD
Hình 29 Sequence Diagram Thanh toán VNPay
Hình 30 Sequence Diagram Đánh giá sản phẩm
Quản lý đơn hàng cá nhân
Hình 31 Sequence Diagram Quản lý đơn hàng cá nhân
4.2.23 Chấp nhận đơn hàng - Admin
Hình 32 Sequence Diagram Chấp nhận đơn hàng
Hình 33 Sequence Diagram Hủy đơn hàng
4.2.25 Thêm sản phẩm vào danh sách yêu thích
Hình 34 Sequence Diagram Thêm sản phẩm vào danh sách yêu thích
4.2.26 Hủy sản phẩm khỏi danh sách yêu thích
Tương tự Thêm sản phẩm vào danh sách yêu thích 3.6.26
Chương 4: Thiết Kế Phần Mềm
THIẾT KẾ DỮ LIỆU
4.3.1 Thông tin các trường trong bảng
Bảng 32 Thông tin các trường trong bảng Users
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
1 Users Lưu trữ thông tin của người dùng trong hệ thống 1.1 Id Mỗi người dùng có mã này để phân biệt 1.2 Create_at Thời gian lúc tạo tài khoản
1.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin người dùng
1.4 Address Địa chỉ người dùng
1.5 Dob Ngày sinh của người dùng
1.6 Email Địa chỉ email của người dùng
1.7 Fullname Họ và tên của người dùng
1.8 Gender Giới tính của người dùng
1.9 Password Mật khẩu của người dùng
1.10 Phone Số điện thoại của người dùng
1.11 Status Trạng thái của người dùng
1.12 Username Tài khoản người dùng
1.13 Avatar Ảnh đại diện của người dùng
1.14 Otp Mã OTP khi khôi phục mật khẩu
Chương 4: Thiết Kế Phần Mềm
Bảng 33 Thông tin các trường trong bảng Roles
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
2 Roles Lưu trữ thông tin của các role trong hệ thống
2.1 Id Mỗi role có mã này để phân biệt
Bảng 34 Thông tin các trường trong bảng Wishlists
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
3 Roles Lưu trữ thông tin của các role trong hệ thống
3.1 Id Mỗi sản phẩm yêu thích có mã này để phân biệt 3.2 Product_id Mã của sản phẩm
3.3 User_id Mã của người dùng
3.4 Color Màu sắc cửa sản phẩm
3.5 Price Giá của sản phẩm
3.6 Size Size của sản phẩm
3.7 Cat_id Mã danh mục của sản phẩm
Bảng 35 Thông tin các trường trong bảng User_role
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
4 User_role Lưu trữ thông tin của các user với role tương ứng trong hệ thống
4.1 User_id Mã của user
4.2 Role_id Mã của role
Chương 4: Thiết Kế Phần Mềm
Bảng 36 Thông tin các trường trong bảng Types
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
5 Types Lưu trữ thông tin các loại sản phẩm của từng sản phẩm trong hệ thống
5.1 Id Mỗi loại sản phẩm có mã này để phân biệt 5.2 Create_at Thời gian lúc tạo loại sản phẩm
5.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin loại sản phẩm
5.4 Color Màu của loại sản phẩm
5.5 Price Giá của loại sản phẩm
5.6 Quantity Số lượng của loại sản phẩm
5.7 Sale Phần trăm giảm giá của loại sản phẩm
5.8 Size Size của loại sản phẩm
5.9 Sold Số lượng đã bán của loại sản phẩm
5.10 Status Trạng thái của loại sản phẩm
5.11 Product_id Mã của sản phẩm
Bảng 37 Thông tin các trường trong bảng Transactions
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
6 Transactions Lưu trữ thông tin các chi tiết giao dịch của từng đơn hàng trong hệ thống
6.1 Id Mỗi chi tiết giao dịch có mã này để phân biệt 6.2 Create_at Thời gian lúc tạo chi tiết giao dịch
6.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin chi tiết giao dịch 6.4 Color Màu của sản phẩm lúc tạo giao dịch
6.5 Unit_price Giá của sản phẩm lúc tạo giao dịch
6.6 Quantity Số lượng của sản phẩm lúc tạo giao dịch
Chương 4: Thiết Kế Phần Mềm
6.7 Size Size của sản phẩm lúc tạo giao dịch
6.8 Order_id Mã của đơn hàng tương ứng với giao dịch 6.9 Product_id Mã của sản phẩm trong giao dịch
6.10 Is_commented Kiểm tra trạng thái đã bình luận về sản phẩm thuộc giao dịch này hay chưa
Bảng 38 Thông tin các trường trong bảng Products
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
7 Products Lưu trữ thông tin các sản phẩm trong hệ thống
7.1 Id Mỗi sản phẩm có mã này để phân biệt
7.2 Create_at Thời gian lúc tạo sản phẩm
7.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin sản phẩm 7.4 Avg_rating Điểm số đánh giá của sản phẩm
7.5 Description Mô tả chi tiết sản phẩm
7.6 Image Hình ảnh sản phẩm
7.8 Status Trạng thái sản phẩm
7.9 Category_id Mã danh mục của sản phẩm
Chương 4: Thiết Kế Phần Mềm
Bảng 39 Thông tin các trường trong bảng Orders
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
8 Orders Lưu trữ thông tin các đơn hàng trong hệ thống
8.1 Id Mỗi đơn hàng có mã này để phân biệt
8.2 Create_at Thời gian lúc tạo đơn hàng
8.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin đơn hàng
8.4 Address Địa chỉ giao hàng
8.5 Name Tên người nhận hàng
8.6 Note Ghi chú đơn hàng
8.7 Payment Ghi chú thanh toán
8.8 Phone Số điện thoại nhận hàng
8.9 Shipping_fee Phí vận chuyển
8.10 Status Trạng thái đơn hàng
8.11 Total_price Tổng giá tiền đơn hàng
8.12 User_id Mã của người mua đơn hàng
Bảng 40 Thông tin các trường trong bảng Images_products
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
9 Images_products Lưu trữ thông tin các ảnh chi tiết cho sản phẩm trong hệ thống
9.1 Id Mỗi ảnh chi tiết sản phẩm có mã này để phân biệt 9.2 Create_at Thời gian lúc tạo ảnh chi tiết sản phẩm
9.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin ảnh chi tiết sản phẩm 9.4 Product_id Mã của sản phẩm
9.5 Image Ảnh chi tiết sản phẩm
Chương 4: Thiết Kế Phần Mềm
Bảng 41 Thông tin các trường trong bảng Comments
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
Trong hệ thống, mỗi bình luận về sản phẩm được lưu trữ thông tin chi tiết, bao gồm mã định danh (Id) để phân biệt từng bình luận và thời gian tạo bình luận (Create_at) để ghi lại thời điểm bình luận được đăng.
10.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin bình luận 10.4 Content Nội dung bình luận
10.5 Rating Số sao đánh giá sản phẩm
10.6 User_id Mã của người bình luận
10.7 Product_id Mã của sản phẩm
Bảng 42 Thông tin các trường trong bảng Categories
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
11 Categories Lưu trữ thông tin danh mục trong hệ thống
11.1 Id Mỗi danh mục có mã này để phân biệt
11.2 Create_at Thời gian lúc tạo danh mục
11.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin danh mục
11.4 Name Tên của danh mục
11.5 Parent_id Mã của danh mục cha
11.6 Status Trạng thái của danh mục
Chương 4: Thiết Kế Phần Mềm
Bảng 43 Thông tin các trường trong bảng Carts_products
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
12 Carts_products Lưu trữ thông tin giỏ hàng của người dùng trong hệ thống
12.1 Id Mỗi thông tin giỏ hàng có mã này để phân biệt
12.2 Create_at Thời gian lúc thêm sản phẩm vào giỏ hàng
12.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin sản phẩm trong giỏ hàng 12.4 Color Màu của sản phẩm thêm vào giỏ hàng 12.5 Price Giá của sản phẩm thêm vào giỏ hàng
12.6 Quantity Số lượng của sản phẩm thêm vào giỏ hàng 12.7 Size Size của sản phẩm thêm vào giỏ hàng 12.8 Cart_id Mã giỏ hàng của người dùng
12.9 Product_id Mã sản phẩm thêm vào giỏ hàng
Bảng 44 Thông tin các trường trong bảng Carts
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
Lưu trữ giỏ hàng của người dùng trong hệ thống, mỗi giỏ hàng tương ứng với một người dùng
13.1 Id Mỗi giỏ hàng có mã này để phân biệt và liên kết 1:1 với mã của người dùng 13.2 Create_at Thời gian lúc tạo giỏ hàng
13.3 Update_at Thời gian lúc cập nhật/chỉnh sửa thông tin giỏ hàng
Chương 4: Thiết Kế Phần Mềm
Bảng 45 Thông tin các trường trong bảng Addresses
TT Tên bảng/Tên trường Mục đích bảng/Mục đích trường
14 Addresses Lưu trữ thông tin các địa chỉ giao hàng của người dùng trong hệ thống
14.1 Id Mỗi địa chỉ giao hàng có mã này để phân biệt
14.2 Add_default Kiểm tra xem có phải địa chỉ mặc định hay không
14.3 Address Địa chỉ giao hàng
14.4 Name Tên người nhận hàng
14.5 Note Ghi chú khi giao hàng
14.6 Phone_number Số điện thoại người nhận hàng
14.7 User_id Mã của người dùng
Chương 4: Thiết Kế Phần Mềm
4.3.2 Lược đồ cơ sở dữ liệu
Hình 35 Lược đồ ERD của hệ thống
Chương 4: Thiết Kế Phần Mềm
GIAO DIỆN NGƯỜI DÙNG
Mô tả: Trang chủ hiển thị giao diện đầu tiên khi người dùng truy cập vào website
Hình 36 Giao diện Trang chủ 1 - Người dùng
Hình 37 Giao diện Trang chủ 2 - Người dùng
Chương 4: Thiết Kế Phần Mềm
Hình 38 Giao diện Trang chủ 3 - Người dùng
Hình 39 Giao diện Trang chủ sau khi đăng nhập - Người dùng
Hình 40 Giao diện tìm kiếm sản phẩm bằng hình ảnh
Chương 4: Thiết Kế Phần Mềm
Bảng 46 Bảng mô tả chức năng Trang chủ - Người dùng
STT Tên Loại Điều kiện Chức năng
Hover “DANH MỤC” Hiển thị các danh mục của cửa hàng
2 SẢN PHẨM Thẻ
Chuyển đến trang sản phẩm
Chuyển đến trang giới thiệu cửa hàng
Click “ĐĂNG NHẬP” Chuyển đến trang đăng nhập
Click vào biểu tượng Giỏ hàng
Chuyển đến trang giỏ hàng Nếu chưa đăng nhập sẽ chuyển đến trang đăng nhập
Nhập từ khóa vào textbox tìm kiếm
Hiển thị danh sách các sản phẩm tìm thấy
7 Thẻ danh mục cụ thể
Click thẻ danh mục cụ thể
Chuyển đến trang sản phẩm thuộc danh mục đã click
Click vào thẻ sản phẩm cụ thể
Chuyển đến trang chi tiết của sản phẩm đã click
Click vào “Đăng xuất” Đăng xuất tài khoản khỏi hệ thống
10 Tìm kiếm sản phẩn bằng hình ảnh
Click vào biểu tượng Camera Hiện dialog cho người dùng chọn ảnh sản phẩm cần tìm kiếm
Chương 4: Thiết Kế Phần Mềm
4.4.2 Sản phẩm và sản phẩm theo danh mục
Trang sản phẩm của cửa hàng sẽ hiển thị toàn bộ các sản phẩm có sẵn, được phân loại theo từng danh mục cụ thể để người dùng dễ dàng tìm kiếm và lựa chọn.
Hình 41 Hình ảnh sản phẩm theo danh mục
Bảng 47 Bảng mô tả chức năng xem tất cả sản phẩm và xem theo danh mục
STT Tên Loại Điều kiện Chức năng
Click vào thẻ sản phẩm cụ thể
Chuyển đến trang chi tiết của sản phẩm đã click
2 Thẻ title sản phẩm Thẻ
Click vào title của sản phẩm
Chuyển đến trang chi tiết của sản phẩm đã click
Click vào page number muốn chuyển đến
Chuyển đến page number mà người dùng đã click
Click vào “>” Chuyển đến trang kế tiếp Bị disable nếu trang hiện tại là trang cuối
Chương 4: Thiết Kế Phần Mềm
Click vào “