Quản lý đơn hàngHỗ trợ thanh toán trực tuyếnTìm kiếm và lọc sản phẩmĐánh giá và phản hồi của khách hàngWebsite sẽ được phát triển trên nền tảng ASP.NET, sử dụng ngôn ngữ lậptrình C# và J
GIỚI THIỆU
Lý do chọn đề tài
Trong thời đại công nghệ số hiện nay, thương mại điện tử ngày càng trở thành một phương thức mua sắm phổ biến, mang lại sự tiện lợi và tiết kiệm thời gian cho người tiêu dùng Đặc biệt, thị trường thiết bị máy tính phát triển mạnh mẽ với nhu cầu lớn về các sản phẩm công nghệ cao Xây dựng một website thương mại điện tử chuyên bán thiết bị máy tính không chỉ giúp tiếp cận được lượng khách hàng lớn mà còn nâng cao khả năng cạnh tranh Đề tài này được chọn nhằm phát triển một hệ thống bán hàng trực tuyến hiệu quả, đáp ứng nhu cầu của người tiêu dùng và hỗ trợ cho hoạt động kinh doanh.
Ngày nay, máy tính không chỉ là công cụ làm việc mà còn là phương tiện giải trí phổ biến trong mọi gia đình Trong bối cảnh nền kinh tế toàn cầu hóa, nhu cầu trao đổi hàng hóa trên mạng ngày càng tăng, đòi hỏi sự phát triển của thương mại điện tử Công nghệ thông tin đã đem lại sự thuận tiện cho việc mua sắm trực tuyến, giúp người dùng tiết kiệm thời gian và nỗ lực Việc xây dựng một website thương mại điện tử chuyên bán thiết bị máy tính là một phản ánh của xu hướng này, đồng thời mang lại cơ hội phát triển kinh doanh. Để đáp ứng nhu cầu ngày càng cao của thị trường, em đã quyết định tìm hiểu và xây dựng "Website thương mại điện tử" Mặc dù hình thức này đã phổ biến ở Việt Nam, nhưng vẫn còn một số hạn chế nhất định, đặc biệt là trong việc thanh toán trực tuyến Do đó, em đã đề xuất một số giải pháp giả lập để tối ưu hóa quy trình và tạo ra một trải nghiệm mua sắm trực tuyến tốt hơn Điều này không chỉ giúp nâng cao chất lượng dịch vụ mà còn thúc đẩy sự phát triển của thương mại điện tử tại Việt Nam.
Phạm vi đề tài
Đề tài này tập trung vào việc xây dựng một website thương mại điện tử bán thiết bị máy tính, bao gồm các chức năng chính như:
Hỗ trợ thanh toán trực tuyến
Tìm kiếm và lọc sản phẩm Đánh giá và phản hồi của khách hàng
Website sẽ được phát triển trên nền tảng ASP.NET, sử dụng ngôn ngữ lập trình C# và JavaScript, kết hợp với các công cụ hỗ trợ như jQuery và Bootstrap
5 để tạo giao diện thân thiện và tương tác tốt với người dùng.
Phương pháp nghiên cứu
Tìm kiếm và nghiên cứu các tài liệu về Asp.net Framework và các công nghệ có liên quan đến việc phát triển một ứng dụng web enterprise như LINQ, Bootstrap 5, jQuery của các tác giả trong và ngoài nước, các bài báo, thông tin trên mạng sau đó chọn lọc và sắp xếp lại theo ý tưởng của mình.
Dựa trên kết quả tìm hiểu được để xây dựng một ứng dụng web xem phim trực tuyến có áp dụng tất cả những nội dung đã nghiên cứu nhằm mục đích minh họa cho phần cơ sở lý thuyết sẽ trình bày trong nội dung luận văn này.
Các công cụ hỗ trợ nghiên cứu
1 Microsoft Word: dùng để viết tài liệu báo cáo
2 Microsoft Project: dùng để phân công nhiệm vụ cập nhật tiến độ dự án
3 SQL Server Management Studio (SSMS): dùng để thiết kế cơ sở dữ liệu cho hệ thống thương mại điện tử, viết và thực thi các truy vấn SQL, và quản lý dữ liệu trong dự án.
4 Visual Studio: dùng để chỉnh sửa và chạy code
Bố cục luận văn
Luận văn này được chia thành các chương như sau:
Chương 1: Giới thiệu: Trình bày lý do chọn đề tài, phạm vi nghiên cứu, phương pháp nghiên cứu và bố cục luận văn.
Chương 2: Cơ sở lý thuyết: Cung cấp kiến thức nền tảng về các ngôn ngữ lập trình và công nghệ sử dụng trong đề tài, tập trung làm rõ về
Chương 3: Thiết kế và cài đặt chương trình: Mô tả chi tiết về yêu cầu hệ thống, dữ liệu của hệ thống, và giao diện Đồng thời, trình bày kết quả kiểm thử và đánh giá hiệu quả của hệ thống.
Chương 4: Kết luận và hướng phát triển: Tóm tắt những kết quả đạt được và đề xuất các hướng phát triển trong tương lai.
CƠ SỞ LÝ THUYẾT
Ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình hiện đại, được phát triển bởi Microsoft vào những năm cuối của thế kỷ 20 Sự ra đời của C# là một phần của nỗ lực của Microsoft để tạo ra một ngôn ngữ lập trình mạnh mẽ và linh hoạt, phục vụ cho nền tảng phát triển NET Framework của họ.
Tính đến thời điểm hiện tại, C# vẫn tiếp tục phát triển và là một trong những ngôn ngữ lập trình phổ biến nhất cho phát triển ứng dụng web, desktop và mobile trên nền tảng NET.
2.1.1 Ngôn ngữ truy vấn tích hợp
Ngôn ngữ truy vấn tích hợp (Language Integrated Query - LINQ) là một tính năng quan trọng và mạnh mẽ của ngôn ngữ lập trình C#, giúp lập trình viên thực hiện các thao tác truy vấn dữ liệu một cách linh hoạt và dễ dàng Với LINQ, lập trình viên có thể thực hiện các truy vấn trên các nguồn dữ liệu khác nhau như cơ sở dữ liệu (SQL Server, MySQL, etc.), tập tin XML, các collection trong bộ nhớ, và nhiều nguồn dữ liệu khác.
Các tính năng chính của LINQ bao gồm:
Cú pháp nhất quán: LINQ cung cấp một cú pháp đồng nhất cho các truy vấn dữ liệu, không phụ thuộc vào nguồn dữ liệu cụ thể Điều này giúp làm giảm sự phức tạp của mã và tăng khả năng đọc hiểu của mã nguồn. Kiểm soát kiểu tại biên dịch: LINQ sử dụng các phương thức mở rộng (extension methods) và toán tử tải (operator overloading) để thực hiện các phép toán trên dữ liệu Điều này cho phép kiểm soát kiểu tại thời điểm biên dịch, giúp tránh được lỗi phát sinh ở thời điểm chạy ứng dụng. Tích hợp với ngôn ngữ C#: LINQ được tích hợp chặt chẽ vào ngôn ngữ C#, cho phép lập trình viên sử dụng các khái niệm quen thuộc như biến, vòng lặp, và điều kiện trong các truy vấn LINQ.
Với những ưu điểm này, LINQ đã trở thành một công cụ mạnh mẽ cho việc xử lý và truy xuất dữ liệu trong ứng dụng C#, giúp tăng cường tính linh hoạt và hiệu suất của các ứng dụng phần mềm.
Ngôn ngữ lập trình Javascript
JavaScript là một ngôn ngữ lập trình kịch bản được sử dụng rộng rãi trên web để tạo ra các trang web tương tác và động Với JavaScript, lập trình viên có thể thực hiện các thao tác với DOM (Document Object Model), xử lý sự kiện người dùng, thay đổi nội dung của trang web mà không cần tải lại trang.
2.2.1 jQuery jQuery là một thư viện JavaScript nhẹ và mạnh mẽ, được phát triển để giảm bớt sự phức tạp trong việc lập trình trên web jQuery cung cấp một cú pháp đơn giản và ngắn gọn để thực hiện các thao tác DOM, xử lý sự kiện, tạo hiệu ứng và gửi Ajax Việc sử dụng jQuery giúp lập trình viên viết ít mã hơn và tăng cường khả năng tương tác trên trang web.
Các tính năng chính của jQuery bao gồm:
DOM manipulation: jQuery cho phép lập trình viên thực hiện các thao tác trên DOM một cách dễ dàng hơn, bao gồm thêm, sửa đổi và xóa các phần tử HTML.
Event handling: jQuery cung cấp một cú pháp đơn giản để xử lý sự kiện người dùng như click, hover, change, vv.
Ajax support: jQuery giúp tạo ra các yêu cầu HTTP một cách dễ dàng và xử lý dữ liệu trả về từ máy chủ một cách hiệu quả.
Animation and effects: jQuery cung cấp các phương thức để tạo ra các hiệu ứng và animation trên trang web mà không cần phải viết mã JavaScript phức tạp.
Bootstrap 5 là phiên bản mới nhất của framework Bootstrap, một bộ công cụ phát triển giao diện web Bootstrap 5 cung cấp các thành phần giao diện sẵn có như nút, menu, biểu mẫu và lưới layout, giúp việc phát triển giao diện web trở nên nhanh chóng và dễ dàng hơn Ngoài ra, Bootstrap 5 cũng hỗ trợ tích hợp responsive design, đảm bảo rằng các trang web sẽ hiển thị một cách tốt trên nhiều loại thiết bị khác nhau, từ máy tính đến điện thoại di động.
Các tính năng chính của Bootstrap 5 bao gồm:
Responsive design: Bootstrap 5 được xây dựng với responsive design trong tâm trí, giúp đảm bảo rằng các trang web sẽ hiển thị đẹp mắt và dễ đọc trên các thiết bị khác nhau, từ máy tính đến điện thoại di động. Thành phần giao diện: Bootstrap 5 cung cấp một bộ sưu tập các thành phần giao diện sẵn có, giúp tiết kiệm thời gian và công sức trong việc xây dựng các trang web.
Customization: Bootstrap 5 cho phép lập trình viên tùy chỉnh và cấu hình các thành phần theo ý muốn của họ, từ việc thay đổi màu sắc đến kiểu dáng.
ASP.NET framework
ASP.NET là một phần của NET framework, cung cấp một nền tảng để xây dựng, triển khai và quản lý các ứng dụng web ASP.NET hỗ trợ nhiều tính năng hiện đại như:
MVC (Model-View-Controller): Đây là một mô hình thiết kế giúp tách biệt logic của ứng dụng thành ba phần chính: Model (dữ liệu), View (giao diện) và Controller (xử lý logic) Điều này giúp cải thiện tổ chức code và dễ dàng bảo trì.
Razor Pages: Đây là một mô hình lập trình đơn giản và nhẹ, cho phép xây dựng giao diện web với cú pháp Razor, giúp kết hợp mã C# trực tiếp trong HTML.
Web API: ASP.NET Web API là một framework để xây dựng các dịch vụ HTTP, có thể được truy cập từ các ứng dụng khác nhau như web,mobile và desktop.
2.3.1 Các thành phần chính của ASP.NET
ASP.NET bao gồm nhiều thành phần giúp phát triển ứng dụng web hiệu quả:
ASP.NET Core: Một phiên bản cải tiến và đa nền tảng của ASP.NET, giúp phát triển các ứng dụng hiện đại và hiệu quả.
Entity Framework (EF): Một ORM (Object-Relational Mapper) giúp lập trình viên làm việc với cơ sở dữ liệu một cách dễ dàng bằng cách sử dụng các đối tượng NET.
Identity: Một hệ thống quản lý xác thực và phân quyền người dùng, cung cấp các chức năng đăng ký, đăng nhập, và quản lý người dùng an toàn. 2.3.2 Quy trình phát triển ứng dụng với ASP.NET
Quy trình phát triển ứng dụng với ASP.NET bao gồm các bước chính sau:
1 Phân tích yêu cầu: Xác định các yêu cầu chức năng và phi chức năng của hệ thống.
2 Thiết kế hệ thống: Xây dựng mô hình dữ liệu, thiết kế giao diện người dùng và luồng xử lý.
3 Lập trình và tích hợp: Xây dựng các thành phần của hệ thống bằng ASP.NET và tích hợp chúng lại với nhau.
4 Kiểm thử: Đảm bảo các chức năng hoạt động đúng yêu cầu và không có lỗi.
5 Triển khai: Đưa ứng dụng lên môi trường sản xuất và đảm bảo hệ thống hoạt động ổn định.
6 Bảo trì và nâng cấp: Theo dõi và cải thiện hệ thống để đáp ứng các yêu cầu mới và cải thiện hiệu suất.
SQL Server
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ do Microsoft phát triển, được sử dụng rộng rãi để lưu trữ, quản lý và truy xuất dữ liệu Nó cung cấp các tính năng mạnh mẽ như ngôn ngữ truy vấn T-SQL, bảo mật, khả năng mở rộng và tích hợp các dịch vụ như SQL Server Integration Services (SSIS),SQL Server Analysis Services (SSAS) và SQL Server Reporting Services(SSRS) để xây dựng các giải pháp phân tích dữ liệu và báo cáo.
MailKit
MailKit là một thư viện mã nguồn mở được sử dụng trong lập trình NET để thực hiện các thao tác liên quan đến email Thư viện này cung cấp các API để gửi, nhận và xử lý email từ ứng dụng NET Trong ứng dụng web mailkit được sử dụng để gửi các email như khuyến mãi hay là mail xác nhận tài khoản hoặc mail để reset mật khẩu khi quên mật khẩu.
THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH
Phân tích thiết kế website
Quản lý thông tin người dùng: bao gồm các thông tin như tên, địa chỉ email, số điện thoại, địa chỉ và thông tin tài khoản.
Quản lý quyền hạn người dùng: cho phép quản lý viên cấp quyền hạn cho người dùng để truy cập và sử dụng các tính năng trên trang web Điều này đặc biệt quan trọng để đảm bảo tính bảo mật và tránh các hoạt động trái phép trên trang web.
Quản lý đăng nhập và đăng ký: cho phép người dùng đăng nhập và đăng ký tài khoản trên trang web Điều này cũng cần phải đảm bảo tính bảo mật và tránh các hoạt động giả mạo tài khoản.
Quản lý xác thực người dùng: quản lý viên cần xác thực người dùng trên trang web để đảm bảo tính bảo mật và tránh các hoạt động giả mạo hoặc truy cập trái phép.
3.1.2 Quản lý sản phẩm, bán hàng, thanh toán
Quản lý sản phẩm: Quản lý thông tin sản phẩm bao gồm tên sản phẩm, mô tả, giá, ảnh sản phẩm và số lượng hàng tồn kho Ngoài ra, còn có thể có các tính năng như danh mục sản phẩm, phân loại sản phẩm… Đặt hàng: Khách hàng có thể chọn sản phẩm và thêm vào giỏ hàng, đặt hàng sau khi điền thông tin liên hệ và địa chỉ giao hàng Để đảm bảo tính chính xác và an toàn, có thể sử dụng công nghệ mã hóa SSL để bảo mật thông tin khách hàng.
Giỏ hàng: Giỏ hàng là một phần quan trọng để quản lý các sản phẩm khách hàng đã chọn, tính toán tổng tiền và phí vận chuyển, cập nhật số lượng sản phẩm trong giỏ hàng và cho phép khách hàng chỉnh sửa giỏ hàng của mình trước khi thanh toán.
Phương thức thanh toán: Hệ thống thanh toán trực tuyến là một trong những phương thức thanh toán phổ biến trên trang web bán hàng Có thể chấp nhận các hình thức thanh toán trực tuyến như COD, Momo…Bên cạnh đó, còn có thể cung cấp phương thức thanh toán khi nhận hàng hoặc chuyển khoản. Quản lý đơn hàng: Quản lý đơn hàng giúp quản lý thông tin đặt hàng, thanh toán, vận chuyển và trạng thái đơn hàng Nó cung cấp các tính năng quản lýnhư xem danh sách đơn hàng, chỉnh sửa đơn hàng, hủy đơn hàng, và gửi thông tin vận chuyển đến khách hàng.
Gửi thông tin vận chuyển: Sau khi thanh toán, cần gửi thông tin vận chuyển đến khách hàng để họ có thể kiểm tra trạng thái vận chuyển và đảm bảo sản phẩm được giao đúng địa chỉ.
Các màn hình dự kiến
Hình 3.2 a Màn hình đăng nhập
Hình 3.2 b Màn hình đăng ký
Hình 3.2 c Màn hình danh mục sản phẩm
Hình 3.2 d Màn hình quản lý sản phẩm của admin
Hình 3.2 e Màn hình thanh toán
Hình 3.2 f Màn hình quản lý đơn hàng của admin
Hình 3.2 g Màn hình quản lý tài khoản của người dùng (user)
Hình 3.2 h Màn hình quên mật khẩu
Cài đặt ứng dụng
MVC là viết tắt của cụm từ “Model-View-Controller“ Đây là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều có mô ˆt nhiê ˆm vụ riêng của nó và đô ˆc lâ ˆp với các thành phần khác Tên gọi 3 thành phần:
1 Model (dữ liệu): Quản lí xử lí các dữ liê ˆu.
2 View (giao diện): Nới hiển thị dữ liê ˆu cho người dùng.
3 Controller (bộ điều khiển): Điều khiển sự tương tác của hai thành phầnModel và View.
Hình 3.3 a Các thành phần của mô hình MVC
Mô hình MVC gồm 3 loại chính là thành phần bên trong không thể thiếu khi áp dụng mô hình này:
Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa 2 thành phần bên dưới là View và Controller Một model là dữ liệu được sử dụng bởi chương trình Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường hay một đối tượng đơn giản Chẳng hạn như biểu tượng hay là một nhân vật trong game.
View: Đây là phần giao diện (theme) dành cho người sử dụng View là phương tiện hiển thị các đối tượng trong một ứng dụng Chẳng hạn như hiển thị một cửa sổ, nút hay văn bản trong một cửa sổ khác Nó bao gồm bất cứ thứ gì mà người dùng có thể nhìn thấy được.
Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua View Một controller bao gồm cả Model lẫn View Nó nhận input và thực hiện các update tương ứng.
Hình 3.3 b Data users (người dùng)
Hình 3.3 c Data products (sản phẩm)
3.3.3 Các chức năng nổi bật
Hình 3.3.3 a Quản lý thương hiệu cho người dùng
Quản lý thương hiệu cho người dùng
Khai báo và khởi tạo ApplicationDbContext để truy cập CSDL.
Index: Hiển thị danh sách các sản phẩm thuộc một thương hiệu cụ thể dựa trên Slug dựa trên các bước: Tìm thương hiệu -> Nếu không tìm thấy thương hiệu, chuyển hướng lại trang Index -> Lấy danh sách sản phẩm thuộc thương hiệu đó -> Trả về view với danh sách sản phẩm.
Hình 3.3.3 b Quản lý giỏ hàng cho người dùng
Index: Hiển thị giỏ hàng của người dùng, tính toán tổng số tiền trước và sau giảm giá, và truyền số lượng sản phẩm qua ViewBag.
Add: Thêm một sản phẩm vào giỏ hàng hoặc tăng số lượng của sản phẩm đó nếu đã có trong giỏ.
Hình 3.3.3 c Quản lý danh mục sản phẩm cho người dùng
1 Nhận tham số Slug từ URL.
2 Truy vấn để tìm danh mục có Slug tương ứng trong cơ sở dữ liệu.
3 Nếu không tìm thấy danh mục, chuyển hướng lại về trang Index.
4 Nếu tìm thấy danh mục, truy vấn các sản phẩm thuộc danh mục đó (không bị xóa) và trả về view để hiển thị danh sách sản phẩm.
Hình 3.3.3 d Quản lý mã giảm giá cho người dùng
Khởi tạo DiscountCodeController với đối tượng
ApplicationDbContext được tiêm vào qua dependency injection. Index: Lấy danh sách tất cả các mã giảm giá từ cơ sở dữ liệu và trả về view để hiển thị danh sách các mã giảm giá.
DiscountCodeModelExists: Kiểm tra xem mã giảm giá có tồn tại trong cơ sở dữ liệu hay không dựa trên ID.
Hình 3.3.3 e Quản lý sản phẩm cho người dùng
Khởi tạo ProductController với các đối tượng ILogger và
ApplicationDbContext được tiêm vào qua dependency injection. Index: Hiển thị danh sách sản phẩm với phân trang.
Index2: Hiển thị danh sách sản phẩm giảm giá.
SortByPrice: Sắp xếp sản phẩm theo giá và hiển thị kết quả.
Hình 3.3.3 f Quản lý đơn hàng cho người dùng
Khởi tạo OrderController với đối tượng ApplicationDbContext được tiêm vào qua dependency injection.
Index: Hiển thị danh sách các đơn hàng đã mua của người dùng hiện tại.
Delete (GET): Hiển thị chi tiết đơn hàng để xác nhận xóa.
Hình 3.3.3 g Lớp gửi email xác nhận đến người dùng
Lớp gửi email xác nhận đến người dùng
SendMailService Class: Dịch vụ này triển khai IEmailSender để gửi email Nó nhận các thiết lập email từ MailSettings và ghi lại các thông tin log bằng ILogger.
Phương thức SendEmailAsync: Gửi email với nội dung HTML.
Tạo đối tượng MimeMessage -> Thiết lập nội dung email sử dụng BodyBuilder -> Kết nối với máy chủ SMTP và gửi email -> Nếu xảy ra lỗi khi gửi email, lưu email vào thư mục mailssave và ghi lại log -> Ngắt kết nối SMTP và ghi lại log khi email được gửi thành công.
Hình 3.3.3 h Quản lý người dùng của admin bằng Identity
Các Dịch Vụ và Thành Phần Được Inject: ApplicationDbContext, UserManager, RoleManager và IEmailSender.
Index: UserEditViewModel chứa thông tin người dùng, vai trò hiện tại và danh sách các vai trò có sẵn
Chỉ dành cho quản trị viên (SD.Role_Admin).
Hình 3.3.3 i Quản lý thương hiệu cho admin
Index: Hiển thị danh sách các thương hiệu sản phẩm.
Create: Hiển thị và xử lý form tạo thương hiệu mới và kiểm tra xem thương hiệu có tồn tại trước đó không và thêm vào CSDL.
Edit: Hiển thị và xử lý form chỉnh sửa thông tin thương hiệu, kiểm tra xem thương hiệu có tồn tại trước đó không và cập nhật thông tin vào CSDL.
Hình 3.3.3 j Quản lý danh mục cho admin
Index: Hiển thị danh sách các danh mục sản phẩm.
Create: Hiển thị và xử lý form tạo danh mục mới, kiểm tra xem danh mục có tồn tại trước đó không và cập nhật thông tin vào CSDL. Edit: Hiển thị và xử lý form chỉnh sửa thông tin danh mục, kiểm tra xem danh mục có tồn tại trước đó không và cập nhật thông tin vào CSDL.
Hình 3.3.3 k Quản lý mã giảm giá cho admin
Index1: Hiển thị danh sách các mã giảm giá.
Create: Hiển thị và xử lý form tạo mã giảm giá mới. Edit: Hiển thị và xử lý form chỉnh sửa thông tin mã giảm giá. Delete: Xóa mã giảm giá khỏi cơ sở dữ liệu.
Hình 3.3.3 l Quản lý sản phẩm cho admin
Index: Hiển thị danh sách các sản phẩm.
Create: Hiển thị và xử lý form tạo sản phẩm mới.
Edit: Hiển thị và xử lý form chỉnh sửa thông tin sản phẩm.
Delete: Xóa sản phẩm khỏi cơ sở dữ liệu và xóa hình ảnh sản phẩm từ thư mục media nếu có.
Các tình huống kịch bản (Test scenarios)
3.4.1 Tình huống đăng ký và đăng nhập người dùng
Kịch bản 1: Đăng ký người dùng mới
Mục tiêu: Đảm bảo người dùng có thể đăng ký tài khoản mới.
1 Truy cập trang đăng ký.
2 Nhập thông tin người dùng bao gồm tên, email, mật khẩu, và xác nhận mật khẩu.
Kết quả mong đợi: Người dùng nhận được thông báo đăng ký thành công và có thể đăng nhập bằng thông tin vừa tạo.
Kịch bản 2: Đăng nhập người dùng đã đăng ký
Mục tiêu: Đảm bảo người dùng đã đăng ký có thể đăng nhập.
1 Truy cập trang đăng nhập.
2 Nhập tên đăng nhập và mật khẩu đã đăng ký.
Kết quả mong đợi: Người dùng được chuyển đến trang chủ cùng với banner đăng xuất (đã đăng nhập thành công).
3.4.2 Tình huống duyệt và tìm kiếm sản phẩm
Kịch bản 3: Tìm kiếm sản phẩm theo từ khóa
Mục tiêu: Đảm bảo chức năng tìm kiếm hoạt động chính xác.
1 Nhập từ khóa vào thanh tìm kiếm.
2 Nhấn vào biểu tượng tìm kiếm.
Kết quả mong đợi: Hệ thống hiển thị danh sách các sản phẩm liên quan đến từ khóa tìm kiếm.
Kịch bản 4: Duyệt sản phẩm theo danh mục
Mục tiêu: Đảm bảo người dùng có thể duyệt sản phẩm theo danh mục. Bước thực hiện:
1 Di chuột vào ô danh mục sản phẩm.
2 Chọn một danh mục cụ thể (sản phẩm mới nhất, sản phẩm giảm giá)
Kết quả mong đợi: Hệ thống hiển thị trang danh sách các sản phẩm thuộc danh mục được chọn.
3.4.3 Tình huống thêm sản phẩm vào giỏ hàng và mua hàng
Kịch bản 5: Thêm sản phẩm vào giỏ hàng
Mục tiêu: Đảm bảo người dùng có thể thêm sản phẩm vào giỏ hàng. Bước thực hiện:
1 Truy cập trang chi tiết sản phẩm.
2 Nhấn nút "Thêm vào giỏ hàng".
Kết quả mong đợi: Sản phẩm được thêm vào giỏ hàng và người dùng nhận được thông báo xác nhận.
Kịch bản 6: Thực hiện quy trình mua hàng
Mục tiêu: Đảm bảo người dùng có thể hoàn tất quá trình mua hàng. Bước thực hiện:
2 Kiểm tra sản phẩm và số lượng.
3 Nhập thông tin thanh toán và vận chuyển.
Kết quả mong đợi: Đơn hàng được tạo thành công, người dùng nhận được thông báo xác nhận và email chi tiết đơn hàng.
3.4.4 Tình huống quản lý tài khoản người dùng
Kịch bản 7: Cập nhật thông tin tài khoản
Mục tiêu: Đảm bảo người dùng có thể cập nhật thông tin cá nhân. Bước thực hiện:
1 Đăng nhập vào tài khoản.
2 Truy cập trang quản lý tài khoản.
3 Thay đổi thông tin cá nhân (ví dụ: tên, địa chỉ, số điện thoại).
Kết quả mong đợi: Thông tin cá nhân của người dùng được cập nhật thành công và hiển thị thông tin mới.
3.4.5 Tình huống quản lý sản phẩm (dành cho quản trị viên)
Kịch bản 8: Thêm sản phẩm mới
Mục tiêu: Đảm bảo quản trị viên có thể thêm sản phẩm mới vào hệ thống.
1 Đăng nhập với tài khoản admin.
2 Truy cập trang quản lý sản phẩm.
3 Nhấn nút "Thêm sản phẩm".
4 Nhập thông tin sản phẩm mới (tên, mô tả, giá, hình ảnh, danh mục).
Kết quả mong đợi: Sản phẩm mới được thêm vào hệ thống và hiển thị trên trang sản phẩm.
3.4.6 Tình huống kiểm tra lỗi và bảo mật
Kịch bản 9: Kiểm tra lỗi khi đăng nhập sai mật khẩu
Mục tiêu: Đảm bảo hệ thống phản hồi đúng khi người dùng nhập sai mật khẩu.
1 Truy cập trang đăng nhập.
2 Nhập email hợp lệ nhưng mật khẩu sai.
Kết quả mong đợi: Hệ thống hiển thị thông báo lỗi "Sai mật khẩu" và không cho phép đăng nhập.
3.4.7 Tình huống kiểm tra khả năng chịu tải
Kịch bản 10: Kiểm tra hệ thống dưới tải cao
Mục tiêu: Đảm bảo hệ thống hoạt động ổn định dưới tải cao.
1 Sử dụng công cụ kiểm thử tải (load testing tool) để gửi nhiều yêu cầu đồng thời tới hệ thống.
2 Giám sát hiệu suất và phản hồi của hệ thống.
Kết quả mong đợi: Hệ thống xử lý các yêu cầu mà không gặp sự cố lớn, thời gian phản hồi vẫn trong giới hạn chấp nhận được.
3.4.8 Tình huống gửi email xác nhận
Kịch bản 11: Yêu cầu đổi mật khẩu/Quên mật khẩu
Mục tiêu: Đảm bảo người dùng có thể đổi mật khẩu với địa chỉ email hợp lệ
1 Truy cập trang "Quên mật khẩu".
2 Nhập địa chỉ email hợp lệ đã đăng ký với hệ thống.
Kết quả mong đợi: Hệ thống hiển thị thông báo rằng yêu cầu đổi mật khẩu đã được gửi đi và người dùng nhận được email xác nhận.