I Hiện trạng: Văn phòng phẩm là sản phẩm không thể thiếu đối với học sinh, sinh viên và những người là hành chính, văn phòng. Vì vậy, các cửa hàng văn phòng phẩm thường được đặt tại các khu vực có trường học hay các văn phòng Với thị trường văn phòng phẩm được xem là có rất nhiều tiềm năng phát triển thì chúng ta cũng cần có sự chuyên nghiệp và tinh tế để kinh doanh hiệu quả. Bằng cách thiết kế web bán văn phòng phẩm cho riêng mình, ta có thể giới thiệu doanh nghiệp của mình đến mọi người trên toàn thế giới dù họ ở đâu. Từ đó, giúp doanh nghiệp tăng lượt khách hàng tiềm năng, tăng doanh thu và mang lại lợi nhuận lớn nhất cho doanh nghiệp. Website bán văn phòng phẩm được thiết kế từ website bán hàng. Khách hàng sẽ được cung cấp đầy đủ các tính năng quản lý của một trang web bán hàng thông thường. Đồng thời, các tính năng trên website văn phòng phẩm dễ dàng thay đổi theo ý muốn của bạn và cũng dễ cập nhật thông tin sản phẩm một cách hiệu quả nhất.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ BÁN VĂN PHÒNG PHẨM
CHO NHÀ SÁCH PHƯƠNG NAM Môn học: Nhập môn Công nghệ Phần mềm
Giảng viên hướng dẫn: Nguyễn Thị Bích Nguyên
Trang 2Mục lục:
A/ XÂY DỰNG ĐỀ TÀI 4
I/ Hiện trạng: 4
II/ Yêu cầu: 4
a Chức năng nghiệp vụ: 4
Bộ phận: Nhân viên Mã số: NV 4
Bộ phận: Quản lý Mã số: QL 6
c Yêu cầu về chất lượng 10
d Mô hình luồng dữ liệu (DFD) chung cho toàn bộ hệ thống 11
e Mô hình luồng dữ liệu (DFD) theo yêu cầu 11
B/ THIẾT KẾ PHẦN MỀM 14
I/ Thiết kế dữ liệu: 14
➢ ERD: 14
➢ Diagram: 15
➢ Danh sách các thành phần của sơ đồ: 15
➢ Danh sách các thuộc tính từng thành phần: 15
II/ Thiết kế xử lý: 20
1 Phân tích các Package và Class trong Web 20
Package: 20
Class trong package: 22
3 Views 27
Trang 3b Giao diện khách hàng: 32
c Giao diện Admin: 36
d Giao diện trang thông báo lỗi: 42
5 Thiết kế xử lý code: 43
code tương tác với database: 43
Code tương tác với model: 45
Code tương tác với View (controller): 47
III/ Kiểm thử chương trình 48
IV/ Tài liệu tham khảo: 50
V/ Tổng kết 50
VI/ Lời cảm ơn 50
Trang 4A/ XÂY DỰNG ĐỀ TÀI
I/ Hiện trạng:
Văn phòng phẩm là sản phẩm không thể thiếu đối với học sinh, sinh viên vànhững người là hành chính, văn phòng Vì vậy, các cửa hàng văn phòng phẩmthường được đặt tại các khu vực có trường học hay các văn phòng
Với thị trường văn phòng phẩm được xem là có rất nhiều tiềm năng phát triểnthì chúng ta cũng cần có sự chuyên nghiệp và tinh tế để kinh doanh hiệu quả Bằngcách thiết kế web bán văn phòng phẩm cho riêng mình, ta có thể giới thiệu doanhnghiệp của mình đến mọi người trên toàn thế giới dù họ ở đâu
Từ đó, giúp doanh nghiệp tăng lượt khách hàng tiềm năng, tăng doanh thu vàmang lại lợi nhuận lớn nhất cho doanh nghiệp
Website bán văn phòng phẩm được thiết kế từ website bán hàng Khách hàng
sẽ được cung cấp đầy đủ các tính năng quản lý của một trang web bán hàng thôngthường Đồng thời, các tính năng trên website văn phòng phẩm dễ dàng thay đổitheo ý muốn của bạn và cũng dễ cập nhật thông tin sản phẩm một cách hiệu quảnhất
II/ Yêu cầu:
Quy định/Công thức liênquan
Biểumẫu liênquan
Ghi chú
1 Đăng nhập
và quản lý
thông tin tài
Lưu trữ Xem lịch sử hoạt động,
quản lý thông tin cá nhân
Trang 53 Xem danh
sách đơn
hàng nhập
Tra cứu Tìm đơn hàng dựa trên các
thông tin: mã đơn hàng, mãsản phẩm,
Xem danh
sách đơn
hàng xuất
Tra cứu Tìm đơn hàng dựa trên các
thông tin: mã đơn hàng, mãsản phẩm, khách hàng,
6 Xem danh
sách nhà
cung cấp
Tra cứu Tìm nhà cung cấp dựa trên
các thông tin: mã nhà cungcấp, tên nhà cung cấp
Khi xóa phảighi rõ nguyênnhân
Khi xóa phảighi rõ nguyênnhân
Trang 7Bộ phận: Quản lý Mã số: QL
Stt Công việc Loại công
việc
Quy định/Công thứcliên quan
Biểu mẫuliên quan
Ghi chú
1 Đăng nhập Lưu trữ Xem lịch sử hoạt động,
quản lý tài khoản đăngnhập của nhân viên
cho nhânviên bị mấthoặc quênmật khẩu
3 Xem thông
tin nhân viên
Tra cứu Quản lý thông tin nhân
viên
4 Xem danh
sách mặt
hàng
Tra cứu Tìm mặt hàng dựa trên
các thông tin: tên sảnphẩm, nhà xuất bản,
5 Xem danh
sách đơn
hàng nhập
Tra cứu Tìm đơn hàng dựa trên
các thông tin: mã đơnhàng, mã sản phẩm,
6 Xem danh
sách đơn
hàng xuất
Tra cứu Tìm đơn hàng dựa trên
các thông tin: mã đơnhàng, mã sản phẩm,khách hàng,
7 Xem danh
sách khách
hàng
Tra cứu Tìm khách hàng dựa
trên các thông tin: mãkhách hàng, tên kháchhàng,
8 Xem danh
sách nhà
cung cấp
Tra cứu Tìm nhà cung cấp dựa
trên các thông tin: mãnhà cung cấp, tên nhàcung cấp
Trang 8Chỉ xóa trong trườnghợp thêm nhầm đơnhàng.
Quản lý vàkiểm trathông tinnhập hàng
11 Quản lý đơn
hàng xuất
Lưu trữ Thêm, xóa, sửa đơn
hàng xuất theo mụcđích
Chỉ xóa trong trườnghợp thêm nhầm đơnhàng
13 Quản lý
danh sách
nhà cung cấp
Lưu trữ Thêm, xóa, sửa thông
tin nhà cung cấp theomục đích
Trang 9nhân viên duy nhất một tài
khoản, không đượctrùng
Bảng quy định/ công thức liên quan
Trang 11Chức năng hệ thống
1 Phân quyền sử dụng - Người quản lý(admin) được
phép sử dụng tất cả các chức năng
- Nhân viên chỉ dung được một vài chức năng đã quy định như:
tra cứu sản phẩm, xem thông tinphiếu nhập, thanh toán hóa đơn
2 Cấp quyền tài khoản Admin sẽ cấp tài khoản cho nhân
viên và cấp quyền sử dụng
3 Cập nhật thông tin
nhân viên Thêm thông tin và cập nhật thông tin nhân viên khi có thay đổi
4 Cập nhật sản phẩm Cập nhập thông tin sản phẩm khi
có thay đổi
Nhập thêm sản phẩm khi hết hàng
Trang 12c Yêu cầu về chất lượng
ST
T
1 Cho phép thay đổi giá sản
phẩm, chương trình
khuyến mãi
Tiến hóa Người dung phần
mềm có thể thay đổi mức giá sản phẩm và chương trình khuyến mãi
2 Hình thức tra cứu thật tiện
Có thể nhập thêm thông tin sản phẩm mới lên trang web Phù hợp với các loại
mn hình máy tính,điện thoại Có thể
áp dụng nhiều trên các trình duyệt khác nhau
5 Tốc dộ thực hiện việc tra
cứu và bán sản phẩm
nhanh
Hiệu quả Tối đa 30 giây
cho mỗi lần cập nhật thông tin mới Hỗ trợ thiết
bị đọc mã vạch
Tối đa 10 giây có
Trang 13d Mô hình luồng dữ liệu (DFD) chung cho toàn bộ hệ thống
Hình ảnh 1 Sơ đồ luồng dữ liệu chung cho toàn bộ hệ thống
e Mô hình luồng dữ liệu (DFD) theo yêu cầu
- DFD về thông tin sản phẩm:
Trang 14- DFD về Nhà cung cấp, tài khoản và hóa đơn bán hàng:
- DFD về thông tin nhân viên:
Trang 15- DFD về thông tin hóa đơn:
Trang 17➢ Diagram:
➢ Danh sách các thành phần của sơ đồ:
Trang 18MẶT HÀNG
1 MAMH primarykey varchar(12) Not Null
9 MALOAI foreignkey varchar(10) Not Null
3 MANV
foreign key varchar(10) Allow Null
4 MAKH
foreign key varchar(10) Allow Null
Trang 19 PHIEUNHAP
PHIẾU NHẬP
1 MAPN primary key varchar(10) Not Null
3 MANV foreign key varchar(10) Allow Null
4 MANCC
foreign key varchar(10) Allow Null
7 USERNAME
foreign key varchar(25) Allow Null
Trang 207 USERNAME
foreign key varchar(25) Allow Null
CT_HOADON
CHI TIẾT HÓA ĐƠN
1 MAHD foreign key varchar(10) Not Null
2 MAMH
foreign key varchar(12) Not Null
Trang 21 CT_PHIEUNHAP
CHI TIẾT PHIẾU NHẬP
1 MAMH foreign key varchar(12) Not Null
2 MAPN
foreign key varchar(10) Not Null
2 MANV
foreign key varchar(10) Not Null
3 MAROLE
foreign key varchar(10) Not Null
Trang 222 com.nhasachphuongnam.comparator Xử lý so sánh đối với các đối tượng
3 com.nhasachphuongnam.controller
chức các lớp thực hiện, xử lý, điều hướng theo yêu cầu của giao diện người dùng
4 com.nhasachphuongnam.controller.admin
chức năng tương tự com.nhasachphuongnam.controller nhưng chỉ chứa các lớp xử lýtrang admin
5 com.nhasachphuongnam.controller.errors
chức năng tương tự com.nhasachphuongnam.controller nhưng chỉ chứa các lớp xử lýkhi có lỗi
Trang 23com.nhasachphuongnam.controller nhưng chỉ chứa các lớp xử lýđối với trang giao diện người dùng
8 com.nhasachphuongnam.dao chứa các interface của các lớp
tương tác với database
9 com.nhasachphuongnam.dao.impl
chức các lớp thực hiện mục đích, điều khiển, tương tác giữa chương trình với database
10 com.nhasachphuongnam.entity chứa các đối tượng tương ứng với các table trong database
11 com.nhasachphuongnam.ExceptionHandler chứa các lớp xử lý các lỗi xử lý thường gặp đối với trang web
12 com.nhasachphuongnam.interceptor chứa các lớp xử lý phần quyền truy cập đối với người dùng
13 com.nhasachphuongnam.model
chứa các đối tượng được thay đổi dựa trên đối tượng trong com.nhasachphuongnam.entity
để dễ dàng tương tác với giao diện người dùng hơn
14 com.nhasachphuongnam.service
chứa các interface của các lớp
có nhiệm vụ tương tác với các đối tượng trong package com.nhasachphuongnam.model
15 com.nhasachphuongnam.service.impl
chức các lớp thực hiện mục đích, điều khiển, xử lý các nhiệm vụ liên quan với các đối tượng trong package
2 GioHang.java Quản lý thông tin của 1 sản phấm trong giỏ hàng
3 GioHangModelAttribute.java Quản lý danh sách các sản phẩm trong giỏ hàng
o Comparator
Trang 241 ProductIdComparator.java So sánh các Product theo id
2 ProductNameComparator.java So sánh các Product theo tên
3 ProductPriceComparator.java So sánh các Product theo giá
Trang 259 InfoController.java
Lớp xử lý, chỉnh sửa thông tin người dùngđang đăng nhập
10 OrderController.java Lớp xử lý xem danh sách toàn bộ đơn hàng
11 ProductController.java Xử lý đối với trang xem danh sách sản phẩm
12 ProductCreateController.java Lớp thao tác thêm sản phẩm mới
15 ProductUploadPhotoController.java Lớp xử lý việc thêm ảnh cho 1 mặt hàng
16 StaffController.java Lớp thao tác xem danh sách nhân viên
17 StaffCreateController.java Lớp xử lý tạo nhân viên mới
18 SupplierController.java
Lớp xử lý nhà cung cấp: xem toàn bộ danhsách nhà cung cấp, thêm và chỉnh sửa thôngtin của nhà cung cấp
o Controller.errors
com.nhasachphuongnam.controller.errors
1 ForbiddenError403.java Xử lý lỗi 403 - quyền truy cập bị hạn chế
2 HTTPError404.java Xử lý lỗi 404 - không tìm thấy url được nhập
o Controller.login
com.nhasachphuongnam.controller.login
1 LoginController.java Xử lý đăng nhập của người dùng
2 LogoutController.java Xử lý đăng xuất của người dùng
3 RegisterController.java Xử lý đăng ký tài khoản mới cho người dùng
o
Trang 26o Controller.user
com.nhasachphuongnam.controller.user
1 ChinhSachCotroller.java Xử lý trang xem chính sách của của hàng
2 ChiTietSanPhamController.java xử lý trang xem chi tiết 1 sản phẩm
5 HuongDanDatHangController.java Xử lý trang xem hướng dẫn đặt hàng
6 HuongDanThanhToanController.java Xử lý trang xem hướng dẫn thanh toán
13 UserController.java
Xử lý điều hướng người dùng đến trang chủ của khách hàng
o
Trang 28o entity
com.nhasachphuongnam.entity
5 HoatDong Lớp đại diện thực thể Hoạt Động tài khoản
7 LoaiMatHang Lớp đại diện thưc thể Loại Mặt Hàng
9 CtPhieuNhap Lớp đại diện thực thể chi tiết Phiếu Nhập
12 CtHoaDon Lớp đại diện thực thể chi tiết Hóa Đơn
KhachHangInterceptor Kiểm tra người đăng nhập là user hay nhânviên
Trang 291 admin chứa các views của Trang admin
2 ERROR chứa cac views của Trang thông báo lỗi
3 login chứa cac views của Trang đăng nhập
4 user chức các views của Trang khách hàng
o folder admin:
Chi tiết folder admin
1 customer quản lý Trang khách hàng
2 dashboard Thống kê, Xem thông tin tổng quát dưới dạng biểu đồ
3 info
quản lý thông tin người dùng đang đăng nhập, thay đổi mật khẩu
4 orders Quản lý đơn hàng
5 product Quản lý thông tin mặt hàng
6 staff Quản lý danh sách nhân viên
7 supplier Quản lý thông tin nhà cung cấp
8 home.jsp Trang chủ của Trang admin
Các views trong từng folder:
Trang 301 changepassword.jsp Trang thay đổi mật khẩu người dùng
2 index.jsp Quản lý thông tin người dùng đang đăng nhập
3 uploadPhoto.jsp Quản lý cập nhập hình ảnh người dùng đang đăng nhập
o Orders
Chi tiết folder orders
1 confirm.jsp Xem thông tin danh sách các đơn đặt hàng của người dùng
2 createIO.jsp Thêm đơn hàng nhập mới
3 export.jsp Xem danh sách đơn hàng của khách hàng
4 finish.jsp
Xem danh thông tin đơn hàng đang được vận chuyển của khách hàng
5 import.jsp Xem danh sách đơn hàng nhập
6 index.jsp Xem danh sách đơn hàng
o product
Chi tiết folder product
1 create.jsp Thêm mặt hàng mới
2 detail.jsp Xem chi tiết một mặt hàng
Trang 31o Staff
Chi tiết folder staff
1 create.jsp Trang thêm nhân viên mới
2 index.jsp Xem danh sách nhân viên
3 uploadPhoto.jsp Cập nhật hình ảnh cho nhân viên
1 403.jsp Trang thông báo lỗi 403
2 404.jsp Trang thông báo lỗi 404
o Login
Chi tiết folder login
1 login.jsp Trang đăng nhập
2 register.jsp Trang đăng ký người dùng là khách hàng mới
o
Trang 32o User
Chi tiết folder User
1 cart.jsp Xem danh sách mặt hàng trong giỏ hàng
2 contact.jsp Thông tin liên hệ của cửa hàng
3 guildOrder.jsp Xem hướng dẫn đặt hàng
4 guildPayment.jsp Xem hướng dẫn thanh toán
5 home.jsp Chứa form để tạo 1 views mới theo cấu trúc chung
6 index.jsp Trang chủ
7 info.jsp Trang thông tin cá nhân của người dùng
8 infoOrder.jsp Xem thông tin đơn hàng của người dùng
9 infoPassword.jsp
Xem và chỉnh sửa thông tin đăng nhập của người dùng đăngnhập
10 introduce.jsp Trang giới thiệu về cửa hàng
12 payment.jsp Trang thanh toán đơn hàng
13 paymentSuccess.jsp Thông báo người dùng đã đặt hàng thành công
14 policy.jsp Trang thông tin chính sách của cửa hàng
15 product.jsp Trang danh sách sản phẩm
16 product-detail.jsp Trang thông tin chi tiết của một sản phẩm
Trang 334 Thiết kế giao diện:
a Giao diện đăng nhập:
Hình ảnh 2 Giao diện đăng nhập
Hình ảnh 3 Giao diện đăng ký
Trang 34b Giao diện khách hàng:
Trang 35Hình ảnh 5 Giao diện trang sản phẩm
Trang 36Hình ảnh 6 Trang chi tiết sản phẩm
Trang 37Hình ảnh 7 Giao diện trang thông tin người dùng (khách hàng)
Trang 38c Giao diện Admin:
Hình ảnh 8 Giao diện trang dashboard
Trang 39Hình ảnh 10 Giao diện trang thêm đơn hàng nhập
Hình ảnh 11 Giao diện trang xác nhận đơn đặt hàng
Trang 40Hình ảnh 12 Trang xác nhận giao hàng thành công
Trang 41Hình ảnh 14 Trang danh sách đơn hàng xuất
Hình ảnh 15 Trang danh sách mặt hàng
Trang 42Hình ảnh 16 Trang loại mặt hàng
Trang 43Hình ảnh 18 Trang danh sách nhà cung cấp
Hình ảnh 19 Trang danh sách nhân viên
Trang 44Hình ảnh 20 Trang thông tin tài khoản
d Giao diện trang thông báo lỗi:
Trang 45Hình ảnh 22 Giao diện trang thông báo lỗi 404
5 Thiết kế xử lý code:
code tương tác với database:
- Đối tượng demo: HoaDon.java
- Thiết kế interface: HoaDonDAO.java
package com.nhasachphuongnam.dao;
import java.util.Date;
import java.util.List;
import com.nhasachphuongnam.entity.HoaDon;
public interface HoaDonDAO {
boolean add(HoaDon hoaDon ); //thêm hóa đơn mới vào database
boolean update(HoaDon hoaDon ); //Cập nhập thông tin mới cu)a đơn hàng vào database
boolean delete(String ma ); //Xóa đơn hàng theo mã đơn hàng
HoaDon getByID(String ma ); //Tìm đơn hàng theo mã đơn hàng
List<HoaDon> getAll(); //Lấ5y toàn bộ đơn hàng trên database
String getLastMa(); //Lấ5y mã đơn hàng cu)a đơn hàng cuô5i danh sách, dùng đê) tạo mã đơn hàng mới
List<HoaDon> getBetweenThoiGian(Date start , Date end ); //Lấ5y danh sách đơn hàng trong khoa)n thời gian input
List<HoaDon> getHoaDonByMaKhachHang(String id ); //Lấ5y danh sách đơn hàng cu)a khách hàng
List<HoaDon> getHoaDonByMaNhanVien(String id ); //lấ5y danh sách đơn hàng thuộc phụ trách cu)a nhấn viên
}
Trang 46- Thiết kế class: HoaDonDAOImpl.java : chọn 1 số phương thức tiêu biểu
o Phương thức add(HoaDon hoaDon);
//thêm đơn hàng xuấ5t mới
public boolean add(HoaDon hoaDon ) {
boolean flag = true; //biê5n kiê)m tra việc thêm có thành công hay không
Session session = factory openSession(); //tạo phiên làm việc mới với database
Transaction tran = session beginTransaction(); //tạo transaction mới đê) lưu lại thông tin và rollback khi cấJn thiê5t
try {
session save( hoaDon ); //lưu đơn hàng mới
for(CtHoaDon i : hoaDon getCtHoaDons()) {
session save( i ); //lưu từng mặt hàng cu)a đơn hàng mới vào trong table CT_HOADON
ex printStackTrace(); //in thông tin lôPi
flag = false; //thêm đơn hàng không thành công
//Lấ5y mã đơn hàng cu)a đơn hàng cuô5i danh sách, dùng đê) tạo mã đơn hàng mới
public String getLastMa() {
String sql = "SELECT top 1 MAHD FROM HoaDon ORDER BY MAHD DESC" ; //cấu lênh query sqlServer tìm ra mã đơn hàng cu)a đơn hàng cuô5i cùng trong table HOADON
Session session = factory getCurrentSession(); //Mơ ) 1 phiên làm việc mới với database (đấy là dạng phiên làm việc tự động đóng)
SQLQuery query = session createSQLQuery( sql ); //Thực hiện truy vấ5n với cấu lệnh query được tạo trước đó