



























Preview text:
  lOMoARcPSD| 10435767
BỘ THÔNG TIN VÀ TRUYỀN THÔNG 
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG 
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH  LẬP TRÌNH WEB 
ĐỀ TÀI: WEBSITE BÁN RAU CỦ    :    :    :                  lOMoARcPSD| 10435767 Mục lục  I. 
KHẢO SÁT VÀ PHÂN TÍCH HỆ 
THỐNG.....................................................................................2  1. 
Tên đề tài: Xây dựng website bán rau củ.........................................................................................2  2. 
Sử dụng...........................................................................................................................................2  3. 
Công cụ sử dụng.............................................................................................................................2  4. 
Phân quyền và chức năng..............................................................................................................2 -
 Người dùng chưa có tài khoản...................................................................................................2 -
 Người dùng có tài khoản............................................................................................................2    - 
Admin..........................................................................................................................................2  5. 
Phân tích hệ thống..........................................................................................................................2  II. 
GIAO DIỆN....................................................................................................................................4  1. 
Trang chủ........................................................................................................................................4  2. 
Trang đăng kí và đăng nhập..........................................................................................................6  3. 
Trang xem sản phẩm......................................................................................................................7  4. 
Trang đặt hàng...............................................................................................................................8  5. 
Trang thông tin liên hệ...................................................................................................................9  6. 
Trang xem đơn đặt hàng của người dùng...................................................................................10  7. 
Trang Admin quản lý sản phẩm..................................................................................................11  8. 
Trang Admin quản lý người dùng...............................................................................................11  9. 
Trang Admin quản lí order.........................................................................................................12  III. 
TÍNH NĂNG.................................................................................................................................13  1. 
Tìm kiếm.......................................................................................................................................13  2. 
Đăng kí – đăng nhập.....................................................................................................................13  3. 
Sửa thông tin người dùng.............................................................................................................18  4. 
Xem danh sách đơn đặt hàng......................................................................................................18  5. 
Thêm vào giỏ hàng, xóa khỏi giỏ hàng, đặt hàng.......................................................................18 
a. Thêm giỏ hàng..........................................................................................................................18  b. 
Xóa sản phẩm khỏi giỏ hàng....................................................................................................20  c. 
Tiến hàng đặt hàng...................................................................................................................21  6. 
Liên lạc..........................................................................................................................................23  7. 
Tính năng quản lý (Admin).........................................................................................................25 
a. Quản lý sản phẩm.....................................................................................................................25  b. 
Thêm sản phẩm.........................................................................................................................25  c. 
Sửa sản phẩm............................................................................................................................26  d. 
Thêm người dùng......................................................................................................................28      lOMoARcPSD| 10435767 e. 
Quản lý giao hàng.....................................................................................................................28  I. 
KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 
1. Tên đề tài: Xây dựng website bán rau củ  2. Sử dụng  - Spring MVC, SQL Server 
- Hibernate, Validation, Bean, Email 
- HTML, CSS, Bootstrap, Jquery và một vài thư viện được thiết kế sẵn. 
3. Công cụ sử dụng  - Microsoft SQL Server 2019  - Eclispe IDE. 
4. 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 kí tài khoản   Gửi phản hồi   
- 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   Đặt hàng    - Admin  
 Quản lí sản phẩm (thêm, sửa)   Quản lí người dùng 
 Quản lí đơn đặt hàng 5. Phân tích hệ thống  Gồm 5 bảng: - Users  - Products  - Orders  - OrderDetails  - Categories 
 Mô hình Diagram:      lOMoARcPSD| 10435767  
Chi tiết bảng:  a.  Users: c.  Orders  b.  Products         d.  OrderDetails    e.  Categories    II.  GIAO DIỆN  1. Trang chủ      lOMoARcPSD| 10435767       lOMoARcPSD| 10435767       lOMoARcPSD| 10435767
2. Trang đăng kí và đăng nhập        lOMoARcPSD| 10435767
3. Trang xem sản phẩm        lOMoARcPSD| 10435767 4. Trang đặt hàng        lOMoARcPSD| 10435767
5. Trang thông tin liên hệ        lOMoARcPSD| 10435767
6. Trang xem đơn đặt hàng của người dùng   
7. Trang Admin quản lý sản phẩm        lOMoARcPSD| 10435767
8. Trang Admin quản lý người dùng 
- Quản lí người dùng    - Thêm người dùng        lOMoARcPSD| 10435767
9. Trang Admin quản lí order    III. TÍNH NĂNG  1. 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      lOMoARcPSD| 10435767  
2. Đăng kí – đăng nhập 
- Đăng kí, đăng nhập: Sử dụng validation để kiểm tra      lOMoARcPSD| 10435767  
- Trước tiên, nó sử dụng phương thức authenticateUser của đối tượng userDao 
đểxác thực người dùng. Nếu xác thực thành công, nó tạo một đối tượng 
HttpSession để lưu trữ thông tin đăng nhập và chuyển hướng người dùng đến các  trang tương ứng. 
- Nếu xác thực không thành công, phương thức kiểm tra xem tài khoản và mật 
khẩucó được nhập không và thêm thông báo tương ứng vào mô hình model. Sau 
đó, nó trả về trang Login/login để hiển thị lại form đăng nhập với thông báo lỗi. 
- Phương thức logout được sử dụng để đăng xuất người dùng. Nó nhận đối 
tượngHttpServletRequest và HttpSession. Phương thức sử dụng phương thức 
removeAttribute của đối tượng HttpSession để xóa thuộc tính loggedInUser. Sau 
đó, nó chuyển hướng đến trang được chỉ định trong request.getHeader("Referer"), 
để quay lại trang trước đó.      lOMoARcPSD| 10435767       lOMoARcPSD| 10435767  
- 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. Nếu tên người dùng đã tồn tại thì sẽ trả về trang Login/SignUp và thông  báo lỗi.      lOMoARcPSD| 10435767       lOMoARcPSD| 10435767
3. 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. 
4. 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 
5. Thêm vào giỏ hàng, xóa khỏi giỏ hàng, đặt hàng.  a. Thêm giỏ hàng   
- Sử dụng session để lưu thông tin giỏ hàng 
- Phương thức addCart nhận vào HttpServletRequest, HttpSession và id 
củasản phẩm được chọn. Đầu tiên, nó kiểm tra xem giỏ hàng có tồn tại trong 
session hay không. Nếu không tồn tại, nó tạo một đối tượng  HashMap mới.      lOMoARcPSD| 10435767
- Sau đó, phương thức gọi addCart để thêm sản phẩm vào giỏ hàng. 
Phươngthức này 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. Kết quả trả về là một giỏ hàng đã được cập nhật. 
- Sau khi cập nhật giỏ hàng, phương thức lưu giỏ hàng vào session bằngcách 
gán giỏ hàng vào thuộc tính Cart của session. Đồng thời, nó cũng lưu tổng 
giá trị của giỏ hàng bằng cách gọi phương thức totalPrice của cartDao và lưu 
vào thuộc tính TotalPrice của session. 
- Cuối cùng, phương thức chuyển hướng đến trang được chỉ định 
trongrequest.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.        lOMoARcPSD| 10435767  
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          lOMoARcPSD| 10435767
c. Tiến hàng đặt 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óakhỏi giỏ hàng.      lOMoARcPSD| 10435767       lOMoARcPSD| 10435767       lOMoARcPSD| 10435767 6. Liên lạc   
7. Tính năng quản lý (Admin) 
a. Quản lý sản phẩm      lOMoARcPSD| 10435767  
- Người quản lý có thể bật/tắt sản phẩm để hiển thị hoặc không hiển thị lê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.  b. Thêm sản phẩm   
- 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.      lOMoARcPSD| 10435767   c. Sửa sản phẩm   
Phương thức editProduct nhận các tham số là ModelMap và 
@ModelAttribute("editProduct") Products editProduct. Trong đó:      lOMoARcPSD| 10435767
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. 
Sau đó, 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 sản phẩm.   
d. Thêm người dùng 
- Giống với thêm sản phẩm. 
e. Quản lý giao hàng 
- Giống với quản lý sản phẩm    
