Thực hành: - Xây dựng website hỗ trợ đấu giá trực tuyến, với các tính năng chính như sau: ◦ Cho phép người dùng thực hiện tác vụ: đăng ký, đăng nhập, tìm kiếm, chọn lọc sản phẩm theo ý m
TỔNG QUAN VỀ ĐỀ TÀI
Tính cấp thiết của đề tài
Thương mại điện tử mang lại nhiều lợi ích vượt trội so với mua sắm truyền thống, bao gồm sự tiện lợi và linh hoạt cho người tiêu dùng Người tiêu dùng có thể mua sắm mọi lúc, mọi nơi mà không bị giới hạn về thời gian hay không gian Hơn nữa, họ tiết kiệm thời gian và chi phí di chuyển, đồng thời dễ dàng so sánh giá từ nhiều nguồn khác nhau.
Đấu giá trực tuyến đang ngày càng trở nên phổ biến, mang lại sự dễ dàng và tiện lợi cho người mua và người bán Phương thức này tạo ra một không gian trực tuyến để thỏa thuận giá trị hàng hóa và dịch vụ, mang đến trải nghiệm mua sắm thú vị cho người tiêu dùng Đồng thời, nó mở ra cơ hội mới cho doanh nghiệp trong việc mở rộng thị trường và tăng doanh thu.
Thị trường đấu giá trực tuyến tại Việt Nam còn hạn chế về số lượng nhà cung cấp dịch vụ, tạo cơ hội cho chúng tôi xây dựng một nền tảng hỗ trợ đấu giá trực tuyến Nơi đây sẽ cho phép người dùng tương tác với sản phẩm và kết nối với nhau, từ đó hình thành cầu nối hiệu quả giữa người mua và người bán, giúp quá trình giao lưu và giao dịch trở nên dễ dàng hơn.
Mục đích của đề tài
Xây dựng website đấu giá giúp người dùng tham gia các phiên đấu giá trực tuyến, tương tác trực tiếp với sản phẩm qua các lượt ra giá Người dùng có cơ hội trúng đấu giá khi thời gian kết thúc, từ đó tạo ra sự cạnh tranh lành mạnh Ứng dụng này không chỉ nâng cao doanh thu cho người đăng bán mà còn giúp người trúng đấu giá sở hữu sản phẩm với mức giá mong muốn.
Đối tượng và phạm vi nghiên cứu
Nhằm giúp cho quá trình đấu giá được trở nên dễ dàng và nhanh chóng hơn, đề tài hướng đến các đối tượng:
Chương 1: Tổng quan về đề tài
Người đăng sản phẩm đấu giá là cá nhân có nhu cầu bán hàng hóa qua hình thức đấu giá trực tuyến, cho phép họ dễ dàng đăng tải sản phẩm, thiết lập thông tin đấu giá và quản lý phiên đấu giá một cách hiệu quả.
Người tham gia đấu giá là những cá nhân có nhu cầu và khả năng tài chính để tham gia vào các phiên đấu giá Họ sẽ đưa ra các mức giá cho sản phẩm mà mình quan tâm, cạnh tranh với những người tham gia khác nhằm có cơ hội sở hữu sản phẩm với mức giá hợp lý.
Kết quả dự kiến đạt được
- Xây dựng các tính năng cần có của một website hỗ trợ đấu giá trực tuyến:
Đăng ký / Đăng nhập / Đăng xuất
Quản lý thông tin tài khoản
Xem danh sách sản phẩm
Tìm kiếm sản phẩm theo tên
Lọc sản phẩm theo tiêu chí
Xem chi tiết sản phẩm
Tạo thông tin đấu giá cho sản phẩm đăng tải
Đặt ngưỡng giá tối thiểu cho phiên đấu giá
Ngăn đấu giá phút chót
Quản lý sản phẩm đã đăng
Thanh toán phí đăng sản phẩm
Quản lý lịch sử ra giá
Xem lịch sử đấu giá sản phẩm
Nhận kết quả trúng đấu giá
Thanh toán sản phẩm trúng đấu giá
Quản lý địa chỉ nhận hàng
Chương 1: Tổng quan về đề tài
- Đối với quản trị viên
Thống kê doanh thu và sản phẩm
Xem danh sách người dùng
Khóa tài khoản người dùng
Thu phí đăng sản phẩm
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
Khảo sát các Website tương tự
eBay là một công ty thương mại điện tử hàng đầu của Mỹ, được Pierre Omidyar thành lập vào năm 1995 Hiện nay, eBay quản lý trang web ebay.com, nơi người dùng có thể mua, bán và đấu giá các sản phẩm với giá cả hấp dẫn Ngoài ra, eBay còn sở hữu PayPal, một trong những nền tảng thanh toán trực tuyến hàng đầu thế giới.
eBay nổi bật trong thương mại điện tử nhờ tính năng đấu giá độc đáo, cho phép người mua mua sản phẩm với giá thấp nhất và người bán bán sản phẩm với giá cao nhất Hệ thống đấu giá của eBay được xây dựng bài bản, là mô hình lý tưởng để học tập và áp dụng cho các dự án phát triển tính năng đấu giá.
2.1.1.2 Các tính năng chính của eBay
Đấu giá trực tuyến là một tính năng nổi bật của eBay, cho phép người bán đưa sản phẩm lên và người mua đặt giá thầu trong một khoảng thời gian nhất định Khi phiên đấu giá kết thúc, người có mức giá cao nhất sẽ giành được sản phẩm, giúp họ sở hữu món đồ với giá thấp hơn thị trường và tạo ra sự cạnh tranh hấp dẫn Thời gian cho mỗi phiên đấu giá thường từ vài ngày đến một tuần, trong đó người mua có thể cân nhắc và quyết định mức giá Người bán cũng có thể thiết lập mức giá tối thiểu mà họ mong muốn.
Chương 2: Khảo sát hiện trạng và xác định yêu cầu giá sẽ trở nên sôi động vào những giờ cuối cùng khi nhiều người mua cùng cạnh tranh để mua được món hàng
eBay cung cấp một danh mục sản phẩm đa dạng với hàng triệu mặt hàng thuộc hàng ngàn danh mục khác nhau, bao gồm đồ điện tử, thời trang, phụ kiện, trang sức, đồ siêu tầm và các món đồ cổ Sự phong phú này giúp eBay trở thành một trong những thị trường trực tuyến hàng đầu, đáp ứng mọi nhu cầu mua sắm của người tiêu dùng Các danh mục chính của eBay rất phong phú và đa dạng.
Đồ điện tử: Điện thoại di động, máy tính, TV, thiết bị âm thanh và video,
Thời trang: Quần áo, giày dép, túi xách, phụ kiện thời trang cho cả nam và nữ,
Đồ gia dụng: Đồ nội thất, thiết bị nhà bếp,
Đồ sưu tầm: Tiền xu, đồ cổ,
- Hệ thống đánh giá và phản hồi:
Hệ thống đánh giá và phản hồi của eBay đóng vai trò quan trọng trong việc xây dựng niềm tin giữa người mua và người bán Sau mỗi giao dịch, cả hai bên có cơ hội để lại nhận xét và đánh giá lẫn nhau, từ đó giúp người mua dễ dàng lựa chọn và ra quyết định dựa trên uy tín của người bán.
Mỗi người dùng trên eBay có hồ sơ đánh giá công khai, hiển thị số lượng giao dịch thành công và tỷ lệ phản hồi tích cực, giúp người mua dễ dàng nhận diện người bán đáng tin cậy Hệ thống này khuyến khích người bán cung cấp dịch vụ tốt để nhận được đánh giá cao, vì phản hồi tiêu cực có thể ảnh hưởng nghiêm trọng đến uy tín của họ Do đó, việc duy trì chất lượng dịch vụ tốt là rất quan trọng.
- Chính sách bảo vệ người mua và người bán
eBay áp dụng các chính sách bảo vệ người mua và người bán nhằm đảm bảo giao dịch an toàn và công bằng Một trong những chương trình quan trọng là eBay Money Back Guarantee, giúp người mua yên tâm hơn khi biết rằng họ sẽ nhận lại tiền nếu sản phẩm không đúng như mô tả.
Chương 2: Khảo sát hiện trạng và xác định yêu cầu phẩm không đúng như mô tả hoặc không được giao hàng
Chương trình này bao gồm hầu hết các giao dịch trên eBay, đảm bảo người mua có quyền yêu cầu hoàn tiền trong vòng 30 ngày kể từ khi nhận sản phẩm Đồng thời, eBay cũng cung cấp cho người bán các công cụ và dịch vụ nhằm bảo vệ họ khỏi hành vi lừa đảo của người mua, bao gồm việc bảo vệ trước các khiếu nại không chính đáng và hỗ trợ trong việc giải quyết tranh chấp.
eBay cung cấp một kho hàng phong phú với sự đa dạng sản phẩm, từ những mặt hàng thông thường đến các sản phẩm hiếm và khó tìm Người mua có thể dễ dàng tìm thấy mọi thứ, từ đồ dùng hàng ngày cho đến những món đồ sưu tầm độc đáo và quý giá.
Hình thức đấu giá mang lại tiềm năng tiết kiệm chi phí lớn, cho phép người mua sở hữu hàng hóa với giá thấp hơn giá thị trường Điều này đặc biệt thu hút những người tiêu dùng có ngân sách hạn chế hoặc đang tìm kiếm các ưu đãi hấp dẫn.
Quá trình đấu giá trên eBay tạo ra sự cạnh tranh và hứng thú cho người dùng, mang đến trải nghiệm độc đáo Sự cạnh tranh giữa các người mua cùng với cảm giác hồi hộp và kỳ vọng khi chờ đợi kết quả đấu giá chính là những yếu tố hấp dẫn mà eBay mang lại.
Cộng đồng uy tín với hệ thống đánh giá và phản hồi đóng vai trò quan trọng trong việc xây dựng niềm tin và sự minh bạch trong giao dịch Người mua và người bán có thể đánh giá lẫn nhau, tạo ra một môi trường công bằng và đáng tin cậy.
eBay cung cấp cơ hội kinh doanh tuyệt vời cho các doanh nghiệp nhỏ và người bán cá nhân, cho phép họ tiếp cận khách hàng toàn cầu Nền tảng này đặc biệt hữu ích cho việc bán các sản phẩm hiếm và độc đáo, mà khó có thể tiêu thụ ở các kênh khác.
Rủi ro gian lận: Mặc dù eBay có nhiều biện pháp để bảo về, tuy nhiên vẫn
Chương 2: Khảo sát hiện trạng và xác định yêu cầu tồn tại các rủi ro và gian lận như hàng giả hoặc sản phẩm không đúng như mô tả Người mua có thể gặp phải các sản phẩm kém chất lượng hoặc không nhận được hàng sau khi đã thanh toán
Yêu cầu chức năng
2.2.2 Yêu cầu về Người dùng
- Đăng ký/ Đăng nhập/ Đăng xuất
- Tra cứu thông tin sản phẩm bằng cách tìm kiếm theo tên hoặc lọc sản phẩm.
- Tiến hành đặt giá và đấu giá tự động
- Đăng tải sản phẩm và cài đặt thông tin đấu giá trên nền tảng
- Theo dõi lịch sử đấu giá bản thân
- Bình luận và tương tác trên sản phẩm
- Đánh giá người đăng sản phẩm sau khi thắng
2.2.2.1 Đấu giá tự động Đấu giá tự động cho phép người dùng đặt mức giá tối đa có thể trả và hệ thống sẽ tự động tăng giá để giữ cho người chơi vừa-đủ-thắng những người chơi khác mà không cần ra giá liên tục
Người chơi ra giá tối đa mà bản thân có thể trả cho sản phẩm
Nếu không ai có mức giá tối đa cao hơn, người chơi giành chiến thắng sản phẩm ở mức giá thấp nhất mà hệ thống tự động đặt giá
Nếu những người chơi ra cùng mức giá, người chơi ra giá trước được ghi nhận là người ra giá cao nhất
- Xem doanh thu toàn hệ thống
2.2.3 Yêu cầu phi chức năng
Dưới đây là một số yêu cầu phi chức năng đối với hệ thống, trình duyệt chạy hệ thống:
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
- Khả năng mở rộng (thêm các tính năng và chuyển tiếp các tùy chỉnh khi nâng cấp phiên bản lớn tiếp theo)
- Khả năng chịu lỗi (ví dụ: Giám sát, đo lường và quản lý hệ thống vận hành)
- Khả năng tương thích nền tảng, phần mềm, công cụ, tiêu chuẩn…
- Quyền riêng tư (tuân thủ luật bảo mật)
Yêu cầu hệ thống
Người dùng Người sử dụng website
Admin Người quản lý website
Bảng 1 Danh sách tác nhân hệ thống
2.3.2 Danh sách chức năng của Người dùng
Chức năng giải thích của website bao gồm việc người dùng có thể đăng ký tài khoản, đăng nhập vào hệ thống và đăng xuất khi không sử dụng nữa.
Người dùng có thể khôi phục mật khẩu đã quên, xem thông tin tài khoản của mình và đăng sản phẩm lên sàn giao dịch một cách dễ dàng.
Người dùng có thể tạo thông tin đấu giá cho sản phẩm mà họ muốn đăng tải, sau đó thực hiện thanh toán phí để hoàn tất quá trình đăng sản phẩm.
Người dùng tìm kiếm sản phẩm dựa trên thông tin cụ thể, đồng thời lọc sản phẩm theo các tiêu chí đặc trưng Ngoài ra, người dùng cũng có thể tham gia đấu giá bằng cách đưa ra giá cho sản phẩm mình quan tâm.
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
Cập nhật địa chỉ Người dùng cập nhật địa chỉ
Xem sản phẩm đã đăng Người dùng xem sản phẩm đã đăng
Thanh toán sản phẩm đã thắng Người dùng thanh toán sản phẩm đã thắng
Bình luận Người dùng bình luận trên sản phẩm
Phản hồi bình luận Người dùng phản hồi bình luận khác Đánh giá sản phẩm Người dùng đánh giá sản phẩm
Bảng 2 Danh sách chức năng của Người dùng 2.3.3 Danh sách chức năng của Admin
Xem tất cả tài khoản người dùng Admin xem tất cả thông tin người dùng
Khóa tài khoản người dùng Admin muốn khóa tài khoản người dùng
Tạo danh mục mới Admin muốn tạo một danh mục mới
Chỉnh sửa danh mục Admin muốn chỉnh sửa danh mục
Xóa danh mục Admin muốn xóa danh mục
Thống kê doanh thu và sản phẩm Admin xem thống kê về doanh thu và sản phẩm
Bảng 3 Danh sách chức năng của Admin
Trong chương này, nhóm đề tài đã xác định các yêu cầu cần thiết cho hệ thống, bao gồm cả yêu cầu chức năng và phi chức năng Đồng thời, nhóm cũng đã xem xét các chức năng cụ thể như đấu giá tự động, hệ thống đánh giá và phản hồi, cùng với các tính năng phụ trợ khác, và lập danh sách chức năng cho Người dùng và Admin.
CƠ SỞ LÝ THUYẾT
PostgreSQL
Hệ quản trị cơ sở dữ liệu PostgreSQL là chương trình quản lý hệ thống cơ sở dữ liệu, cho phép lưu trữ thông tin một cách rõ ràng và có tổ chức Nó cung cấp khả năng truy cập dữ liệu nhanh chóng và thuận lợi Với sự hỗ trợ cho nhiều ngôn ngữ lập trình, PostgreSQL trở thành một trong những hệ quản trị cơ sở dữ liệu nguồn mở phổ biến nhất.
PostgreSQL là một cơ sở dữ liệu mạnh mẽ và ổn định, hoạt động hiệu quả trên nhiều hệ điều hành khác nhau Hệ quản trị cơ sở dữ liệu này cung cấp một loạt các hàm tiện ích phong phú và hoàn toàn miễn phí, cho phép người dùng dễ dàng tải về từ trang chủ Với nhiều phiên bản tương thích cho các hệ điều hành, PostgreSQL đáp ứng nhu cầu đa dạng của người dùng.
Chương 3: Cơ sở lý thuyết
● Hệ quản trị cơ sở dữ liệu PostgreSQL chính là một trong những phần mềm quản trị CSDL dạng server based, mạnh mẽ và linh hoạt
● PostgreSQL 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
PostgreSQL cung cấp cơ chế quản lý người dùng độc lập, cho phép mỗi người dùng quản lý đồng thời nhiều cơ sở dữ liệu khác nhau Điều này giúp tăng cường khả năng sử dụng và linh hoạt trong việc quản lý dữ liệu cho từng người dùng.
Để truy cập và truy xuất dữ liệu từ cơ sở dữ liệu PostgreSQL, bạn cần cung cấp tên người dùng và mật khẩu có quyền truy cập vào cơ sở dữ liệu.
Spring Boot
Spring Boot là một dự án trong hệ sinh thái Spring Framework dành cho ngôn ngữ Java, giúp đơn giản hóa quá trình khởi động dự án bằng cách cung cấp tính năng tự động cấu hình Trước khi có Spring Boot, việc thiết lập một dự án Spring yêu cầu nhiều bước cấu hình phức tạp, nhưng với Spring Boot, lập trình viên có thể tập trung vào phát triển các tính năng kinh doanh của ứng dụng Một trong những tính năng cốt lõi của Spring là Dependency Injection, cho phép xây dựng các ứng dụng mô-đun với các thành phần được ghép nối lỏng lẻo, từ đó dễ dàng mở rộng hệ thống, rất phù hợp cho phát triển ứng dụng microservice.
Spring là một framework nổi bật cho ngôn ngữ Java, được ưa chuộng trên toàn cầu với một cộng đồng người dùng rộng lớn Hầu hết các vấn đề mà lập trình viên gặp phải khi sử dụng Spring đều có sẵn giải pháp trên các nền tảng hỗ trợ như StackOverflow và Medium.
Chương 3: Cơ sở lý thuyết
● Cung cấp khả năng tự động cấu hình giúp triển khai hệ thống nhanh chóng
● Cốt lõi của spring là Dependency Injection (DI) giúp cho hệ thống dễ dàng mở rộng, lý tưởng cho phát triển ứng dụng microservice
NextJS - JavaScript Framework phía máy khách
NextJS là một framework JavaScript dựa trên React, cho phép phát triển ứng dụng web động với hiệu suất cao và tối ưu hóa SEO Nó giúp lập trình viên tiết kiệm thời gian bằng cách giảm thiểu cấu hình như webpack, babel và routing, cho phép tập trung vào giao diện và logic ứng dụng NextJS hỗ trợ các tính năng quan trọng như server-side rendering, static site generation, code splitting và tối ưu hóa hình ảnh, giúp ứng dụng web nhanh chóng, an toàn và dễ quản lý.
Hình 2 Framework NextJS Ưu điểm của NextJS:
● Next JS là framework cho JavaScript, một trong những ngôn ngữ lập trình phổ biến nhất thế giới, với cộng đồng lớn và nhiều tài nguyên học tập
● Cung cấp khả năng tự động cấu hình, giúp tiết kiệm thời gian và công sức cho việc thiết lập môi trường phát triển
NextJS offers advanced features such as server-side rendering, static site generation, code splitting, and image optimization These capabilities enhance web application performance by increasing page load speed, improving SEO potential, reducing JavaScript file size, and optimizing image display.
Chương 3: Cơ sở lý thuyết
Redux
Redux là thư viện JavaScript giúp quản lý trạng thái ứng dụng hiệu quả Dựa trên kiến trúc Flux do Facebook phát triển, Redux thường được kết hợp hoàn hảo với React, bao gồm cả React Js và React Native.
Tailwind CSS
Tailwind CSS is a utility-first CSS framework similar to Bootstrap, offering a variety of built-in classes It includes numerous classes that encompass different and essential CSS properties, allowing for easy extension and creation of new classes using its existing ones.
Trước đây, khi sử dụng Bootstrap Framework, các thành phần trên website thường có cấu trúc chung, khiến cho các website sử dụng Bootstrap trông khá giống nhau Để tùy biến giao diện theo ý muốn, người dùng phải đầu tư nhiều thời gian và kết hợp với CSS thuần để tạo ra thiết kế độc đáo cho website.
Khi sử dụng Tailwind, bạn có thể tận dụng hệ thống các class để thực hiện các nhiệm vụ nhỏ khác nhau, từ đó tự do kết hợp chúng nhằm tạo ra giao diện theo ý muốn.
Chương 3: Cơ sở lý thuyết của mình Thay vì tự tạo style trên file CSS, giờ đây, với Tailwind ta chỉ cần khai báo class là sẽ có ngay kết quả mà gần như không cần phải ra khỏi file html của mình.
Stripe
Stripe là nền tảng xử lý thanh toán trực tuyến phổ biến, đặc biệt trong ứng dụng web và di động Nó cung cấp bộ API mạnh mẽ, giúp doanh nghiệp dễ dàng tích hợp chức năng thanh toán an toàn Với Stripe, doanh nghiệp có thể chấp nhận thẻ tín dụng, ví điện tử và nhiều phương thức thanh toán khác từ toàn cầu.
Stripe hỗ trợ tích hợp thanh toán dễ dàng với các thư viện và SDK cho nhiều ngôn ngữ lập trình và framework như JavaScript, Ruby, Python, PHP, và Java, giúp quá trình tích hợp vào ứng dụng trở nên nhanh chóng và thuận tiện.
Stripe đảm bảo bảo mật tối ưu với việc tuân thủ các tiêu chuẩn cao nhất trong ngành thanh toán, bao gồm PCI DSS Level 1, nhằm bảo vệ an toàn thông tin thanh toán của khách hàng.
Stripe cung cấp nhiều tính năng phong phú như thanh toán một lần, thanh toán định kỳ, quản lý đăng ký và các giải pháp chống gian lận, giúp doanh nghiệp tối ưu hóa quy trình thanh toán hiệu quả.
PayPal
PayPal là dịch vụ thanh toán trực tuyến hàng đầu của Mỹ, cho phép các trang thương mại điện tử thực hiện giao dịch nhận và gửi tiền trên internet Với nền tảng thanh toán toàn cầu, PayPal cung cấp SDK cho việc tích hợp trên các thiết bị Android và iOS Ngoài ra, PayPal còn hỗ trợ API, cho phép lập trình viên sử dụng với nhiều ngôn ngữ như PHP, Python, Java, và Node.js thông qua PayPal REST API.
Chương 3: Cơ sở lý thuyết
Trong chương này, nhóm đã trình bày các công nghệ và framework được áp dụng trong dự án, bao gồm NextJS, Tailwind CSS, Redux, Spring Boot, PostgreSQL, Stripe và PayPal Phía client sử dụng NextJS, Tailwind CSS và Redux để tạo ra giao diện đẹp mắt và quản lý trạng thái hiệu quả, trong khi phía server sử dụng Spring Boot và PostgreSQL để xây dựng các API hiệu suất cao Các giải pháp thanh toán trực tuyến từ Stripe và PayPal cung cấp sự tin cậy và dễ dàng tích hợp Sự kết hợp này tạo nên một hệ thống web hiện đại, hiệu năng cao và mang đến trải nghiệm liền mạch cho người dùng.
PHÂN TÍCH VÀ MÔ HÌNH HÓA YÊU CẦU
Lược đồ chức năng hệ thống
Đặc tả Usecase
Description Người dùng đăng ký tài khoản sử dụng cho sàn đấu giá Sneakery
Post-Condition Người dùng tạo tài khoản thành công và đăng nhập vào website
Chương 4: Phân tích và mô hình hóa yêu cầu
1 Người dùng click vào nút Đăng ký tại trang chủ
2 Hệ thống hiển thị giao diện Đăng ký tài khoản
3 Người dùng điền tên, số điện thoại, email, mật khẩu, xác nhận mật khẩu và nhấn Đăng ký [E1], [E2]
4 Hệ thống hiện checkbox reCAPTCHA
5 Người dùng nhấn vào checkbox
6 Hệ thống hiển thị giao diện xác nhận OTP
7 Người dùng nhập mã OTP đã được gửi qua số điện thoai
8 Hiển thị thông báo đăng ký thành công Alternative flow
E1 Nhập thông tin sai định dạng E1.1 Hệ thống thông báo cập nhật lại thông tin E1.2 Tiếp tục với bước 3 của main flow
E2 Email / Số điện thoại đã tồn tại E2.1 Hệ thống thông báo thông tin đăng ký đã tồn tại E2.2 Tiếp tục với bước 3 của main flow
Bảng 4 Usecase Đăng ký 4.2.2 Usecase Đăng nhập
Description Người dùng đăng nhập vào website với tài khoản đã đăng ký Actor Người dùng, Admin
Pre-Condition Tài khoản người dùng được tạo sẵn
Post-Condition Đăng nhập thành công
Giao diện sẽ quay lại trang chủ với tài khoản đã được đăng nhập
1 Người dùng click vào nút Đăng nhập tại trang chủ
2 Hệ thống hiển thị giao diện Đăng nhập
3 Người dùng nhập Email, mật khẩu và nhấn Đăng nhập [E1]
Chương 4: Phân tích và mô hình hóa yêu cầu
4 Hệ thống điều hướng đến trang chủ Alternative flow
E1 Thông tin đăng nhập sai E1.1 Hệ thống thông báo lỗi đăng nhập E1.2 Nhập lại thông tin đăng nhập
Bảng 5 Usecase Đăng nhập 4.2.3 Usecase Đăng xuất
Description Người dùng muốn đăng xuất website với tài khoản đã đăng nhập trước đó Actor Người dùng, Admin
Pre-Condition Người dùng đang đăng nhập vào hệ thống
Post-Condition Hệ thống ghi nhận người dùng đăng xuất khỏi hệ thống thành công
1 Người dùng nhấn vào avatar người dùng
2 Nhấn vào nút Đăng xuất
3 Hệ thống hiển thị giao diện xác nhận đăng xuất
4 Người dùng nhấn xác nhận
5 Hệ thống điều hướng về trang chủ Alternative flow
Description Người dùng không nhớ mật khẩu của tài khoản và thực hiện thay đổi mật khẩu để sử dụng mật khẩu mới cho việc đăng nhập
Chương 4: Phân tích và mô hình hóa yêu cầu
Để thay đổi mật khẩu, người dùng cần có tài khoản đã được tạo sẵn và phải đảm bảo rằng họ đã đăng xuất khỏi hệ thống hoặc phiên đăng nhập đã hết hạn Sau khi thực hiện các bước cần thiết, thông báo sẽ hiển thị rằng việc thay đổi mật khẩu đã thành công.
1 Người dùng click vào nút Đăng nhập
2 Hệ thống hiển thị giao diện Đăng nhập
3 Người dùng chọn Quên mật khẩu trên màn hình Đăng nhập
4 Người dùng nhập số điện thoại đã đăng ký và bấm xác nhận [E1]
5 Người dùng truy cập tin nhắn trên điện thoại và nhập mã OTP được gửi qua tin nhắn [E2]
6 Người dùng nhập mật khẩu mới
7 Hệ thống thông báo đặt lại mật khẩu thành công Alternative flow
E1 Số điện thoại không hợp lệ E1.1 Hệ thống thông báo Số điện thoại vừa nhập không hợp lệ E1.2 Tiếp tục với bước 4 của main flow
E2 Người dùng nhập mã xác nhận không khớp E1.1 Hệ thống thông báo mã xác nhận không chính xác E1.2 Tiếp tục với bước 5 của main flow
Bảng 7 Usecase Quên mật khẩu
4.2.5 Usecase Xem thông tin tài khoản
Name Xem thông tin tài khoản
Description Người dùng xem thông tin tài khoản Sneakery của bản thân
Pre-Condition Người dùng đã đăng nhập vào hệ thống
Post-Condition Hiển thị thông tin tài khoản: Email, Tên người dùng và Số điện thoại Main flow 1 Người dùng nhấn vào avatar người dùng ở góc phải màn hình
2 Người dùng nhấn vào tab Thông tin tài khoản
Chương 4: Phân tích và mô hình hóa yêu cầu
3 Hệ thống hiển thị giao diện Quản lý thông tin tài khoản Alternative flow
Bảng 8 Usecase Xem thông tin tài khoản
Description Người dùng đăng tải thông tin của sản phẩm lên sàn đấu giá
Pre-Condition Người dùng đã đăng nhập vào Website
Post-Condition Hiển thị sang màn hình Tạo thông tin đấu giá
1 Người dùng click vào nút Đăng sản phẩm tại trang chủ
2 Hệ thống hiển thị giao diện Chọn danh mục sản phẩm
3 Người dùng chọn danh mục và bấm xác nhận [A1]
4 Hệ thống hiển thị giao diện Nhập thông tin sản phẩm [A2]
5 Người dùng nhập tên, thuộc tính và điền mô tả của sản phẩm
6 Người dùng bấm mũi tên để qua giao diện Tạo thông tin đấu giá
7 Hệ thống hiển thị giao diện Tạo thông tin đấu giá
A1.1 Người dùng bấm nút đóng hoặc dấu X để hủy đăng sản phẩm
A2 Thay đổi danh mục sản phẩm A2.1 Người dùng bấm icon Tag tại góc phải A2.2 Tiếp tục với bước 2 của main flow Exception flow
Bảng 9 Usecase Đăng sản phẩm
Chương 4: Phân tích và mô hình hóa yêu cầu
4.2.7 Usecase Tạo thông tin đấu giá
Name Tạo thông tin đấu giá
Description Người dùng tạo thông tin đấu giá cho sản phẩm được đăng
Pre-Condition Người dùng đã nhập thông tin sản phẩm cần đăng
Người dùng ở tại giao diện Tạo thông tin đấu giá Post-Condition Hiển thị giao diện Thanh toán phí đăng sản phẩm
1 Người dùng nhập các trường bắt buộc: giá khởi điểm, bước giá và chọn thời điểm kết thúc đấu giá [E1]
2 Người dùng nhập các trường tùy chọn: chặn bid snipping và đặt ngưỡng giá tối thiểu
3 Người dùng nhấn mũi tên để qua giao diện Chọn hình ảnh sản phẩm
4 Hệ thống hiển thị giao diện Chọn hình ảnh
5 Người dùng đăng tải ảnh thumbnail
6 Người dùng đăng các ảnh khác cho sản phẩm [E2]
7 Người dùng bấm mũi tên để qua giao diện Thanh toán phí đăng sản phẩm
8 Hệ thống hiển thị giao diện Thanh toán phí đăng sản phẩm Alternative flow
E1 Thời điểm kết thúc đấu giá trước thời điểm hiện tại
E1.1 Thông báo thời điểm kết thúc đấu giá phải diễn ra sau thời điểm hiện tại
E1.2 Tiếp tục với bước 2 của main flow E2 Kích thước ảnh quá lớn
E2.1 Hệ thống báo lỗi đăng ảnh không thành công và yêu cầu người dùng thử lại
E2.2 Tiếp tục với bước 6 của main flow Bảng 10 Usecase Tạo thông tin đấu giá
Chương 4: Phân tích và mô hình hóa yêu cầu
4.2.8 Usecase Thanh toán phí đăng sản phẩm
Name Thanh toán phí đăng sản phẩm
Description Người dùng thanh toán phí đăng cho sản phẩm
Pre-Condition Người dùng đăng sản phẩm và tạo thông tin đấu giá cho sản phẩm Post-Condition Thanh toán sản phẩm thành công
Sản phẩm xuất hiện trên sàn đấu giá
1 Người dùng đang ở giao diện Thanh toán phí đăng sản phẩm
2 Người dùng chọn phương thức Thanh toán qua PayPal [A1]
3 Người dùng nhấn nút Thanh toán
4 Hệ thống điều hướng đến giao diện đăng nhập của PayPal
5 Người dùng nhập tài khoản và mật khẩu PayPal và nhấn Log in
6 Hệ thống hiển thị giao diện xác nhận thanh toán
7 Người dùng xác nhận qua việc nhấn Continue to Review Order
8 Hệ thống điều hướng về Sneakery và thông báo thanh toán thành công
A1 Thanh toán qua thẻ ngân hàng A1.1 Người dùng chọn Thanh toán qua Visa, Mastercard,… A1.2 Người dùng nhấn nút Thanh toán
A1.3 Hệ thống điều hướng đến giao diện thanh toán Stripe A1.4 Người dùng nhập số thẻ, ngày hết hạn và số CVV A1.5 Người dùng nhấn thanh toán
A1.6 Hệ thống điều hướng về Sneakery và thông báo thanh toán thành công
Bảng 11 Usecase Thanh toán phí đăng sản phẩm
Chương 4: Phân tích và mô hình hóa yêu cầu
4.2.9 Usecase Tìm kiếm sản phẩm
Name Tìm kiếm sản phẩm
Description Người dùng thực hiện tìm kiếm sản phẩm mong muốn
Post-Condition Giao diện hiển thị danh sách sản phẩm thỏa chuỗi ký tự tìm kiếm
1 Người dùng nhấn vào Thanh tìm kiếm ở đầu trang
2 Người dùng nhập từ khóa sản phẩm muốn tìm kiếm
3 Hệ thống hiển thị danh sách sản phẩm thỏa mãn chuỗi ký tự tìm kiếm theo thời gian thực
4 Người dùng chọn xem thêm để mở rộng kết quả tìm kiếm Alternative flow
Bảng 12 Usecase Tìm kiếm sản phẩm theo từ khóa
4.2.10 Usecase Lọc sản phẩm theo đặc điểm
Name Lọc sản phẩm theo đặc điểm
Description Người dùng lọc sản phẩm theo tiêu chí mong muốn
Post-Condition Hiển thị danh sách sản phẩm phù hợp với các các tiêu chí đã chọn
1 Người dùng vào giao diện hiển thị danh sách sản phẩm
2 Người dùng click chọn các tiêu chí như theo danh mục, theo giá
3 Hệ thống hiển thị danh sách sản phẩm thỏa mãn các tiêu chí người dùng lựa chọn
Chương 4: Phân tích và mô hình hóa yêu cầu
Bảng 13 Usecase Lọc sản phẩm theo đặc điểm
Description Người dùng thực hiện ra giá trên sản phẩm họ muốn mua
Pre-Condition Người dùng đã đăng nhập vào Website
Post-Condition Người dùng đấu giá sản phẩm thành công
Hệ thống hiển thị lần ra giá trên Lịch sử đấu giá của sản phẩm
1 Người dùng truy cập vào trang Chi tiết sản phẩm
2 Người dùng nhấn nút Đấu giá ngay
3 Người dùng nhập mức ra giá mong muốn
4 Người dùng nhấn nút Xác nhận
5 Hệ thống kiểm tra lượt ra giá [E1] [E2]
6 Hệ thống so sánh lịch sử đấu giá và giá được nhập [A1] [A2] [A3]
7 Hệ thống hiển thị ra giá thành công [A4]
8 Hệ thống cập nhật lịch sử đấu giá
Sản phẩm chưa có người ra giá trước đây, với hệ thống cập nhật giá hiện tại là giá khởi điểm và người ra giá là người giữ giá Giá đặt hiện tại chưa phải là giá cao nhất trong lịch sử đấu giá, vì hệ thống chỉ cập nhật giá đặt vào Tuy nhiên, nếu giá đặt trở thành giá cao nhất trong lịch sử đấu giá, điều này sẽ được ghi nhận trong hệ thống.
A3.1 Hệ thống cập nhật giá hiện tại là giá cao nhất của người chơi trước (giá vừa đủ thắng)
Hệ thống cập nhật người ra giá sẽ giữ giá cho sản phẩm, trong khi người đăng có thể cài đặt chế độ chặn đấu giá phút chót Trước khi phiên đấu giá kết thúc 3 phút, nếu có sự xuất hiện của người ra giá mới, hệ thống sẽ tự động cập nhật thông tin để đảm bảo tính công bằng và minh bạch trong quá trình đấu giá.
1 lượt đấu giá, hệ thống kéo dài thời gian đấu giá thêm 1 phút nữa
Chương 4: Phân tích và mô hình hóa yêu cầu
A4.2 Hệ thống cập nhật thời gian kếu thúc đấu giá thêm 1 phút
E1 Lượt ra giá thấp hơn giá hiện tại
E1.1 Hệ thống hiển thị thông báo “Vui lòng nhập bid cao hơn mức bid hiện tại cộng với bước giá ”
E1.2 Tiếp tục với bước 3 của main flow E2 Người đăng thực hiện đấu giá
E2.1 Hệ thống thông báo lỗi “Người bán không được phép tham gia đấu giá”
4.2.12 Usecase Cập nhật địa chỉ
Name Cập nhật địa chỉ
Description Người dùng cập nhật địa chỉ nhận hàng
Pre-Condition Người dùng đã đăng nhập vào website
Post-Condition Cập nhật địa chỉ nhận hàng thành công
Main flow 1 Người dùng nhấn vào avatar người dùng ở góc trên bên phải
2 Nhấn vào tab Cài đặt địa chỉ
3 Người dùng chọn quận, phường và số nhà, tên đường
4 Người dùng bấm Xác nhận [A1]
5 Hệ thống thông báo cập nhật địa chỉ thành công Alternative flow A1 Hủy cập nhật địa chỉ
A1.1 Người dùng bấm nút Đóng để hủy cập nhật địa chỉ Exception flow
Bảng 15 Usecase Cập nhật địa chỉ
Chương 4: Phân tích và mô hình hóa yêu cầu
4.2.13 Usecase Xem sản phẩm đã đăng
Name Xem sản phẩm đã đăng
Description Người dùng xem các sản phẩm bản thân đăng trên sàn
Pre-Condition Người dùng đã đăng nhập vào hệ thống
Post-Condition Giao diện hiển thị danh sách sản phẩm được bản thân đăng
Main flow 1 Người dùng nhấn vào avatar người dùng ở góc phải màn hình
2 Người dùng chọn tab Sản phẩm đã đăng
2 Hệ thống hiển thị danh sách các sản phẩm được người dùng đăng kèm trạng thái đấu giá
Bảng 16 Usecase Xem sản phẩm đã đăng
4.2.14 Usecase Thanh toán phí giao dịch
Name Thanh toán phí giao dịch
Description Người đăng thanh toán phí giao dịch thành công cho mỗi sản phẩm có người chiến thắng
Người dùng ở tại giao diện xem Sản phẩm đã đăng Sản phẩm cần thanh toán phí đã kết thúc phiên đấu giá và xuất hiện người chiến thắng
Post-Condition Hệ thống hiển thị thanh toán phí giao dịch thành công
1 Người dùng chọn sản phẩm cần thanh toán
2 Người dùng chọn nút Thanh toán phí tại ô sản phẩm tương ứng
3 Hệ thống hiển thị giao dịch thanh toán sản phẩm
4 Người dùng chọn phương thức Thanh toán qua PayPal [A1]
5 Người dùng nhấn nút Thanh toán
Chương 4: Phân tích và mô hình hóa yêu cầu
6 Hệ thống điều hướng đến giao diện đăng nhập của PayPal
7 Người dùng nhập tài khoản và mật khẩu PayPal và nhấn Log in
8 Hệ thống hiển thị giao diện xác nhận thanh toán
9 Người dùng xác nhận qua việc nhấn Continue to Review Order
10 Hệ thống điều hướng về trang Sneakery
A1 Thanh toán qua thẻ ngân hàng A1.1 Người dùng chọn Thanh toán qua Visa, Mastercard,… A1.2 Người dùng nhấn nút Thanh toán
A1.3 Hệ thống điều hướng đến giao diện thanh toán Stripe A1.4 Người dùng nhập số thẻ, ngày hết hạn và số CVV A1.5 Người dùng nhấn thanh toán
A1.6 Hệ thống điều hướng về trang Sneakery Exception flow
Bảng 17 Usecase Thanh toán sản phẩm đã thắng
Description Người dùng thêm một bình luận mới đối với một sản phẩm
Pre-Condition Người dùng đã đăng nhập vào website
Post-Condition Bình luận người dùng được hiển thị tại giao diện Chi tiết sản phẩm
1 Người dùng vào trang Chi tiết sản phẩm
2 Người dùng nhập nội dung bình luận vào phần textbox “Nhập bình luận của bạn” dưới sản phẩm muốn thêm bình luận
3 Người dùng nhấn nút Đăng [A1]
Exception flow A1 Nội dung bình luận trống
A1.1 Hệ thống ẩn nút đăng bình luận
Chương 4: Phân tích và mô hình hóa yêu cầu
4.2.16 Usecase Phản hồi bình luận
Name Phản hồi bình luận
Description Người dùng phản hồi một bình luận bất kì đã chọn
Pre-Condition Người dùng đã đăng nhập vào website
Tồn tại bình luận mà người dùng muốn phản hồi Post-Condition 1 Người dùng vào trang Chi tiết sản phẩm
2 Người dùng nhấn nút Trả lời dưới bình luận muốn phản hồi
3 Người dùng nhập nội dung muốn phản hồi vào phần textbox
“Nhập bình luận của bạn”
4 Người dùng nhấn nút Đăng Main flow
A1 Dừng phàn hổi bình luận A1.1 Người dùng nhấn nút Đóng hệ thống ẩn giao diện thêm bình luận phản hồi Exception flow
3.1 Nếu nội dung bình luận trống, hệ thống sẽ hiển thị “Không được để trống phần comment”
Bảng 19 Usecase Phản hồi bình luận
4.2.17 Usecase Đánh giá người đăng
Name Đánh giá người đăng
Description Người dùng chiến thắng phiên đấu giá để lại đánh giá về người đăng sản phẩm
Pre-Condition Người dùng đã đăng nhập vào website
Chương 4: Phân tích và mô hình hóa yêu cầu
Người dùng chiến thắng sản phẩm đấu giá Post-Condition Hiển thị đánh giá trên profile người đăng
1 Người dùng nhấn vào avatar người dùng ở góc phải màn hình
2 Người dùng chọn tab Sản phẩm đã thắng
3 Hệ thống hiển thị danh sách các sản phẩm người dùng đã thắng
4 Người dùng nhấn vào biểu tượng ngôi sao để tiến hành đánh giá [A1]
5 Người dùng chọn cảm xúc Hài lòng hoặc Không hài lòng và để lại đánh giá chi tiết
7 Hệ thống hiển thị đánh giá thành công Alternative flow
Bảng 20 Usecase Đánh giá người đăng
4.2.18 Usecase Xem thống kê doanh thu và sản phẩm
Name Xem thống kê doanh thu và sản phẩm
Description Admin muốn xem thống kê doanh thu và sản phẩm trên toàn hệ thống
Pre-Condition Admin đăng nhập vào admin site
Post-Condition Hệ thống hiển thị doanh thu và số lượng sản phẩm theo từng danh mục Main flow 1 Admin đang ở trang Tổng quan thông tin của sàn
2 Hệ thống hiển thị thống kê doanh thu của sàn và số lượng sản phẩm có trên sàn
Chương 4: Phân tích và mô hình hóa yêu cầu
Bảng 21 Usecase Thống kê doanh thu và sản phẩm
4.2.19 Usecase Khóa tài khoản người dùng
Name Khóa tài khoản người dùng
Description Admin muốn khóa tài khoản người dùng
Pre-Condition Admin đã đăng nhập vào admin site
Post-Condition Admin khóa tài khoản người dùng thành công
1 Admin chọn Quản lý người dùng
2 Hệ thống hiển thị danh sách người dùng cùng với trạng thái tài khoản người dùng
3 Admin chọn Hành động Vô hiệu hóa tài khoản Alternative flow
Bảng 22 Usecase Khóa tài khoản người dùng
4.2.20 Usecase Tạo danh mục mới
Name Tạo danh mục mới
Description Admin muốn tạo danh mục mới
Pre-Condition Admin đã đăng nhập vào admin site
Post-Condition Hệ thống hiển thị thông báo tạo danh mục thành công
1 Admin chọn mục Quản lý danh mục
2 Hệ thống hiển thị danh sách các danh mục hiện có
3 Admin chọn Hành động Thêm danh mục
4 Admin nhập tên danh mục
5 Admin chọn biểu tượng + để thêm các trường danh mục
6 Admin nhập tên trường và kiểu dữ liệu
Chương 4: Phân tích và mô hình hóa yêu cầu
Alternative flow A1 Hủy thêm danh mục
A1.1 Người dùng chọn Đóng để hủy thêm danh mục Exception flow
Bảng 23 Usecase Tạo danh mục mới
Name Tạo danh mục mới
Description Admin muốn tạo danh mục mới
Pre-Condition Admin đã đăng nhập vào admin site
Post-Condition Hệ thống hiển thị xóa danh mục thành công
Main flow 1 Admin chọn mục Quản lý danh mục
2 Hệ thống hiển thị danh sách các danh mục hiện có
3 Admin chọn hành động Xóa danh mục [A1]
Alternative flow A1 Danh mục đã có sản phẩm
A1.1 Hệ thống thông báo lỗi không thể xóa do tồn tại sản phẩm thuộc danh mục
Bảng 24 Usecase Xóa danh mục
Chương 4: Phân tích và mô hình hóa yêu cầu
Lược đồ Lớp
Chương 4: Phân tích và mô hình hóa yêu cầu
Lược đồ Tuần tự (Sequence diagram)
Chương 4: Phân tích và mô hình hóa yêu cầu
Chương 4: Phân tích và mô hình hóa yêu cầu
Hình 8 Sequence Quên mật khẩu
Chương 4: Phân tích và mô hình hóa yêu cầu
Hình 9 Sequence Đăng sản phẩm
Chương 4: Phân tích và mô hình hóa yêu cầu
4.4.5 Sequence Tạo thông tin đấu giá
Hình 10 Sequence Tạo thông tin đấu giá
Chương 4: Phân tích và mô hình hóa yêu cầu
4.4.6 Sequence Thanh toán phí đăng sản phẩm
Hình 11 Sequence Thanh toán phí đăng sản phẩm
Chương 4: Phân tích và mô hình hóa yêu cầu
4.4.7 Sequence Tìm kiếm sản phẩm
Hình 12 Sequence Tìm kiếm sản phẩm
Chương 4: Phân tích và mô hình hóa yêu cầu
Chương 4: Phân tích và mô hình hóa yêu cầu
Chương 4: Phân tích và mô hình hóa yêu cầu
4.4.10 Sequence Đánh giá người đăng
Hình 15 Sequence Đánh giá người đăng ss
Chương 4: Phân tích và mô hình hóa yêu cầu
4.4.11 Sequence Tạo danh mục mới
Hình 16 Sequence Tạo danh mục mới
Chương 5: Thiết kế hệ thống
THIẾT KẾ HỆ THỐNG
Lược đồ Cơ sở dữ liệu
Hình 17 Lược đồ Cơ sở dữ liệu
Chương 5: Thiết kế hệ thống
5.1.2 Mô tả danh sách thực thể
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 username String Tên người dùng
5 phoneNumber String Số điện thoại
6 isActive Boolean Trạng thái kích hoạt của tài khoản
7 roles Array Vai trò người dùng
8 createdDate LocalDateTime Thời gian tạo mới
9 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 25 Mô tả thuộc tính bảng User 5.1.2.2 Table Role
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 name String Tên vai trò
3 createdDate LocalDateTime Thời gian tạo mới
4 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 26 Mô tả thuộc tính bảng Role 5.1.2.3 Table Address
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
3 cityCode Integer Mã thành phố
Chương 5: Thiết kế hệ thống
7 createdDate LocalDateTime Thời gian tạo mới
8 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 27 Mô tả thuộc tính bảng Address 5.1.2.4 Table Category
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 name String Tên danh mục
3 property Map Thuộc tính của danh mục
4 products Array Sản phẩm thuộc danh mục
5 createdDate LocalDateTime Thời gian tạo mới
6 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 28 Mô tả thuộc tính bảng Category 5.1.2.5 Table Product
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 name String Tên sản phẩm
4 properties Map Thuộc tính sản phẩm
5 images Array< Object > Hình ảnh sản phẩm
6 description String Mô tả sản phẩm
9 createdDate LocalDateTime Thời gian tạo mới
10 lastModifiedDate LocalDateTime Thời gian cập nhật
Chương 5: Thiết kế hệ thống
Bảng 29 Mô tả thuộc tính bảng Product 5.1.2.6 Table Bid
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 closingDateTime LocalDateTime Thời gian kết thúc đấu giá
3 priceStart Long Giá khởi điểm
6 holder Object Người giữ đấu giá
7 reservePrice Long Ngưỡng giá tối thiểu
8 isBidSnipping Boolean Có sử dụng Bid Snipping hay không
9 numberOfBids Integer Số lượng đấu giá
10 bidOutcome Enum Kết quả đấu giá
11 sellerPaymentStatus Enum Trạng thái thanh toán của người bán
12 winnerPaymentStatus Enum Trạng thái thanh toán của người thắng
14 bidHistories Array Lịch sử đấu giá
15 transactions Array Các giao dịch
16 createdDate LocalDateTime Thời gian tạo mới
17 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 30 Mô tả thuộc tính bảng Bid 5.1.2.7 Table BidHistory
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 maxPrice Long Giá tối đa
Chương 5: Thiết kế hệ thống
3 actualPrice Long Giá thực tế
4 status Enum Trạng thái đấu giá
5 bid Array Đấu giá
6 user Object Người dùng liên kết
7 createdDate LocalDateTime Thời gian tạo mới
8 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 31 Mô tả thuộc tính bảng BidHistory 5.1.2.8 Table Media
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
3 isThumbnail Boolean Có phải ảnh đại diện hay không
4 createdDate LocalDateTime Thời gian tạo mới
5 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 32 Mô tả thuộc tính bảng Media 5.1.2.9 Table Transaction
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
3 type Enum Loại thanh toán
6 createdDate LocalDateTime Thời gian tạo mới
7 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 33 Mô tả thuộc tính bảng Transaction
Chương 5: Thiết kế hệ thống
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
2 commentText String Nội dung bình luận
5 parentComment Object Bình luận cha
6 replies Array Các phản hồi
7 createdDate LocalDateTime Thời gian tạo mới
8 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 34 Mô tả thuộc tính bảng Comment 5.1.2.11 Table Feedback
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
3 feedbackText String Nội dung phản hồi
6 winner Object Người thắng đấu giá
7 createdDate LocalDateTime Thời gian tạo mới
8 lastModifiedDate LocalDateTime Thời gian cập nhật
Bảng 35.Mô tả thuộc tính bảng Feedback
Chương 5: Thiết kế hệ thống
Thiết kế giao diện
Hình 21 Giao diện Đăng ký
STT Đối tượng Định dạng Ý nghĩa
1 Khung nhập Tên đầy đủ Input Nơi nhập tên người dùng
2 Khung nhập số điện thoại
Input Nơi nhập số điện thoại người dùng
3 Khung nhập Email Input Nơi nhập email người dùng
4 Khung nhập Mật khẩu Input Nơi nhập mật khẩu người dùng
5 Khung nhập Xác nhận mật khẩu
Input Nơi người dùng nhập lại mật khẩu
6 Nút nhấn Đăng ký Button Đăng ký vào hệ thống
7 Nút nhấn Thoát Button Thoát khỏi giao diện Đăng ký
Chương 5: Thiết kế hệ thống
Bảng 36 Mô tả giao diện Đăng ký 5.2.2 Giao diện Đăng nhập
Hình 22 Giao diện Đăng nhập
Bảng 37 Mô tả giao diện Đăng nhập
5.2.3 Giao diện quên mật khẩu
STT Đối tượng Định dạng Ý nghĩa
1 Khung nhập Email Input Nơi nhập email người dùng
2 Khung nhập Mật khẩu Input Nơi nhập mật khẩu người dùng
3 Nút nhấn Đăng nhập Button Đăng nhập người dùng vào hệ thống
4 Nút nhấn Thoát Button Thoát khỏi giao diện Đăng nhập
Chương 5: Thiết kế hệ thống
Hình 23 Giao diện Đăng nhập
Bảng 38 Mô tả giao diện Quên mật khẩu
STT Đối tượng Định dạng Ý nghĩa
1 Khung nhập số điện thoại
Input Nơi nhập số điện thoại người dùng
2 Nút nhấn Xác nhận Button Xác nhận quên mật khẩu
4 Nút nhấn Thoát Button Thoát khỏi giao diện quên mật khẩu
Chương 5: Thiết kế hệ thống
Hình 24 Giao diện Trang chủ
Bảng 39 Mô tả giao diện Trang chủ
STT Đối tượng Định dạng Ý nghĩa
1 Logo Sneakery Icon Điều hướng đến trang chủ
2 Khung tìm kiếm Input Tìm kiếm sản phẩm
3 Danh mục sản phẩm Button Hiển thị các danh mục sản phẩm
4 Nút nhất Đăng ký Button Hiển thị giao diện Đăng ký
5 Nút nhấn Đăng nhập Button Hiển thị giao diện Đăng nhập
6 Nút nhấn mua ngay Button Vào trang danh sách sản phẩm
7 Nút nhấn đăng sản phẩm Button Vào giao diện đăng sản phẩm
Chương 5: Thiết kế hệ thống
5.2.5 Giao diện Danh sách sản phẩm và Lọc sản phẩm
Hình 25 Giao diện trang Danh sách sản phẩm và Lọc sản phẩm
Bảng 40 Mô tả giao diện Danh sách sản phẩm và Lọc sản phẩm
STT Đối tượng Định dạng Ý nghĩa
1 Lọc sản phẩm theo danh mục
Lọc ra sản phẩm theo danh mục cho trước
2 Lọc sản phẩm theo giá Slider Lọc ra sản phẩm nằm trong phạm vi giá
3 Phân trang Button Chọn trang hiển thị sản phẩm
Sắp xếp sản phẩm theo các tiêu chí: Giá cao đến thấp, Giá thấp đến cao, Mới nhất, Bảng chữ cái
5 Danh sách sản phẩm Product
Hiển thị các sản phẩm thỏa tiêu chí khi Lọc
Chương 5: Thiết kế hệ thống
5.2.6 Giao diện Chi tiết sản phẩm
Hình 26 Giao diện Chi tiết sản phẩm
Chương 5: Thiết kế hệ thống
STT Đối tượng Định dạng Ý nghĩa
1 Ảnh sản phẩm Carousel Carousel hiển thị ảnh của sản phẩm được chọn
2 Các ảnh khác của sản phẩm
Button Chọn ảnh để hiển thị trên carousel
3 Thông tin đấu giá của sản phẩm
Text Các thông tin của phiên đấu giá như tên sản phẩm, giá khởi điểm, bước giá
4 Nút đấu giá ngay Button Mở ra giao diện để người dùng nhập mức ra giá mong muốn
5 Các hình thức thanh toán
Image Mô tả các hình thức thanh toán của sản phẩm
6 Các lượt đấu giá gần đây
Text Liệt kê các lượt ra giá gần nhất cho sản phẩm
7 Xem thêm lượt đấu giá Button Hiển thị đầy đủ các lượt đấu giá của sản phẩm
8 Các thông tin khác Text Các thông tin đặc trưng của sản phẩm
9 Mô tả Text Mô tả của sản phẩm ( Nếu có )
10 Bình luận về sản phẩm Text Mục bình luận về sản phẩm
11 Thông tin về bình luận Text Thông tin về ngày bình luận và nội dung bình luận
12 Hành động về bình luận Button Sửa, xóa bình luận
13 Khung nhập bình luận mới
Text Input Cho phép người dùng nhập bình luận mới
14 Nút đăng bình luận Button Đăng bình luận đã nhập
15 Section sản phẩm tương tự
Text Section liệt kê các sản phẩm tương tự
16 Sản phẩm tương tự Card Thông tin về một sản phẩm tương tự
Chương 5: Thiết kế hệ thống
Bảng 41 Mô tả giao diện Chi tiết sản phẩm
5.2.8 Giao diện Đăng sản phẩm
Chương 5: Thiết kế hệ thống
Hình 27 Giao diện Đăng sản phẩm
STT Đối tượng Định dạng Ý nghĩa
1 Nút thanh đổi danh mục Button Cho phép người dùng thay đổi danh mục của sản phẩm
2 Khung nhập tên sản phẩm
Input Nơi nhập tên của sản phẩm
3 Khung nhập, chọn các thuộc tính cho sản phẩm
Dropdown Select, Input, Radio Button
Nơi chọn hoặc nhập các thuộc tính của sản phẩm
4 Khung nhập mô tả của sản phẩm
Input Nơi nhập mô tả về sản phẩm
5 Nút sang bước kế tiếp Button Sang bước kế tiếp của quá trình đăng sản phẩm
Chương 5: Thiết kế hệ thống
6 Khung nhập giá khởi điểm
Input Nơi nhập giá khởi điểm cho sản phẩm
7 Khung nhập ngày kết thúc đấu giá
Date picker Nơi nhập chọn thời điểm kết thúc phiên đấu giá
Input Nơi nhập reserve price mà người đăng mong muốn
9 Khung nhập bước giá Input Nơi nhập bước giá của sản phẩm
10 Nút bật / tắt chặn bid sniping
Radio button Nơi người đăng có thể chọn bật/tăt tính năng chặn bid sniping
11 Nút quay lại bước trước Button Quay lại bước trước đó
12 Nút đến bước tiếp theo Button Sang bước kế tiếp của quá trình đăng sản phẩm
13 Khung chọn thumbnail cho sản phẩm
Image picker Cho phép người dùng chọn thumbnail cho sản phẩm từ máy tính của họ
14 Khung chọn các ảnh khác cho sản phẩm
Cho phép người dùng chọn các ảnh khác cho sản phẩm từ máy tính của họ
15 Nút quay lại bước trước Button Quay lại bước trước đó
16 Nút đến bước tiếp theo Button Sang bước kế tiếp của quá trình đăng sản phẩm
17 Nút cập nhật Button Nút cập nhật địa chỉ giao hàng
18 Nút chọn phương thức thanh toán là Paypal
Button Chọn Paypal làm phương thức thanh toán cho phí đăng sản phẩm
19 Nút chọn phương thức thanh toán là Stripe
Button Chọn Stripe làm phương thức thanh toán cho phí đăng sản phẩm
20 Nút “Quay lại” Button Quay lại bước trước
21 Nút “Thanh toán” Button Bắt đầu thanh toán phí đăng sản phẩm
22 Thông tin thanh toán Text Mô tả thông tin sản phẩm cần thanh toán phí đăng
Chương 5: Thiết kế hệ thống
Bảng 42 Mô tả giao diện Đăng sản phẩm (Tiếp theo)
5.2.9 Giao diện Bình luận sản phẩm
Hình 28 Giao diện Bình luận sản phẩm
Bảng 43 Mô tả giao diện Bình luận sản phẩm
STT Đối tượng Định dạng Ý nghĩa
1 Nội dung bình luận Text Thể hiện người bình luận, ngày giờ bình luận và nội dung của bình luận
2 Các hành động trên bình luận
Các button Các nút cho phép người dùng có thể trả lời, xóa bình luận hoặc sửa bình luận
3 Khung nhập bình luận mới
Text Input Cho phép người dùng nhập bình luận mới
Nút đăng bình luận mới
Button Nút đăng bình luận mới
Chương 5: Thiết kế hệ thống
5.2.10 Giao diện Sản phẩm tương tự
Hình 39 Giao diện Sản phẩm tương tự
Bảng 44 Mô tả giao diện Sản phẩm tương tự
STT Đối tượng Định dạng Ý nghĩa
1 Nút sang trang trước Button Quay lại trang trước của các sản phẩm tương tự
2 Ảnh thumbnail của sản phẩm
Image Thể hiện hình ảnh thumbnail của sản phẩm
3 Thông tin của sản phẩm
Text Thể hiện các thông tin bao gồm tên, số lượt đấu giá và giá hiện tại của sản phẩm
4 Nút sang trang sau Button Sang trang tiếp theo của các sản phẩm tương tự
Chương 5: Thiết kế hệ thống
5.2.11 Giao diện Lịch sử đấu giá của sản phẩm
Hình 30 Giao diện Lịch sử đấu giá của sản phẩm
Chương 5: Thiết kế hệ thống
Bảng 45 Mô tả giao diện Lịch sử đấu giá của sản phẩm
STT Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện lịch sử đấu giá của sản phẩm
2 Tên người ra lượt đấu giá
Text Thể hiện tên người ra lượt đấu giá
3 Mức ra giá Text Thể hiện mức ra giá của người ra lượt đấu giá
4 Ngày ra giá Text Thể hiện ngày ra lượt đấu giá của người ra
5 Trạng thái Text Thể hiện trạng thái của lượt ra giá (
Thành công hoặc thất bại )
Chương 5: Thiết kế hệ thống
5.2.12 Giao diện Sản phẩm đã thắng
Hình 31 Giao diện Sản phẩm đã thắng
Chương 5: Thiết kế hệ thống
Bảng 46 Mô tả giao diện Lịch sử đấu giá của sản phẩm
STT Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện sản phẩm bạn đã thắng
2 Tên sản phẩm Text Thể hiện tên của sản phẩm
3 Thời điểm kết thúc phiên đấu giá
Text Thể hiện ngày, tháng, thời gian phiên đấu giá kết thúc
4 Giá khởi điểm Text Thể hiện giá khởi điểm của sản phẩm do người đăng đặt ra
5 Giá chiến thắng Text Thể hiện giá chiến thắng cuối cùng của phiên đấu giá
6 Thông báo bước tiếp theo
Text Thông báo bước tiếp theo rằng người đăng sẽ liên hệ trực tiếp để hoàn tất giao dịch
7 Nút đánh giá sản phẩm
Button Mở ra giao diện đánh giá điểm cho sản phẩm kèm với nội dung đánh giá
Chương 5: Thiết kế hệ thống
5.2.13 Giao diện Quản lý thông tin tài khoản
Hình 32 Giao diện Quản lý thông tin tài khoản
Bảng 47 Mô tả giao diện Xem thông tin tài khoản
STT Đối tượng Định dạng Ý nghĩa
1 Tên của bạn Input Xem tên của tài khoản
2 Email Input Xem email của tài khoản
3 Số điện thoại Input Xem thông tin số điện thoại của bạn
3 Đóng Button Nút đóng giao diện
Chương 5: Thiết kế hệ thống
5.2.14 Giao diện Quản lý địa chỉ
Hình 33 Giao diện Quản lý địa chỉ
STT Đối tượng Định dạng Ý nghĩa
Chọn quận của người dùng
Chọn phường của người dùng
3 Số nhà, tên đường Input Nhập số nhà, tên đường của người dùng
4 Nút đóng Button Đóng giao diện quản lý địa chỉ
5 Nút xác nhận Button Xác nhận cập nhật thông tin địa chỉ của người dùng
Chương 5: Thiết kế hệ thống
Bảng 48 Mô tả giao diện Quản lý địa chỉ
5.2.15 Giao diện Lịch sử đấu giá của bạn
Chương 5: Thiết kế hệ thống
Hình 34 Giao diện Lịch sử đấu giá của bạn
Bảng 49 Mô tả giao diện Lịch sử đấu giá của bạn
STT Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện lịch sử đấu giá của bạn
2 Tên sản phẩm Text Tên sản phẩm mà bạn đã đấu giá
3 Mức đặt Text Mức đặt mà bạn đã đưa ra
4 Thời điểm ra giá Text Thời điểm mà bạn đã ra mức đặt của mình cho sản phẩm
5 Trạng thái của lượt ra giá
Text Thể hiện sự thành công hay thất bại của lượt ra giá của bạn
Chương 5: Thiết kế hệ thống
5.2.16 Giao diện Sản phẩm đã đăng
Hình 35 Giao diện Sản phẩm đã đăng
Chương 5: Thiết kế hệ thống
Bảng 50 Mô tả giao diện Sản phẩm đã đăng
STT Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện sản phẩm người dùng đã đăng
2 Tên sản phẩm Text Tên sản phẩm mà người dùng đã đăng
3 Thời điểm kết thúc phiên
Text Thời điểm kết thúc phiên đấu giá mà người đăng đã chọn
4 Trạng thái phiên đấu giá
Text Trạng thái hiện tại của phiên đấu giá, đã kết thúc hay chưa, có hay không có người chiến thắng,
Text Trạng thái thanh toán phí đấu giá sau khi phiên kết thúc
6 Nút thanh toán phí đấu giá
Button Mở ra giao diện để người đăng có thể thanh toán phí đấu giá
Chương 5: Thiết kế hệ thống
5.2.17 Giao diện Đánh giá người bán
Hình 36 Giao diện Đánh giá người bán
STT Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện đánh giá người bán
2 Nút chọn hài lòng Button Chọn trạng thái hài lòng về sản phẩm
3 Nút chọn không hài lòng
Button Chọn trạng thái không hài lòng về sản phẩm
4 Khun đánh giá chi tiết
Text Input Nhập thêm đánh giá chi tiết về sản phẩm
5 Nút hủy bỏ Button Đóng giao diện, hủy bỏ hành động đánh giá
6 Nút xác nhận Button Xác nhận đánh giá và gửi đánh giá đi
Chương 5: Thiết kế hệ thống
Bảng 51 Mô tả giao diện Đánh giá người bán 5.2.18 Giao diện Modal Đăng xuất
Hình 37 Giao diện Đăng xuất
Bảng 52 Mô tả giao diện Đăng xuất
5.2.19 Giao diện Tổng quan thông tin (Admin)
STT Đối tượng Định dạng Ý nghĩa
1 Đóng Button Đóng giao diện đăng xuất
2 Xác nhận Button Đăng xuất người dùng ra khỏi hệ thống
Chương 5: Thiết kế hệ thống
Hình 38.Giao diện Tổng quan thông tin (Admin)
Chương 5: Thiết kế hệ thống
Bảng 53 Mô tả giao diện Tổng quan thông tin (Admin)
STT Đối tượng Định dạng Ý nghĩa
1 Admin Profile Button Hiện ra giao diện chức năng cho Admin
2 Tổng quan Button Navigate đến trang tổng quan thông tin trang web
3 Quản lý người dùng Button Navigate đến trang quản lý người dùng
4 Quản lý danh mục Button Navigate đến trang quản lý danh mục
5 Quản lý sản phẩm Button Navigate đến trang quản lý sản phẩm
6 Quản lý thanh toán Button Navigate đến trang quản lý thanh toán
7 Tổng lợi nhuận của sàn
Text Thể hiện tổng lợi nhuận của trang web
8 Lợi nhuận trung bình trên sản phẩm
Text Thể hiện lợi nhuận trung bình trên một sản phẩm của sàn
9 Lợi nhuận chiết khấu Text Thể hiện lợi nhuận từ phí chiết khấu sau khi sản phẩm có người chiến thắng
10 Lợi nhuận từ phí đăng
Text Thể hiện lợi nhuận từ phí đăng sản phẩm
11 Biểu đồ tỉ lệ doanh thu
Pie Chart Thể hiện tỉ lệ doanh thu từ việc thu phí chiết khấu và việc thu phí đăng sản phầm
12 Biểu đồ sản phẩm theo danh mục
Biểu đồ cột thể hiện số lượng sản phẩm theo từng danh mục đang có mặt trên sàn
Chương 5: Thiết kế hệ thống
5.2.20 Giao diện Quản lý danh mục (Admin)
Hình 39 Giao diện Quản lý danh mục(Admin)
Chương 5: Thiết kế hệ thống
Bảng 54 Mô tả giao diện Quản lý danh mục (Admin)
5.2.21 Giao diện Thêm danh mục (Admin)
T Đối tượng Định dạng Ý nghĩa
1 Admin Profile Button Hiện ra giao diện chức năng cho Admin
2 Nút thêm danh mục Button Mở ra giao diện thêm danh mục
3 Tổng quan Button Navigate đến trang tổng quan thông tin trang web
4 Quản lý người dùng Button Navigate đến trang quản lý người dùng
5 Quản lý danh mục Button Navigate đến trang quản lý danh mục
6 Quản lý sản phẩm Button Navigate đến trang quản lý sản phẩm
7 Quản lý thanh toán Button Navigate đến trang quản lý thanh toán
8 ID Text Thể hiện Id của danh mục trên hệ thống
9 Tên người dung Text Thể hiện tên danh mục trên hệ thống
10 Các trường Text Thể hiện các trường ( thuộc tính ) của danh mục
11 Hành động Button Mở ra giao diện các hành danh mục như xóa danh mục, chỉnh sửa danh mục
Chương 5: Thiết kế hệ thống
Hình 40 Giao diện Thêm danh mục (Admin)
Bảng 55 Mô tả giao diện Thêm danh mục (Admin)
5.2.22 Giao diện Quản lý các thuộc tính của danh mục (Admin)
T Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện thêm danh mục
2 Khung nhập tên danh mục
Input Cho phép nhập tên danh mục cần tạo
3 Tên trường Input Nhập tên trường ( thuộc tính ) của danh mục
Chọn kiểu dữ liệu cho trường ( thuộc tính ): Text, Number, Bolean
5 Hành động Button Cho phép xóa đi trường đã chọn trong danh mục
6 Nút thêm trường ( thuộc tính )
Button Thêm 1 trường, thuộc tính rỗng vào trong danh mục
7 Nút đóng giao diện Button Đóng giao diện thêm danh mục
8 Nút cập nhật Button Xác nhận cập nhật danh mục
Chương 5: Thiết kế hệ thống
T Đối tượng Định dạng Ý nghĩa
1 Nút đóng giao diện Button Đóng giao diện thêm danh mục
2 Khung nhập tên danh mục
Input Cho phép nhập tên danh mục cần tạo
3 Tên trường Input Nhập tên trường ( thuộc tính ) của danh mục
Chọn kiểu dữ liệu cho trường ( thuộc tính ):
Button Mở ra giao diện thêm các option cho trường ( không bắt buộc )
6 Hành động Button Cho phép xóa đi trường đã chọn trong danh mục
7 Nút thêm trường ( thuộc tính )
Button Thêm 1 trường, thuộc tính rỗng vào trong danh mục
8 Nút đóng giao diện Button Đóng giao diện thêm danh mục
9 Nút cập nhật Button Xác nhận cập nhật danh mục
Chương 5: Thiết kế hệ thống
Bảng 56 Mô tả giao diện quản lý thuộc tính của danh mục (Admin)
5.2.23 Giao diện Quản lý người dùng (Admin)
Hình 42.Giao diện Quản lý người dùng (Admin)
Chương 5: Thiết kế hệ thống
Bảng 57 Mô tả giao diện Quản lý người dùng (Admin)
T Đối tượng Định dạng Ý nghĩa
1 Admin Profile Button Hiện ra giao diện chức năng cho Admin
Button Chuyển qua trang dữ liệu khác của danh sách người dùng
3 Tổng quan Button Navigate đến trang tổng quan thông tin trang web
4 Quản lý người dùng Button Navigate đến trang quản lý người dùng
5 Quản lý danh mục Button Navigate đến trang quản lý danh mục
6 Quản lý sản phẩm Button Navigate đến trang quản lý sản phẩm
7 Quản lý thanh toán Button Navigate đến trang quản lý thanh toán
8 ID Text Thể hiện Id của người dung trên hệ thống
9 Tên người dung Text Thể hiện tên người dung trên hệ thống
10 Trạng thái Text Thể hiện trạng thái tài khoản của người dùng ( Đã bị khóa hoặc Đang hoạt động )
11 Hành động Button Mở ra giao diện các hành động trên người dung như kích hoạt tài khoản, khóa tài khoản,
Chương 5: Thiết kế hệ thống
5.2.21 Giao diện Quản lý sản phẩm (Admin)
Hình 43.Giao diện Quản lý sản phẩm (Admin)
Chương 5: Thiết kế hệ thống
Bảng 58 Mô tả giao diện Quản lý sản phẩm (Admin)
T Đối tượng Định dạng Ý nghĩa
1 Admin Profile Button Hiện ra giao diện chức năng cho Admin
2 Tổng quan Button Navigate đến trang tổng quan thông tin trang web
3 Quản lý người dùng Button Navigate đến trang quản lý người dùng
4 Quản lý danh mục Button Navigate đến trang quản lý danh mục
5 Quản lý sản phẩm Button Navigate đến trang quản lý sản phẩm
6 Quản lý thanh toán Button Navigate đến trang quản lý thanh toán
7 ID Text Thể hiện Id của người dung trên hệ thống
Button Chuyển qua trang dữ liệu khác của danh sách sản phẩm
9 Tên sản phẩm Text Thể hiện tên của sản phẩm trên hệ thống
10 Giá hiện tại Text Thể hiện giá hiện tại của sản phẩm trên phiên đấu giá
11 Hình ảnh Image Thể hiện thumbnail của sản phẩm
12 Người đang giữ giá Text Thể hiện người đang giữ giá trên phiên đấu giá của sản phẩm
13 Hành động Button Cho phép admin thực hiện các hành động trên sản phẩm
Chương 5: Thiết kế hệ thống
5.2.22 Giao diện Quản lý thanh toán(Admin)
Hình 44.Giao diện Quản lý thanh toán (Admin)
Chương 5: Thiết kế hệ thống
Bảng 59 Mô tả giao diện Quản lý thanh toán (Admin)
T Đối tượng Định dạng Ý nghĩa
1 Admin Profile Button Hiện ra giao diện chức năng cho Admin
2 Tổng quan Button Navigate đến trang tổng quan thông tin trang web
3 Quản lý người dùng Button Navigate đến trang quản lý người dùng
4 Quản lý danh mục Button Navigate đến trang quản lý danh mục
5 Quản lý sản phẩm Button Navigate đến trang quản lý sản phẩm
6 Quản lý thanh toán Button Navigate đến trang quản lý thanh toán
7 ID Text Thể hiện Id của lượt thanh toán trên hệ thống
8 Tên sản phẩm Button Thể hiện tên sản phẩm được thanh toán
Image Thể hiện thumbnail của sản phẩm được thanh toán
10 Số tiền thanh toán Text Thể hiện số tiền cho lượt thanh toán
11 Giá chiến thắng Text Thể hiện giá chiến thắng của sản phẩm trên phiên đấu giá
12 Người chiến thắng Text Thể hiện tên của người chiến thắng phiên đấu giá cho sản phẩm
13 Ngày chiến thắng Text Thể hiện thời điểm mà phiên đấu giá cho sản phẩm kết thúc và có người chiến thắng
Text Thể hiện trạng thái của lượt thanh toán phí đấu giá cho sản phẩm.
CÀI ĐẶT VÀ KIỂM THỬ
Hướng dẫn triển khai cài đặt hệ thống
- B1: Download source code FE và tiến hành giải nén folder code
- B2: Vào visual code và tiến hành mở folder vừa giải nén
- B3: Để chạy được code tiến hành cài đặt Node.js
- B4: Từ folder tiến hành mở command line từ folder đó
- B5: Khi mở cmd với folder tiến hành chạy lệnh: npm install
- B6: Chạy localhost bằng lệnh: npm run dev
- B1 Download IDE IntelliJ IDEA Ultimate Edition (Hệ điều hành Windows) theo đường dẫn: https://www.jetbrains.com/idea/download/download- thanks.html?platform=windows
- B2 Download JDK 8 theo đường dẫn (Hệ điều hành Windows) theo đường dẫn: https://www.oracle.com/java/technologies/javase/javase8-archive- downloads.html#license-lightbox
- B3 Giải nén file SneakeryAuction.zip và mở project trên IntelliJ IDEA, nhấn chọn "Trust Project"
B5 Chọn file pom.xml -> Bấm nút Download Plugins khi IntelliJ hiện thông báo -
B6 Nhấn chọn Enable Lombok processing khi IntelliJ hiện thông báo
B7 Mở CMD -> cd đến thư mục project hiện tại
B8 Tại CMD: Chạy lệnh mvn jasypt:decrypt -
To decrypt the encrypted properties in the application.properties file, use the command `Djasypt.encryptor.password=hungishere` for the attributes spring.datasource.password and spring.mail.password In the CMD, copy the decrypted content from the DEC() function for both spring.datasource.password and spring.mail.password attributes.
Chương 6: Cài đặt và kiểm thử
B10 Dán vào 2 thuộc tính trên tại file application.properties tại IDE
B11 Mở file SneakeryApplication.java -> Chạy (Shift + F10)
6.1.2.1 Triển khai giao diện Website đấu giá và Admin
Tên trang Web đấu giá được deploy: https://sneakery.vercel.app/
Tên Admin trang Web đấu giá được deploy: https://aunction-react-js.vercel.app/ B1 Tạo tài khoản trên vercel.com bằng account github
B2 Vào trang overview connect tài khoản với github
B3 Import Git Repository cần deploy
B4 Chọn branch để deploy app và kiểm soát CI/CD ( Khi commit và push code lên branch main thì vercel sẽ tự động deploy và cập nhật app )
B5 Bấm nút deploy để vercel tiến hành build và deploy
6.1.2.1 Triển khai BackEnd Host cloud
Website document API: https://sneakery-develop-
4ba9beca2712.herokuapp.com/swagger-ui.html#/
B1 Cung cấp họ và tên với Email để tạo tài khoản Heroku
B2 Vào Dashboard Heroku với tài khoản vừa tạo
B3 Bấm chọn New và chọn Create new app
B4 Điền tên app là sneakery và bấm Create app
B5 Bấm vào app vừa tạo, vào Overview bấm Configure App – on chọn App – on là DBClear
B6 Bấm vào tab deploy chọn deploy method là github
B7 Chọn tên người dùng và Repository theo đường dẫn sau: https://github.com/Chan-Hung/SneakeryAuction
B9 Muc Automatic deploys nhấn chọn Enable
B10 Sau mỗi lần commit, Heroku sẽ tự động Compile và Deploy lên app
Chương 6: Cài đặt và kiểm thử
Kiểm thử
6.2.1 Kiểm thử chức năng Đăng ký
Test Case ID: TCDK_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): High Test Designed date: 07/10/2023
Module Name: Đăng ký Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng ký với email không hợp lệ
Step Test Steps Test Data Excepted
1 Nhập username Username = “sieutran” Thông tin đã được nhập
Thông tin đã được nhập
6 Click Đăng ký Hiển thị lỗi:
Chương 6: Cài đặt và kiểm thử
Test Case ID: TCDK_002 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): High Test Designed date: 07/10/2023
Module Name: Đăng ký tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng ký với email bị trùng lặp
Step Test Steps Test Data Excepted
1 Nhập username Username = “sieutran” Thông tin đã được nhập
Thông tin đã được nhập
“Email is already in use”
“Email is already in use”
Test Case ID: TCDK_003 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): High Test Designed date: 07/10/2023
Chương 6: Cài đặt và kiểm thử
Module Name: Đăng ký tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng ký trùng username bị trùng lặp
Step Test Steps Test Data Excepted
1 Nhập username Username = “sieutran” Thông tin đã được nhập
Thông tin đã được nhập
Chương 6: Cài đặt và kiểm thử
Step Test Steps Test Data Excepted
1 Nhập username Username = “sieutran” Thông tin đã được nhập
Thông tin đã được nhập
“Xác nhận mật khẩu phải khớp”
“Xác nhận mật khẩu phải khớp”
Test Case ID: TCDK_004 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 07/10/2023
Module Name: Đăng ký tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra trường Xác nhận mật khẩu khi người dùng cung cấp mật khẩu không khớp trường Mật khẩu
Chương 6: Cài đặt và kiểm thử
Test Case ID: TCDK_005 Test Designed by: Đoàn Chấn Hưng Test Priority (Low/Medium/High): high Test Designed date: 07/10/2023
Module Name: Đăng ký tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng xác nhận email Test Executed date: 07/10/2023
Step Test Steps Test Data Excepted
Username = “Jinkky” Thông tin đã được nhập
Thông tin đã được nhập
“chúc mừng bạn đã đăng ký thành công”
“chúc mừng bạn đã đăng ký thành công”
7 Hệ thống gửi email xác nhận và bấm
“xác nhận email thành công, ”
“xác nhận email thành công, ”
Chương 6: Cài đặt và kiểm thử
6.2.2 Kiểm thử chức năng Đăng nhập
Test Case ID: TCDN_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 30/05/2024
Module Name: Đăng nhập tài khoản Test Executed by: Đoàn Chấn Hưng
Description: kiểm tra chức năng đăng nhập với email không hợp lệ
Step Test Steps Test Data Excepted
Thông tin đã được nhập
Thông tin đã được nhập
Hiển thị thông báo: “Email không hợp lệ” Ứng dụng không hiển thị lỗi nhưng hiển thị status code:500
Test Case ID: TCDN_002 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 30/05/2024
Module Name: Đăng nhập tài khoản Test Executed by: Đoàn Chấn Hưng
Description: kiểm tra chức năng đăng nhập với email chưa được xác nhận
Chương 6: Cài đặt và kiểm thử
Step Test Steps Test Data Excepted
Thông tin đã được nhập
Thông tin đã được nhập
Hiển thị thông báo: “User hasn’t been actived”
Hiển thị thông báo: “User hasn’t been actived”
Test Case ID: TCDN_003 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 30/05/2024
Module Name: Đăng nhập tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng nhập với email đã được xác nhận
Step Test Steps Test Data Excepted
Thông tin đã được nhập
Thông tin đã được nhập
Chương 6: Cài đặt và kiểm thử
Test Case ID: TCDN_004 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 30/05/2024
Module Name: Đăng nhập tài khoản Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng nhập khi người dùng nhập sai mật khẩu
Step Test Steps Test Data Excepted
Thông tin đã được nhập
Thông tin đã được nhập
3 Click nút đăng ký Hiển thị thông báo:
6.2.3 Kiểm thử chức năng Bình luận
Test Case Bình luận trên sản phẩm
Test Case ID: TCBL_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): low Test Designed date: 09/10/2023
Module Name: Bình luận cho sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng bình luận cho sản phẩm
Chương 6: Cài đặt và kiểm thử
Step Test Steps Test Data Excepted
1 Vào trang sản phẩm chi tiết
2 Nhập bình luận cho sản phẩm
3 Bấm nút đăng Hiển thị thông báo:
6.2.4 Kiểm thử chức năng Đánh giá
Test Case ID: TCDG_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 09/10/2023
Module Name: Đánh giá cho người đăng Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đánh giá cho người đăng sau khi chiến thắng phiên đấu giá
Test Data Excepted Results Actual
1 Bấm vào mục tài khoản
Chương 6: Cài đặt và kiểm thử phẩm đã thắng
3 Bấm vào icon đánh giá trên sản phẩm
Hiển thị giao diện đánh giá người đăng
Hiển thị giao diện đánh giá người đăng”
4 Nhập đánh giá chi tiết
“Người đăng uy tín, đã giao sản phẩm đến cho tôi”
Thông tin được nhập Thông tin được nhập
Trạng thái “hài lòng” được chọn
Trạng thái “hài lòng” được chọn
Hiển thị thông báo: “Đánh giá thành công”
6.2.5 Kiểm thử chức năng thanh toán phí đấu giá
Test Case Thanh toán phí đấu giá
Test Case ID: TCIWallet_002 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): high Test Designed date: 09/10/2023
Module Name: Nạp tiền vào ví Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng nạp tiền vào ví với input là 0
Step Test Steps Test Data Excepted
Chương 6: Cài đặt và kiểm thử
1 Bấm vào mục tài khoản
2 Bấm vào sản phẩm đã đăng
3 Bấm vào nút thanh toán cho sản phẩm đã có người chiến thắng và chưa được thanh toán
Navigate sang trang “Thanh toán phí đấu giá”
Navigate sang trang “Thanh toán phí đấu giá”
4 Chọn phương thức thanh toán Stripe
Cửa số thanh toán của stripe được hiện ra
Cửa số thanh toán của stripe được hiện ra
5 Nhập thông tin thanh toán ở cửa số của Stripe
5 Bấm vào nút thanh toán
Hiển thị thanh toán thành công sau đó được tự động đưa lại về trang Sneakery
Hiển thị thanh toán thành công sau đó được tự động đưa lại về trang Sneakery
6.2.6 Kiểm thử chức năng Đấu giá sản phẩm
Test Case Đấu giá sản phẩm
Test Case ID: TCBid_002 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): Medium Test Designed date: 30/05/2024
Module Name: Đấu giá sản phẩm Test Executed by: Đoàn Chấn Hưng
Chương 6: Cài đặt và kiểm thử
Description: Kiểm tra chức năng đấu giá sản phẩm khi đấu giá với đúng giá của sản phẩm hiện tại
Step Test Steps Test Data Excepted
1 Chọn sản phẩm có giá hiện tại là
Chuyển đến trang của sản phẩm
Chuyển đến trang của sản phẩm
Hiển thị bảng nhập mức giá
Hiển thị bảng nhập mức giá
Mức giá = “450” Thông tin được nhập
4 Chọn xác nhận Hiển thị thông báo “Vui lòng nhập bid cao hơn mức bid hiện tại cộng với bước giá !”
Hiển thị thông báo “Vui lòng nhập bid cao hơn mức bid hiện tại cộng với bước giá !”
Test Case Đấu giá sản phẩm
Test Case ID: TCBid_003 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High):
Module Name: Đấu giá sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đấu giá khi bid giá hiện tại cộng với bước giá
Chương 6: Cài đặt và kiểm thử
Step Test Steps Test Data Excepted
1 Chọn sản phẩm có giá hiện tại là
Chuyển đến trang của sản phẩm
Chuyển đến trang của sản phẩm
Hiển thị bảng nhập mức giá
Hiển thị bảng nhập mức giá
Mức giá = “478” Thông tin được nhập
4 Chọn xác nhận Hiển thị thông báo “Bid sản phẩm thành công”
Hiển thị thông báo “Bid sản phẩm thành công”
Test Case Đấu giá sản phẩm
Test Case ID: TCBid_004 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High):
Module Name: Đấu giá sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng bid sản phẩm khi người bid là chủ sở hữu sản phẩm
Step Test Steps Test Data Excepted
1 Chọn sản phẩm có giá hiện tại là
791$ và được bán bởi “Hung”
Chuyển đến trang của sản phẩm
Chuyển đến trang của sản phẩm
Chương 6: Cài đặt và kiểm thử
Hiển thị bảng nhập mức giá
Hiển thị bảng nhập mức giá
Mức giá = “900” Thông tin được nhập
4 Chọn xác nhận Không hiển thị Hiển thị lỗi
“Seller can not place a bid on own product”
6.2.7 Kiểm thử chức năng Thêm sản phẩm đấu giá
Test Case Thêm sản phẩm đấu giá
Test Case ID: TCCBid_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): High Test Designed date: 30/05/2024
Module Name: Đăng sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng đăng sản phẩm khi nhập thời gian kết thúc trước giờ hiện tại
Step Test Steps Test Data Excepted
Chương 6: Cài đặt và kiểm thử
5 Chọn thương hiệu Thương hiệu =
6 Chọn danh mục Danh mục =
7 Chọn màu Màu = “ Trắng” Thông tin được nhập
8 Nhập Bước giá Bước giá = “50” Thông tin được nhập
“Thời gian phải hợp lệ và phải chọn sau thời gian hiện tại”
“Thời gian phải hợp lệ và phải chọn sau thời gian hiện tại”
10 Chọn Thumbnail Thumbnail = “file hình ảnh”
Hỉnh ảnh được tải lên
Hỉnh ảnh được tải lên
11 Chọn các ảnh khác ảnh khác = “file hình ảnh”
Hỉnh ảnh được tải lên
Hỉnh ảnh được tải lên
12 Nhập số điện thoại sdt =
13 Nhập Quận Quận = “Quận 5” Thông tin được nhập
15 Nhập số nhà, tên đường
5 Tản Đà Thông tin được nhập
16 Bấm cập nhật Hiển thị thông báo: “Cập nhật địa chỉ của bạn thành công”
Hiển thị thông báo: “Cập nhật địa chỉ của bạn thành công”
Chương 6: Cài đặt và kiểm thử
Hiển thị lỗi “” Hiển thị lỗi “” Pass
6.2.8 Kiểm thử chức năng Tìm kiếm sản phẩm
Test Case Tìm kiếm sản phẩm
Test Case ID: TCSearch_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High):
Module Name: Tìm kiếm sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng tìm kiếm sản phẩm theo tên hãng
Step Test Steps Test Data Excepted
Hiển thị các đôi giày có hãng là Nike
Hiển thị các đôi giày có hãng là Nike
Hiển thị các đôi giày có hãng là Adidas
Hiển thị các đôi giày có hãng là Adidas
Hiển thị các đôi giày có hãng là Chanel
Hiển thị các đôi giày có hãng là Chanel
Test Case Tìm kiếm sản phẩm
Chương 6: Cài đặt và kiểm thử
Test Case ID: TCSearch_002 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High):
Module Name: Tìm kiếm sản phẩm Test Executed by: Đoàn Chấn Hưng
Description: Kiểm tra chức năng tìm kiếm sản phẩm theo ký tự bất kỳ
Step Test Steps Test Data Excepted
2 Nhập ký tự a Tìm kiếm = “a” Hiển thị tên các đôi giày có chứa ký tự a
Hiển thị tên các đôi giày có chứa ký tự a
Không hiển thị gì cả
Không hiển thị gì cả
Không hiển thị gì cả
Không hiển thị gì cả
Không hiển thị gì cả
Không hiển thị gì cả
6.2.8 Kiểm thử chức năng Lọc sản phẩm theo đặc điểm
Test Case Lọc sản phẩm theo đặc điểm
Test Case ID: TCFiler_001 Test Designed by: Đoàn Chấn Hưng
Test Priority (Low/Medium/High): Medium Test Designed date: 30/05/2024
Module Name: Lọc sản phẩm theo đặc điểm Test Executed by: Đoàn Chấn Hưng
Chương 6: Cài đặt và kiểm thử
Description: Kiểm tra chức năng lọc sản phẩm với tùy chọn là theo danh mục
Step Test Steps Test Data Excepted
Nam trên thanh tìm kiếm
Chuyển sang trang lọc sản phẩm và hiện ra các giày dành cho Nam
Chuyển sang trang lọc sản phẩm và hiện ra các giày dành cho Nam
2 Chọn vào mục Nữ Hiển thị ra các giày dành cho nữ
Hiển thị ra các giày dành cho nữ
Hiển thị ra các giày Unisex
Hiển thị ra các giày Unisex