Phân quyền và chức năng- Có 3 nhóm phân quyền: Người dùng chưa có tài khoản, Người dùng có tài khoản, Admin- Người dùng chưa có tài khoản Tìm kiếm sản phẩm Xem thông tin sản phẩm Đăng
KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG
Sử dụng
- HTML, CSS, Bootstrap, Jquery và một vài thư viện được thiết kế sẵn.
Công cụ sử dụng
Phân quyền và chức năng
- Có 3 nhóm phân quyền: Người dùng chưa có tài khoản, Người dùng có tài khoản, Admin
- Người dùng chưa có tài khoản
Xem thông tin sản phẩm
- Người dùng có tài khoản
Có các quyền như người dùng chưa có tài khoản
Xem đơn hàng và trạng thái đặt hàng
Sửa thông tin cá nhân
Quản lí sản phẩm (thêm, sửa)
Quản lí đơn đặt hàng
Phân tích hệ thống
Chi tiết bảng: a Users: b Products c Orders d OrderDetails e Categories
GIAO DIỆN
Trang chủ
Học viện Công nghệ Bưu chính Viễn…
CDT1429 Thiet Ke Web Co Ban Baigiang
Thiết Kế Web Cơ Bản 100% (2) 217
Thiết Kế Web Cơ Bản 100% (1) 214
Thiết Kế Web Cơ Bản None
Pass The TCTest Intro P1-trang-11-27
Thiết Kế Web Cơ Bản None
Bìa kỹ năng thuy ế t trình-làm vi ệ c nhóm
Thiết Kế Web Cơ Bản None
DATN Ph ạ m-Huy-Phong - Đ ồ án t ố t nghi ệ p
Thiết Kế Web Cơ Bản None
Trang đăng kí và đăng nhập
Trang xem sản phẩm
Trang đặt hàng
Trang thông tin liên hệ
Trang xem đơn đặt hàng của người dùng
Trang Admin quản lý người dùng
Trang Admin quản lí order
TÍNH NĂNG
Tìm kiếm
- Tìm kiếm trong cơ sở dữ liệu theo từ khóa được nhập vào sau đó trả về danh sách các sản phẩm
Đăng kí – đăng nhập
- Đăng kí, đăng nhập: Sử dụng validation để kiểm tra
Quá trình xác thực người dùng bắt đầu bằng việc sử dụng phương thức authenticateUser của đối tượng userDao để kiểm tra thông tin đăng nhập Nếu quá trình xác thực thành công, hệ thống sẽ tạo một đối tượng HttpSession để lưu trữ thông tin đăng nhập của người dùng Sau đó, người dùng sẽ được chuyển hướng đến các trang tương ứng dựa trên thông tin đăng nhập đã được xác thực.
Nếu quá trình xác thực không thành công, hệ thống sẽ kiểm tra xem tài khoản và mật khẩu đã được nhập chưa và thêm thông báo lỗi tương ứng vào mô hình Sau đó, hệ thống sẽ trả về trang đăng nhập Login/login để hiển thị lại form đăng nhập cùng với thông báo lỗi cụ thể.
Phương thức logout đóng vai trò quan trọng trong việc đăng xuất người dùng khỏi hệ thống Khi được gọi, phương thức này nhận vào đối tượng HttpServletRequest và HttpSession, cho phép nó thực hiện các thao tác cần thiết để kết thúc phiên làm việc của người dùng Để thực hiện việc này, phương thức logout sử dụng phương thức removeAttribute của đối tượng HttpSession để xóa thuộc tính loggedInUser , từ đó xác nhận người dùng đã đăng xuất thành công Cuối cùng, phương thức này chuyển hướng người dùng đến trang trước đó bằng cách sử dụng giá trị được chỉ định trong request.getHeader("Referer"), đảm bảo trải nghiệm người dùng mượt mà và liền mạch.
Sau khi đăng ký, thông tin đăng ký sẽ được lưu vào cơ sở dữ liệu bằng cách sử dụng Session và Transaction để bắt đầu một giao dịch và thực hiện việc thêm mới sản phẩm, đồng thời kiểm tra tên người dùng đã tồn tại hay chưa, nếu có sẽ trả về trang Login/SignUp và thông báo lỗi tương ứng.
Sửa thông tin người dùng
- Người dùng có thể tự sửa thông tin của mình.
Xem danh sách đơn đặt hàng
- Khách hàng có thể xem danh sách các đơn hàng và trạng thái của đơn
Thêm vào giỏ hàng, xóa khỏi giỏ hàng, đặt hàng
- Sử dụng session để lưu thông tin giỏ hàng
Phương thức addCart hoạt động bằng cách nhận vào HttpServletRequest, HttpSession và id của sản phẩm được chọn Khi thực hiện, phương thức này sẽ kiểm tra xem giỏ hàng có tồn tại trong session hay không Trong trường hợp giỏ hàng chưa được tạo, phương thức sẽ tự động tạo một đối tượng HashMap mới để lưu trữ thông tin sản phẩm được thêm vào giỏ hàng.
Sau đó, phương thức gọi addCart được thực hiện để thêm sản phẩm vào giỏ hàng, phương thức này yêu cầu truyền id của sản phẩm và giỏ hàng hiện tại vào để thực hiện việc thêm sản phẩm vào giỏ hàng Quá trình này sẽ trả về kết quả là một giỏ hàng đã được cập nhật với sản phẩm mới được thêm vào.
Sau khi cập nhật giỏ hàng, hệ thống sẽ lưu trữ thông tin giỏ hàng vào session bằng cách gán giỏ hàng vào thuộc tính Cart của session, đồng thời tính toán và lưu trữ tổng giá trị của giỏ hàng vào thuộc tính TotalPrice của session thông qua phương thức totalPrice của cartDao.
- Cuối cùng, phương thức chuyển hướng đến trang được chỉ định trong request.getHeader("Referer") để quay lại trang trước đó sau khi thêm sản phẩm vào giỏ hàng.
- Tuy nhiên, nếu người dùng đăng xuất thì giỏ hàng sẽ biến mất.
19 b Xóa sản phẩm khỏi giỏ hàng
- Tương tự như chức năng thêm giỏ hàng
- Chức năng này người dùng cần phải đăng nhập để có thể đặt hàng.
- Người dùng cần phải điền đầy đủ thông tin để có thể hoàn thành việc đặt hàng.
- Sau khi đặt hàng thì toàn bộ sản phẩm trong giỏ hàng sẽ được httpSession xóa khỏi giỏ hàng
Liên lạc
Tính năng quản lý (Admin)
Người quản lý có thể kiểm soát việc hiển thị sản phẩm trên trang giao diện người dùng bằng cách thay đổi trạng thái của sản phẩm, cho phép bật hoặc tắt hiển thị một cách linh hoạt Ngoài ra, chức năng thêm sản phẩm cũng được tích hợp, cho phép người quản lý dễ dàng bổ sung các sản phẩm mới vào hệ thống.
- Người quản lý sẽ nhập đầy đủ các thông tin của sản phẩm mới để có thể lưu vào cơ sở dữ liệu.
Phương thức editProduct nhận các tham số là ModelMap và
@ModelAttribute("editProduct") Products editProduct Trong đó: ModelMap được sử dụng để truyền dữ liệu giữa Controller và View.
@ModelAttribute("editProduct") sử dụng để gắn kết đối tượng Products được truyền từ form với biến editProduct trong phương thức.
Để thêm người dùng, phương thức mở một phiên làm việc với cơ sở dữ liệu, bắt đầu một giao dịch và thực hiện việc cập nhật thông tin người dùng.