1.2.2 Báo cáo, thống kêHoạt động nghiệp vụ Do là một doanh nghiệp nhỏ nên lượng khách tương tác rất quantrọng nên yêu cầu hệ thống thông kê được số lượng khách đã đăng ký,phản hồi cũng n
Mô tả các yêu cầu của hệ thống
Khảo sát hệ thống
1.1.1 Tổng quan về hệ thống
Cửa hàng máy ảnh PhamManhStore là một doanh nghiệp mới thành lập vào năm 2020 Tuy nhiên, trong quá trình phát triển, công ty đã gặp phải những khó khăn trong việc quản lý và mua bán hàng hóa do lượng hàng nhập xuất ngày càng tăng Điều này đã dẫn đến việc mất nhiều thời gian và công sức, đồng thời ảnh hưởng đến độ chính xác của công tác quản lý, gây giảm năng suất hoạt động cho công ty.
PhamManhStore kinh doanh chủ yếu của cửa hàng bao gồm: Máy ảnh cũ, ống kính, chân máy, phụ kiện máy ảnh…
Có 2 vị trí bán hàng: bán hàng, quản lý.
Quy mô: Diện tích của cửa hàng không rộng nên chỉ có 1 nhân viên thu ngân và 1 nhân viên bán hàng.
Nhân lực: o Nhân viên bán hàng o Nhân viên thu ngân o Quản lý
Mức độ tự động hóa hiện tại: Nhập và in hóa đơn từ 1 máy tính xuất, tiếp nhận đơn hàng thông qua page facebook.
Nhược điểm: Khi lượng khách đông việc tiếp nhận yêu cầu phản hồi cũng như thanh toán sẽ bị chậm vì phải xử lý yêu cầu từ những đơn trước đó.
Hướng phát triển của hệ thống hiện tại là xây dựng một phần mềm quản lý hoạt động bán hàng toàn diện, cho phép tiếp nhận đơn hàng và phản hồi của khách hàng một cách nhanh chóng và hiệu quả Hệ thống này cần có khả năng thống kê số liệu từ người dùng, hoạt động trên mạng cục bộ và cho phép nhập xuất hóa đơn từ nhiều máy tính, giúp tăng cường hiệu suất và quản lý bán hàng hiệu quả hơn.
Các hoạt động của hệ thống
Khi có đơn hàng của khách hàng đã tham khảo sản phẩm trên page facebook, nhân viên sẽ tư vấn và ghi lại đơn hàng Sau đó nhập đơn hàng vào word và xuất hóa đơn Nhân viên bán hàng chuẩn bị sản phẩm, đóng gói và chuyển đơn hàng cho người vận chuyển để giao cho khách.
Khách hàng có thể lựa chọn phương thức thanh toán tiền mặt khi nhận hàng từ người vận chuyển Khi nhận hàng, khách hàng sẽ tiến hành thanh toán bằng tiền mặt và nhận lại tiền thừa (nếu có) Đồng thời, khách hàng cũng sẽ nhận được hóa đơn chính thức để phục vụ cho việc khiếu nại hoặc phản hồi sau này.
Khách hàng có thể phản hồi khi sử dụng sản phẩm, cũng như khiếu nại bằng cách nhắn tin trực tiếp trên page để được hỗ trợ
Hình 1.1 Mẫu hóa đơn của cửa hàng
Do là một doanh nghiệp nhỏ nên lượng khách tương tác rất quan trọng nên yêu cầu hệ thống thông kê được số lượng khách đã đăng ký, phản hồi cũng như đặt mua sản phẩm
1.2.3 Cập nhật thông tin hệ thống
Người quản lí có thể thêm, sửa, xóa thông tin:
Các loại danh mục sản phẩm.
Các yêu cầu của hệ thống
Khắc phục được nhược điểm của hệ thống cũ, hệ thống mới cần có các chức năng sau:
Cập nhật thông tin về: sản phẩm, danh mục, đơn hàng.
Xuất hóa đơn bán hàng.
Thống kê số khách hàng đã tương tác, đăng ký, số đơn hàng.
Tiếp nhận phản hồi của người dung kịp thời
Ngoài ra hệ thống mới cần phải đáp ứng:
Khả năng hoạt động ổn định.
Hệ thống làm việc nhang chóng và đảm bảo tin cậy.
Giao diện dễ sử dụng, thân thiện với người dùng.
1.3.2 Yêu cầu phi chức năng
Bộ xử lý 32 bit (x86) hoặc 64 bit(x64) có tốc độ từ 1 GHz trở lên.
Đĩa cứng có dung lượng trống từ 20GB trờ lên.
Ngoài ra cần lắp đặt thêm các thiết bị ngoại vi khác phục vụ cho hệ thống mới vận hành.
Hệ điều hành Windows 7 trở lên
Hệ quản trị cơ sở dữ liệu SQL Server 2014
Chi phí thay thế, năng cấp hệ thống máy tính là lớn
Bên cạnh đó còn các chi phí về bản quền các phần mềm.
Các yêu cầu chức năng của hệ thống
Biểu đồ use case
Tìm kiếm: Use case này cho phép khách hàng có thể tìm kiếm sản phẩm theo thên.
Xem chi tiết: Use case này cho phép khách hàng có thể xem chi tiết sản phẩm hiện có của hệ thống.
Đặt hàng: Use case cho này cho phép khách hàng đặt hàng trực tiếp trên hệ thống.
Đăng ký: Use case cho phép khách hàng đăng ký tài khoản.
Đăng nhập: Use case cho phép khách hàng đăng nhập vào hệ thống.
Phản hồi: Use case này cho phép khách hàng gửi phản hồi về hệ thống.
2.1.2 Các use case thứ cấp
Hình 2.3 Use case thứ cấp
Đăng nhập: use case cho phép nhân viên hoặc người quản trị đăng nhập vào hệ thống để quản lý.
Quản lý đơn hàng: use case cho phép quản trị và nhân viên xem, sửa tình trạng đơn khách đã đặt sản phẩm.
Quản lý danh mục: use case cho phép quản trị xem, thêm, sửa, xóa danh mục.
Quản lý sản phẩm: use case cho phép quản trị xem, thêm, sửa, xóa sản phẩm.
Quản lý tài khoản: Use case này cho phép người quản trị xem, thêm, sửa tài khoản.
Thống kê: use case này thống kê các các thông tin như số khách hàng đã đăng ký, số phản hồi, đơn hàng, sản phẩm
Quản lý phản hồi: Use case này cho phép người quản trị xem phản hồi của khách hàng về sản phẩm, thông tin liên hệ.
2.1.3 Quan hệ giữa các use case Đăng nhập
Hình 2.4 Use case đăng nhập
Hình 2.5 Use case quản lý danh mục
Hình 2.6 Use case quản lý sản phẩm
Hình 2.7 Use case quản lý tài khoản
Hình 2.8 Use case quản lý phản hồi
Hình 2.9 Use case quản lý đơn hàng
Mô tả chi tiết các use case
Use case này cho phép người dùng (nhân viên & quản trị) đăng nhập vào hệ thống
1 Use case này bắt đầu khi người dùng muốn đăng nhập vào hệ thống Hệ thống sẽ hiển thị màn hình yêu cầu nhập tên đăng nhập và mật khẩu.
2 Người dùng nhập tên và mật khẩu sau đó click vào nút Đăng nhập Hệ thống kiểm tra tên đăng nhập, mật khẩu và quyền truy nhập trong bảng tbl_roles và hiển thị màn hình hệ thống với các menu tương ứng với quyền người dùng Use case kết thúc.
1 Tại bước 2 trong luồng cơ bản nếu người dùng nhập sai tên hoặc/và mật khẩu thì hệ thống sẽ hiển thị thông báo lỗi và yêu cầu nhập lại Người dùng nhập lại để tiếp tục và use case kết thúc
2 Tại bước 2 trong luồng cơ bản nếu hệ thống không thể kết nối được với cơ sở dữ liệu thì sẽ hiển thị một thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt:
Không có. Điểm mở rộng:
Use case này cho phép người quản trị xem, thêm, sửa, xóa sản phẩm
1 Use case này băt đầu khi người quản trị click vào mục Sản phẩm Hệ thống sẽ hiển thị màn hình danh sách sản phẩm gồm các thông tin: Mã sản phẩm, tên sản phẩm, hình ảnh, danh mục, giá tiền, trạng thái sản phẩm, icon chỉnh sửa thông tin, icon dừng kinh doanh, nút THÊM SẢN PHẨM.
2 Để thêm sản phẩm, người dung sẽ click vào nút THÊM
Khi người dùng tạo sản phẩm mới, hệ thống sẽ hiển thị biểu mẫu nhập thông tin chi tiết về sản phẩm, bao gồm tên sản phẩm, giá bán, giá sale, mô tả ngắn gọn, mô tả chi tiết, danh mục sản phẩm, ảnh đại diện và ảnh khác Người dùng cần nhập đầy đủ thông tin sản phẩm để hệ thống có thể lưu trữ và quản lý hiệu quả.
3 Khi người dùng click vào nút Lưu hệ thống sẽ cập nhật thông tin sản phẩm mới vào bảng tbl_products và quay trờ về màn danh sách.
4 Để chỉnh sửa sản phẩm người dung sẽ click vào icon chỉnh sửa trên danh sách hệ thống sẽ hiển thị form nhập thông tin danh mục báo gồm: tên, giá, giá sale, mô tả ngắn, mô tả chi tiết, danh mục, ảnh đại diện, ảnh khác, sản phẩm bán chạy dữ liệu sản phẩm sẽ được fill sẵn Người dùng chỉnh sửa, khi chỉnh sửa có thể khôi phục lại trạng thái ban đầu khi chưa chỉnh sửa bằng cách click nút khôi phục.
5 Khi người dùng click vào nút Lưu hệ thống sẽ cập nhật lại thông tin danh mục vào bảng tbl_ products và quay trờ về màn danh sách.
6 Khi sản phẩm đã dừng kinh doanh người dùng click icon
Dừng kinh doanh ở màn danh sách sản phẩm để chuyển trạn thái dừng kinh doanh.
1 Trong quá trình thực hiện use case nếu người dùng click vào menu bên trái thì use case kết thúc
2 Tại tất cả các bước trong luồng cơ bản nếu hệ thống không thể kết nối được với cơ sở dữ liệu thì sẽ hiển thị một thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt:
Nhân viên phải đăng nhập trước khi thực hiện use case.
Nếu use case kết thúc thành công thì thông tin về sản phẩm sẽ được lưu vào cơ sở dữ liệu. Điểm mở rộng:
Use case này cho phép người quản trị xem, thêm, sửa, xóa danh mục
1 Use case này băt đầu khi người quản trị click vào mục
Hệ thống sẽ hiển thị màn hình danh sách danh mục sản phẩm, bao gồm các thông tin quan trọng như Mã danh mục, Tên danh mục, Mã danh mục con, Icon chỉnh sửa, Chi tiết và nút THÊM DANH MỤC, giúp người dùng dễ dàng quản lý và theo dõi các danh mục sản phẩm của mình.
2 Để thêm danh mục, người dung sẽ click vào nút THÊM
DANH MỤC hệ thống sẽ hiển thị form nhập thông tin danh mục báo gồm: tên, mô tả, danh mục cha Trong đó danh mục cha phục vụ cho việc làm menu 2 cấp Người dùng nhập đầy đủ thông tin trong đó mô tả không bắt buộc.
3 Khi người dùng click vào nút Lưu hệ thống sẽ cập nhật thông tin danh mục mới vào bảng tbl_category và quay trờ về màn danh sách.
4 Để chỉnh sửa danh mục người dung sẽ click vào icon chỉnh sửa trên danh sách hệ thống sẽ hiển thị form nhập thông tin danh mục báo gồm: tên, mô tả, danh mục cha Người dùng nhập đầy đủ thông tin trong đó mô tả không bắt buộc Người dùng nhập có thể khôi phục lại trạng thái ban đầu khi chưa chỉnh sửa bằng cách click nút khôi phục.
5 Khi người dùng click vào nút Lưu hệ thống sẽ cập nhật lại thông tin danh mục vào bảng tbl_category và quay trờ về màn danh sách.
1 Trong quá trình thực hiện use case nếu người dùng click vào menu bên trái thì use case kết thúc
2 Tại tất cả các bước trong luồng cơ bản nếu hệ thống không thể kết nối được với cơ sở dữ liệu thì sẽ hiển thị một thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt:
Nhân viên phải đăng nhập trước khi thực hiện use case.
Nếu use case kết thúc thành công thì thông tin về danh mục sản phẩm sẽ được lưu vào cơ sở dữ liệu. Điểm mở rộng:
Use case này cho phép người quản trị xem, thêm, tài khoản người dùng
1 Use case này băt đầu khi người quản trị click vào mục Tài khoản Hệ thống sẽ hiển thị màn hình danh sách tài khoản gồm các thông tin: Mã tài khoản, tên tài khoản, Email, vai trò.
2 Để thêm tài khoản, người dung sẽ click vào nút THÊM
TÀI KHOẢN hệ thống sẽ hiển thị form nhập thông tin tài khoản báo gồm: họ tên, mật khẩu, email, phân quyền Người dùng nhập đầy đủ thông tin.
3 Khi người dùng click vào nút Lưu hệ thống sẽ cập nhật thông tin tài khoản mới vào bảng tbl_user và quay trờ về màn danh sách
1 Trong quá trình thực hiện use case nếu người dùng click vào menu bên trái thì use case kết thúc
2 Tại tất cả các bước trong luồng cơ bản nếu hệ thống không thể kết nối được với cơ sở dữ liệu thì sẽ hiển thị một thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt:
Nhân viên phải đăng nhập trước khi thực hiện use case.
Nếu use case kết thúc thành công thì thông tin về người dùng sẽ được lưu vào cơ sở dữ liệu. Điểm mở rộng:
Use case này cho phép người quản trị xem, phản hồi người dùng
1 Use case này băt đầu khi người quản trị click vào mục
Phản hồi Hệ thống sẽ hiển thị màn hình danh sách danh phản hồi của khách hàng gồm các thông tin: họ tên, email, tiêu đề, nội dung.
2 Trong quá trình thực hiện use case nếu người dùng click vào menu bên trái thì use case kết thúc
3 Tại tất cả các bước trong luồng cơ bản nếu hệ thống không thể kết nối được với cơ sở dữ liệu thì sẽ hiển thị một thông báo lỗi và use case kết thúc.
Các yêu cầu đặc biệt:
Nhân viên phải đăng nhập trước khi thực hiện use case.
Không có Điểm mở rộng:
Use case này cho phép người quản trị xem, sửa, chuyển trạng thái đơn hàng
Thiết kế cơ sở dữ liệu
Mô hình hóa dữ liệu
tbl_category: lưu thông tin về danh mục sản phẩm
tbl_products: lưu thông tin về chi tiết sản phẩm
tbl_products_images: lưu thông tin về hình ảnh của sản phẩm
tbl_roles: lưu thông tin về các quyển phục vụ cho việc phân quyển trong hệ thống
tbl_contact: lưu thông tin về phản hồi của người dùng
tbl_saleorder: lưu thông tin về đơn hàng
tbl_saleorder_products: lưu thông tin về chi tiết các sản phẩm của đơn hàng
tbl_users: lưu thông tin về những người dùng đã đăng ký và những người quản trị
Mỗi danh mục có thể có 1 hoặc nhiều sản phẩm.
Mỗi sản phẩm có thể có 1 hoặc nhiều ảnh đi kèm.
Mỗi đơn hàng có thể có 1 hoặc nhiều sản phẩm.
Mỗi sản phẩm có thể ở trong nhiều giỏ hàng, mỗi giỏ hàng có thể có nhiều sản phẩm.
Thiết kế bảng
Hình 3.16 Bảng tbl_saleorder_product
Quan hệ các bảng
Hình 3.18 Quan hệ giữa các bảng
Thiết kế các chức năng của hệ thống
Use case đăng nhập
Hình 4.19 Biểu đồ trình tự use case đăng nhập
Hình 4.20 Biểu đồ lớp use case đăng nhập
Use case quản lý sản phẩm
Hình 4.21 Biểu đồ trình tự use case quản lý sản phẩm
Hình 4.22 Biểu đồ lớp use case quản lý sản phẩm
Use case quản lý danh mục
Hình 4.23 Biều đồ trình tự quản lý danh mục
Hình 4.24 Biểu đồ lớp quản lý danh mục
Use case quản lý tài khoản
Hình 4.25 Biều trình tự use case quản lý tài khoản
Hình 4.26 Biểu đồ lớp use case quản lý tài khoản
Use case quản lý phản hồi
Hình 4.27 Biểu đồ trình tự use case quản lý phản hồi
Hình 4.28 Biều đồ lớp quản lý phản hồi
Use case quản lý đơn hàng
Hình 4.29 Biểu đồ trình tự quản lý đơn hàng
Hình 4.30 Biểu đồ lớp quản lý đơn hàng
Use case gửi phản hồi
Hình 4.31 Biểu đồ trình tự use case gửi phản hồi
Hình 4.32 Biểu đồ lớp use case gửi phản hồi
Use case đăng ký
Hình 4.33 Biểu đồ trình tự use case đăng ký
Hình 4.34 Biểu đồ lớp use case đăng ký
Use case đặt hàng
Hình 4.35 Biều đồ trình tự use case đặt hàng
Hình 4.36 Biều đồ lớp use case đặt hàng
Use case tìm kiếm
Hình 4.37 Biều đồ trình tự use case tìm kiếm
Hình 4.38 Biều đồ lớp tìm kiếm
Thiết kế giao diện và cài đặt
Sơ đồ điều hướng giữa các màn hình
Hình 5.39 Sơ đồ điều hướng khách hàng
Hình 5.40 Sơ đồ điều hướng quan trị
Thiết kế chi tiết tiết màn hình
5.2.1 From đăng nhập cho khách hàng
Hình 5.41 Form đăng nhập cho khách hàng
5.2.2 Form đăng ký thành viên
Hình 5.42 Form đăng ký thành viên
Hình 5.43 Giao diện trang chủ
5.2.4 Giao diện danh mục sản phẩm
Hình 5.44 Giao diện danh mục sản phẩm
5.2.5 Giao diện chi tiết sản phẩm
Hình 5.45 Giao diện chi tiết sản phẩm
Hình 5.46 Giao diện giỏ hàng
5.2.7 Giao diện trang liên hệ
Hình 5.47 Giao diện trang liên hệ
5.2.8 Giao diện trang tìm kiếm
Hình 5.48 Giao diện trang tìm kiếm
5.2.9 Giao diện quản lý danh mục
Hình 5.49 Giao diện quản lý danh mục
5.2.10 Giao diện quản lý sản phẩm
Hình 5.50 Giao diện quản lý sản phẩm
5.2.11 Giao diện quản lý phản hồi
Hình 5.51 Giao diện quản lý phản hồi
5.2.12 Giao diện quản lý tài khoản
Hình 5.52 Giao diện quản lý tài khoản
Hình 5.53 Giao diện thống kê
Giới thiệu spring framework, spring MVC
5.3.1 Giới thiệu về Spring MVC
Spring MVC là một framework quan trọng trong mô hình MVC của các ứng dụng web, cung cấp kiến trúc MVC và các component cần thiết để phát triển các ứng dụng web linh hoạt và hiệu quả hơn.
5.3.3 Các thành phần của Spring MVC
Các thành phần cơ bản này bao gồm:
+ View: là các file JSP, html,
+ Model: những file như POJO Service, DAO sẽ thực hiện cho việc truy cập database và xử lý business
+ Control: Chính là Dispatcher Controller, Controller và Handler Mapping: Nó sẽ thực hiện việc điều hướng cho các request.
Spring MVC cần phải request thông quan cho một Front-controller Mỗi một controller sẽ đại diện về trách nhiệm và yêu cầu của các thành phần khác của ứng dụng để có thể thực hiện cho việc xử lý thực tế Trong Spring MVC DispatcherServlet chính là một font-controller Đầu tiên, các request đến sẽ được đón nhận cũng như xử lý bởi DispatcherServlet, về cơ bản thì DispatcherServlet sẽ được sử dụng giúp xử lý các HTTP request vì nó được kế thừa từ HTTPServlet DispatcherServlet này sẽ gửi các request tới cho các controller và quyết định hồi đáp chúng bằng biện pháp gửi lại view
Sau khi đã nhận được yêu cầu của HTTP, DispatcherServlet sẽ liên lạc với HandlerMapping nhằm xác định controller nào sẽ xử lý yêu cầu này
DispatcherServlet sẽ gửi yêu cầu đến controller phù hợp để xử lý, sau đó controller sẽ nhận yêu cầu và gọi phương thức thích hợp thông qua phương thức POST hoặc GET Sau khi phương thức được gọi, controller sẽ thiết lập model dữ liệu và trả về tên view cho DispatcherServlet để tiếp tục xử lý yêu cầu.
DispatcherServlet sẽ tiếp nhận sử dụng trợ giúp từ ViewResolver để xác định view cho các yêu cầu từ người dùng
Sau khi quá trình lựa chọn view hoàn thành, DispatcherServlet sẽ chuyển model dữ liệu đến view đó rồi chuyển tới trình duyệt Trạng thái cấu hình của DispatcherServlet trong file web.xml sẽ được thiết lập để đảm bảo quá trình này diễn ra đúng theo yêu cầu.
Các request bất kỳ tới ứng dụng web đều sẽ được gửi tới Front Controller
Khi đó, Front Controller sẽ sử dụng Handler Mapping để nắm rõ controller nào sẽ xử lý request đó
Controller sẽ nhận request rồi gọi ới class service thích hợp để thực hiện xử lý yêu cầu
Sau khi hoàn thành xử lý, Controller sẽ nhận model từ tầng Service hoặc tầng DAO
Controller sẽ tiến hành gửi model vừa mới nhận được đến Front Controller
Dispatcher Servlet sẽ tìm kiếm các mẫu view rồi sử dụng viewresolver và truyền model vào cho nó
View template, view page và model sẽ được build và gửi trả chúng trở lại Front Controller
Front Controller giữa một page view tới trình duyệt để chúng có thể hiển thị nó cho người dùng.
5.3.5 Lợi ích khi sử dụng Spring MVC
Các tầng có trong Spring MVC thường độc lập nên việc unit test sẽ trở nên dễ dàng hơn rất nhiều
Phần view của chúng sẽ được tích hợp với nhiều Framework về UI như là: JSF, Freemarker hoặc Themeleaf,
Spring MVC base có trên các POJO class nên hành động của chúng thường sẽ đơn giản hơn
Có thể hỗ trợ được cả Annotation và XML config giúp cho quá trình phát triển trở nên sạch hơn và nhanh hơn rất nhiều
Có thể cung cấp giúp việc phân chia trở nên rõ ràng, linh hoạt hơn giữa các controller, service, data access layer.
Tổng kết và đánh giá
Hệ thống hiện tại đã xây dựng được cơ bản các chức năng theo như yêu cầu đã đề ra ban đầu Đó là hiển thị sản phẩm máy ảnh, đăng ký, đăng nhập, quản lý sản, tìm kiếm, quản lý hóa đơn, phản hồi…
Hệ thống được thiết kế tương đối rõ ràng và chi tiết, các Usecase và các chức năng được giới thiệu, mô tả chi tiết và dễ hình dung Mặc dù việc áp dụng các giải pháp công nghệ cũng như các thuật toán vào xây dựng hệ thống vẫn còn những thiếu sót nhưng em sẽ hoàn thành và phát triển trong thời gian tới.
+ Hoàn thành khảo sát hệ thống.
Để xây dựng một hệ thống toàn diện, việc hoàn thành thiết kế hệ thống là bước đầu tiên quan trọng Điều này bao gồm việc phân tích các trường hợp sử dụng (Usecase), thiết kế cơ sở dữ liệu và biểu đồ, cũng như hoàn thiện thiết kế giao diện người dùng Sau đó, giai đoạn lập trình và triển khai các danh mục quan trọng sẽ được thực hiện, bao gồm quản lý sản phẩm, quản lý tài khoản, quản lý phản hồi, tìm kiếm và quản lý hóa đơn.
+ Chưa hoàn thành được chức năng thêm sản phẩm yêu thích khi đăng nhập tài khoản.
+ Chưa hoàn thành được chức năng quản lý kho.