Đặt vấn đề Trong bối cảnh số hóa ngày càng tăng, việc xây dựng một hệ thống mua sắm trực tuyến hiệu quả, bảo mật và dễ sử dụng là cực kỳ quan trọng. Để đạt được điều này, một số thách thức cần được giải quyết: • Trải Nghiệm Người Dùng: Cần tạo ra một trải nghiệm người dùng mượt mà và tương tác cao. • Hiệu Suất và Tối Ưu Hóa: Website cần được tối ưu hóa cho hiệu suất và tốc độ tải trang. • Bảo Mật và Quản Lý Dữ Liệu: Đảm bảo an toàn thông tin cá nhân và giao dịch.
• Quản Lý Hậu Cần và Hàng Tồn Kho: Cần có hệ thống quản lý hiệu quả và chính xác. • SEO và Tiếp Thị: Tối ưu hóa cho công cụ tìm kiếm và chiến lược marketing đa kênh. Hướng giải quyết 1. Front-End: React.js và Tailwind CSS • React.js: Sử dụng cho việc xây dựng giao diện người dùng.js với mô hình component-based giúp tạo ra giao diện động, nhanh chóng và tối ưu hóa hiệu suất.
• Tailwind CSS: Framework CSS hiện đại giúp nhanh chóng thiết kế giao diện người dùng mà không cần viết nhiều CSS tùy chỉnh. Server-Side Rendering: Next.js: Framework của React hỗ trợ server-side rendering (SSR), giúp cải thiện tốc độ tải trang và SEO.js cũng cung cấp các tính năng như routing và tối ưu hóa ảnh, hữu ích cho việc xây dựng website thương mại điện tử. Back-End: Node.js và MySQL, Prisma • Node.js: Môi trường JavaScript server-side cho phép xây dựng các ứng dụng mạng nhanh chóng và hiệu quả. Nó phù hợp cho xử lý các tác vụ không đồng bộ, quản lý yêu cầu đa người dùng.
• MySQL-Prisma: Prisma hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, như MySQL, PostgreSQL, MongoDB, SQLite và SQL Server. Có thể sử dụng Prisma với nhiều ngôn ngữ lập trình khác nhau, như JavaScript, TypeScript, Python, Go và Ruby. Tích Hợp và Quản Lý 21 • Phát triển API RESTful bằng Node.js để kết nối front-end và back-end. • Sử dụng Clerk Doc để bảo mật thông tin người dùng.
Quản Lý Trạng Thái và Routing • Sử dụng Redux của Redux ToolKits để quản lý trạng thái toàn cục.js hỗ trợ routing động giúp quản lý các trang và đường dẫn một cách hiệu quả. Tối Ưu Hóa Hiệu Suất và SEO • Tận dụng SSR của Next.js để cải thiện hiệu suất tải trang và SEO. • Sử dụng các công cụ và kỹ thuật tối ưu hóa như Lazy Loading, code splitting, và caching. Bảo Mật và Quản Lý Dữ Liệu • Áp dụng các biện pháp bảo mật như mã hóa dữ liệu, bảo vệ Bcrypt.
• Tích hợp các giải pháp backup và phục hồi dữ liệu cho MongoDB. Xác định yêu cầu 4. Tác nhân hệ thống ID Tác nhân Mô tả A-01 Khách hàng tiềm năng Người dùng chưa đăng nhập website HV Shop. A-02 Khách hàng Người dùng đã đăng nhập website HV Shop là khách hàng của cửa hàng.
A-03 Người quản lý Người dùng đã đăng nhập website HV Shop là người quản lý của cửa hàng. Bảng 1: Tác nhân hệ thống 4. Yêu cầu chức năng ID Tên của yêu cầu Sự ưu tiên Biểu đồ Test case 1 Tài khoản 1.1 Đăng nhập Cao 1.3 Đổi mật khẩu Thấp 1.4 Quên mật khẩu Thấp 1.5 Nhắn tin với người Trung bình quản lý và khách hàng 1.6 Đăng xuất Trung bình 1.7 Thêm địa chỉ giao Cao hàng 2 Sản phẩm 2.1 Xem sản phẩm Quan trọng 2.2 Đặt hàng Quan trọng 2.3 Đánh giá sản phẩm Cao 2.4 Thêm sản phẩm Quan trọng 2.5 Sửa sản phẩm Quan trọng 2.6 Xóa sản phẩm Quan trọng 3 Đơn hàng 3.2 Xem đơn hàng Cao 3.3 Cập nhập trạng thái Quan trọng đơn hàng 4 Giỏ hàng 4.1 Thay đổi số lượng sản Cao phẩm 23 4.2 Thanh toán Quan trọng 5.1 Thêm mã giảm giá Trung bình 5.2 Sửa mã giảm giá Trung bình 5.3 Xóa mã giảm giá Trung bình 6.1 Thêm danh mục Quan trọng 6.2 Sửa danh mục Quan trọng 6.3 Xóa danh mục Quan trọng Bảng 2: Yêu cầu chức năng 4. Mô tả yêu cầu chức năng 1.1 Đăng nhập - Hệ thống phải cung cấp chức năng đăng nhập an toàn cho phép người dùng đã đăng ký truy cập thông tin cá nhân của họ - Quá trình đăng nhập cần yêu cầu người dùng nhập email và mật khẩu.
- Sau khi xác thực thành công, hệ thống sẽ xác minh thông tin xác thực của người dùng và cấp truy cập vào thông tin cá nhân của họ. - Nếu nhập sai thông tin đăng nhập hoặc tài khoản chưa được xác nhận, hệ thống sẽ hiển thị thông báo lỗi và nhắc người dùng thử lại thông tin đăng nhập của họ. - Trang đăng nhập phải có hướng dẫn rõ ràng về cách nhập thông tin đăng nhập và thân thiện với người dùng để điều hướng dễ dàng.2 Đăng ký - Hệ thống phải cung cấp chức năng đăng ký an toàn cho phép người dùng chưa đăng ký tạo tài khoản mới. - Quá trình đăng ký cần yêu cầu người dùng nhập các thông tin sau: Tên người dùng, mật khẩu, địa chỉ email.
- Mật khẩu phải đáp ứng chính sách tiêu chuẩn, yêu cầu ít nhất 8 ký tự, bao gồm một chữ in hoa và một ký tự đặc biệt. - Địa chỉ email phải là duy nhất. - Sau khi xác nhận thành công, hệ thống sẽ tạo tài khoản mới cho người dùng và gửi email xác nhận đến địa chỉ email của người dùng. 24 - Nếu nhập sai thông tin đăng ký, hệ thống sẽ hiển thị thông báo lỗi và nhắc người dùng nhập lại thông tin đăng ký của họ.
- Trang đăng ký phải có hướng dẫn rõ ràng về cách nhập thông tin đăng ký và thân thiện với người dùng để điều hướng dễ dàng.3 Đổi mật khẩu - Hệ thống phải cung cấp chức năng đổi mật khẩu an toàn cho phép người dùng đã đăng ký thay đổi mật khẩu của họ. - Quá trình đổi mật khẩu cần yêu cầu người dùng nhập các thông tin sau: mật khẩu hiện tại, mật khẩu mới, xác nhận mật khẩu mới. - Mật khẩu mới phải đáp ứng chính sách tiêu chuẩn, yêu cầu ít nhất 8 ký - tự, bao gồm một chữ in hoa và một ký tự đặc biệt. - Sau khi xác nhận thành công, hệ thống sẽ cập nhật mật khẩu mới cho người dùng.
- Nếu nhập sai thông tin đổi mật khẩu, hệ thống sẽ hiển thị thông báo lỗi và nhắc người dùng nhập lại thông tin đổi mật khẩu của họ. - Trang đổi mật khẩu phải có hướng dẫn rõ ràng về cách đổi mật khẩu và thân thiện với người dùng để điều hướng dễ dàng.4 Quên mật khẩu - Chức năng Quên Mật Khẩu: Hệ thống cần cung cấp chức năng quên mật khẩu để hỗ trợ người dùng khi họ không thể nhớ mật khẩu của mình. - Yêu Cầu Nhập Thông Tin: Khi người dùng chọn "Quên Mật Khẩu", họ sẽ được yêu cầu nhập địa chỉ email hoặc tên người dùng đã đăng ký trên hệ thống. - Xác Minh Danh Tính Người Dùng: Hệ thống sẽ kiểm tra thông tin nhập vào và gửi một email xác nhận đến địa chỉ email đã đăng ký.
Email này sẽ chứa một liên kết để đặt lại mật khẩu. - Đặt Lại Mật Khẩu: Liên kết đặt lại mật khẩu sẽ dẫn người dùng đến một trang web nơi họ có thể tạo mật khẩu mới. Mật khẩu mới này cũng cần phải tuân theo các chính sách mật khẩu (ít nhất 8 ký tự, bao gồm một chữ in hoa và một ký tự đặc biệt). - Xác Nhận và Đăng Nhập: Sau khi đặt lại mật khẩu thành công, hệ thống sẽ thông báo cho người dùng và hướng dẫn họ quay trở lại trang đăng nhập để truy cập vào tài khoản của họ với mật khẩu mới.
- Bảo Mật và Quyền Riêng Tư: Quá trình đặt lại mật khẩu phải đảm bảo an toàn, không tiết lộ thông tin cá nhân hoặc tài khoản của người dùng cho bên thứ ba.5 Nhắn tin với người quản lý và khách hàng - Chức năng Nhắn Tin: Hệ thống cần cung cấp một tính năng cho phép người quản lý trang web và khách hàng có thể trao đổi thông tin qua tin nhắn. 25 - Truy Cập Tính Năng Nhắn Tin: Người dùng đã đăng ký và đăng nhập thành công vào hệ thống sẽ có quyền truy cập vào tính năng nhắn tin. - Giao Diện Người Dùng: Giao diện nhắn tin phải thân thiện, dễ sử dụng, với khả năng hiển thị lịch sử tin nhắn và thông báo tin nhắn mới. - Bảo Mật Thông Tin: Tin nhắn giữa người quản lý và khách hàng phải được mã hóa và bảo vệ để đảm bảo quyền riêng tư và bảo mật thông tin.
- Thông Báo Lỗi và Hỗ Trợ: Nếu có sự cố trong quá trình gửi hoặc nhận tin nhắn, hệ thống phải hiển thị thông báo lỗi rõ ràng và cung cấp hỗ trợ khi cần thiết. - Quyền Truy Cập: Chỉ những người dùng đã xác thực và người quản lý có quyền truy cập vào tính năng nhắn tin. Khách hàng không thể nhắn tin với người dùng khác ngoài người quản lý. - Hướng Dẫn Sử Dụng: Trang nhắn tin cần có hướng dẫn sử dụng rõ ràng, giúp người dùng biết cách gửi, nhận và quản lý tin nhắn của mình.
- Phản Hồi Nhanh Chóng: Hệ thống nên được thiết kế để khuyến khích và hỗ trợ phản hồi nhanh chóng từ phía người quản lý, nhằm tăng cường sự hài lòng của khách hàng.6 Đăng xuất - Chức năng Đăng Xuất: Hệ thống cần cung cấp chức năng đăng xuất để người dùng có thể an toàn thoát khỏi tài khoản của họ. - Truy Cập Chức năng Đăng Xuất: Người dùng đã đăng nhập thành công vào hệ thống nên dễ dàng tìm thấy tùy chọn để đăng xuất, thường được đặt ở phần đầu trang hoặc trong menu cài đặt tài khoản. - Xác Nhận Đăng Xuất: Khi chọn đăng xuất, hệ thống có thể hiển thị một hộp thoại xác nhận để đảm bảo rằng người dùng muốn thoát khỏi tài khoản của mình. - Hoàn Thành Quá Trình Đăng Xuất: Sau khi người dùng xác nhận, hệ thống sẽ đăng xuất người dùng khỏi tài khoản của họ, đảm bảo rằng không còn dữ liệu cá nhân hoặc phiên làm việc nào được lưu trữ trong trình duyệt.
- Thông Báo Đăng Xuất Thành Công: Hệ thống sẽ hiển thị thông báo hoặc trang xác nhận rằng người dùng đã đăng xuất thành công. - Bảo Mật và Quyền Riêng Tư: Quá trình đăng xuất phải đảm bảo rằng mọi thông tin cá nhân và lịch sử duyệt web của người dùng không còn được truy cập trên thiết bị đó sau khi họ đăng xuất.7 Thêm địa chỉ giao hàng - Chức năng Thêm Địa Chỉ Giao Hàng: Hệ thống cần cung cấp chức năng cho phép người dùng đã đăng ký thêm địa chỉ giao hàng vào tài khoản của họ.