Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh thương mại điện tử phát triển mạnh mẽ, các phương thức kinh doanh truyền thống như bày bán trực tiếp tại cửa hàng hay showroom bộc lộ nhiều hạn chế về khả năng tiếp cận thị trường và tối ưu chi phí vận hành. Đối với ngành nông sản, việc đưa các mặt hàng lên môi trường trực tuyến trở thành nhu cầu cấp thiết nhằm rút ngắn khoảng cách giữa nhà cung cấp và người tiêu dùng.

Báo cáo đồ án môn học Công nghệ phần mềm với đề tài "Xây dựng website bán nông sản" do nhóm sinh viên Bùi Lê Tấn Phi và Nguyễn Tấn Cường thực hiện dưới sự hướng dẫn của TS. Nguyễn Trường Hải tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (tháng 12/2021) tập trung giải quyết các bài toán số hóa quy trình kinh doanh nông - lâm sản.

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Khảo sát hiện trạng và phân tích nhu cầu thực tế của mô hình kinh doanh nông sản trực tuyến.
  2. Xác định các tác nhân hệ thống và mô tả chi tiết quy trình nghiệp vụ mua bán hàng hóa.
  3. Thiết lập hệ thống yêu cầu chức năng, yêu cầu phi chức năng và xây dựng sơ đồ trường hợp sử dụng (Use Case).
  4. Thiết kế cơ sở dữ liệu quan hệ và mô hình hóa kiến trúc phần mềm theo mô hình MVC (Model - View - Controller).
  5. Hiện thực hóa hệ thống website thương mại điện tử hoàn chỉnh, hỗ trợ quản lý danh mục, xử lý đơn hàng và tương tác với khách hàng.

Phạm vi nghiên cứu của đồ án giới hạn trong phạm vi nghiệp vụ bán lẻ nông sản trực tuyến, thực hiện trên nền tảng web ứng dụng ngôn ngữ Java và hệ quản trị cơ sở dữ liệu SQL Server.


Cơ sở lý thuyết và phương pháp phát triển

Đồ án áp dụng quy trình phân tích và thiết kế phần mềm hướng đối tượng kết hợp với các tiêu chuẩn kỹ thuật trong phát triển ứng dụng web trên nền tảng Java Enterprise.

Khung kiến trúc và mô hình thiết kế

  • Mô hình MVC (Model - View - Controller): Hệ thống được phân tách thành 3 thành phần độc lập:
    • Model: Chịu trách nhiệm quản lý cấu trúc dữ liệu, kết nối và thực hiện các thao tác truy vấn, cập nhật cơ sở dữ liệu.
    • View: Đảm nhận vai trò hiển thị giao diện người dùng, thu nhận tương tác từ trình duyệt và gửi yêu cầu về Controller.
    • Controller: Tiếp nhận các yêu cầu HTTP từ máy khách, điều hướng xử lý nghiệp vụ, gọi dữ liệu từ Model và trả kết quả về View thích hợp.

Nền tảng công nghệ và công cụ

  • Ngôn ngữ lập trình: Java.
  • Java Servlet & JSP (Java Server Pages): Servlet đóng vai trò Controller xử lý yêu cầu HTTP và điều phối luồng dữ liệu; JSP được dùng ở tầng View để tạo các trang web động nhúng mã Java.
  • JDBC (Java Database Connectivity): Cung cấp API kết nối ứng dụng với hệ thống quản trị cơ sở dữ liệu thông qua kiến trúc hai tầng gồm JDBC API và JDBC Driver API, sử dụng các thành phần cốt lõi như DriverManager, Connection, Statement, ResultSet và xử lý ngoại lệ SQLException.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server.
  • Môi trường phát triển tích hợp (IDE): Eclipse.

Phương pháp nghiên cứu và phát triển

  • Phương pháp thu thập và phân tích nghiệp vụ: Khảo sát các quy trình bán hàng thực tế, xác định các trường hợp sử dụng trọng yếu cho từng nhóm tác nhân.
  • Phương pháp mô hình hóa hệ thống: Sử dụng biểu đồ Use Case tổng quan, biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) để chuẩn hóa thiết kế trước khi lập trình.
  • Phương pháp kiểm thử và hoàn thiện: Kiểm thử các luồng sự kiện chính (Main Flows) và luồng sự kiện phụ/rẽ nhánh (Alternative Flows) của từng chức năng.

Nội dung chính theo từng phần của báo cáo

Báo cáo đồ án được cấu trúc thành các nội dung chính phản ánh toàn bộ vòng đời phát triển của hệ thống phần mềm:

Phần 1: Tổng quan và phân tích hệ thống website

Phần này trình bày lý do lựa chọn đề tài, khảo sát thực trạng kinh doanh nông sản và xác định hai tác nhân chính:

  • Khách hàng (Customer): Người dùng có nhu cầu tìm kiếm, xem thông tin chi tiết, đưa sản phẩm vào giỏ hàng, đặt hàng (thanh toán khi nhận hàng - COD), đánh giá sản phẩm và gửi liên hệ.
  • Quản trị viên (Admin): Người quản lý toàn bộ hệ thống, chịu trách nhiệm quản lý danh mục sản phẩm, xử lý trạng thái đơn hàng, quản lý tin tức, kiểm duyệt bình luận và cấp phát tài khoản.

Phần 2: Giới thiệu về công nghệ sử dụng và mô hình MVC

Trình bày cơ sở lý thuyết chuyên sâu về cơ chế hoạt động của Java Servlet (chu trình sống, cách thức đọc dữ liệu request và gửi response), vòng đời biên dịch của JSP thành Servlet, kiến trúc phân tầng của JDBC, cũng như luồng xử lý thông tin khép kín trong mô hình MVC.

Phần 3: Đặc tả yêu cầu hệ thống và sơ đồ Use Case

Liệt kê chi tiết 16 Use Case của hệ thống, phân loại theo tác nhân, đồng thời xác định các yêu cầu phi chức năng về tốc độ xử lý, giao diện trực quan, tính an toàn dữ liệu và khả năng tương thích trình duyệt.

Phần 4: Thiết kế dữ liệu và cấu trúc dự án

Mô tả chi tiết cấu trúc các bảng trong cơ sở dữ liệu quan hệ, quan hệ giữa các thực thể và định hướng tổ chức các gói (packages), các lớp đối tượng trong cấu trúc mã nguồn dự án trên môi trường Eclipse.


Thiết kế và triển khai hệ thống

Phân rã chức năng và danh sách Use Case

Hệ thống được thiết kế với 16 trường hợp sử dụng (Use Case) chính phục vụ hai nhóm đối tượng tác nhân:

ID Use Case Tên Use Case Đối tượng sử dụng Mô tả chức năng chính
UC1 Đăng nhập Khách hàng, Admin Xác thực người dùng, hỗ trợ luồng xử lý sai mật khẩu và quên mật khẩu qua email.
UC2 Đăng ký Khách hàng Tạo tài khoản mới với các trường dữ liệu bắt buộc và kiểm tra trùng lặp thông tin.
UC3 Thêm sản phẩm vào giỏ hàng Khách hàng Đưa sản phẩm chọn mua vào bộ nhớ giỏ hàng từ trang chi tiết sản phẩm.
UC4 Quản lý giỏ hàng Khách hàng Thay đổi số lượng mua, cập nhật tổng tiền hoặc xóa sản phẩm khỏi giỏ.
UC5 Thanh toán Khách hàng Nhập địa chỉ giao hàng, chọn phương thức Ship COD và xác nhận đơn hàng.
UC6 Đánh giá sản phẩm Khách hàng Gửi số sao, tiêu đề và nội dung nhận xét cho từng mặt hàng.
UC7 Xem danh sách sản phẩm Khách hàng Hiển thị sản phẩm theo danh mục hoặc danh sách sản phẩm mới/nổi bật.
UC8 Tìm kiếm sản phẩm Khách hàng Truy vấn mặt hàng theo từ khóa người dùng nhập vào thanh tìm kiếm.
UC9 Xem thông tin sản phẩm Khách hàng Hiển thị thông số chi tiết, giá cả, hình ảnh và mô tả sản phẩm.
UC10 Quản lý tài khoản Admin Admin Xem danh sách, tạo mới tài khoản quản trị; chỉ cho phép Admin tự xóa tài khoản của chính mình.
UC11 Quản lý tài khoản User Admin Xem danh sách người dùng đã đăng ký và quản lý trạng thái tài khoản.
UC12 Quản lý chuyên mục Admin Thêm, sửa, xóa các nhóm ngành hàng/chuyên mục nông sản.
UC13 Quản lý đơn hàng Admin Cập nhật tiến trình đơn hàng (Xác nhận, Đang giao, Đã giao, Đã hủy) và xóa đơn hàng hủy.
UC14 Quản lý sản phẩm Admin Thêm mới, chỉnh sửa thông tin, cập nhật số lượng, hình ảnh và xóa sản phẩm.
UC15 Quản lý tin tức Admin Đăng tải, chỉnh sửa bài viết tin tức nông nghiệp và quản lý nội dung hiển thị.
UC16 Quản lý bình luận Admin Rà soát phản hồi của khách hàng và xóa bỏ các bình luận không phù hợp/tiêu cực.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu được tổ chức trên Microsoft SQL Server với các bảng dữ liệu cốt lõi phục vụ lưu trữ giao dịch và quản lý hệ thống:

1. Bảng TRANSACTIONS (Lưu thông tin giao dịch, đơn hàng)

STT Tên cột (Column) Kiểu dữ liệu Nullable Chú thích
1 ID INT IDENTITY(1,1) Yes Khóa chính, mã giao dịch tự tăng
2 USER_SESSION NVARCHAR(50) Yes Tên phiên/tên đăng nhập của khách hàng
3 USER_NAME NVARCHAR(50) Yes Họ và tên khách hàng
4 USER_MAIL NVARCHAR(50) Yes Địa chỉ email người mua
5 USER_PHONE NVARCHAR(20) Yes Số điện thoại liên lạc
6 ADDRESS NVARCHAR(300) Yes Địa chỉ giao hàng
7 MESSAGE NVARCHAR(4000) Yes Ghi chú của khách hàng khi đặt đơn
8 AMOUNT NVARCHAR(20) Yes Tổng giá trị đơn hàng
9 PAYMENT NVARCHAR(30) Yes Phương thức thanh toán (COD,...)
10 STATUS NVARCHAR(50) Yes Trạng thái thanh toán (1: đã thanh toán, 0: chưa)
11 CREATED DATE Yes Ngày tạo giao dịch

2. Bảng ADMIN (Lưu thông tin tài khoản quản trị)

STT Tên cột (Column) Kiểu dữ liệu Nullable Chú thích
1 ID INT IDENTITY(1,1) Yes Mã định danh quản trị viên
2 USERNAME NVARCHAR(50) Yes Tên đăng nhập
3 PASSWORD NVARCHAR(50) Yes Mật khẩu xác thực
4 NAME NVARCHAR(50) Yes Họ tên hiển thị của Admin

3. Bảng USER (Lưu trữ danh sách người dùng)

STT Tên cột (Column) Kiểu dữ liệu Nullable Chú thích
1 ID INT IDENTITY(1,1) Yes Mã người dùng tự tăng
... Các trường thông tin khác ... ... Lưu thông tin cá nhân và tài khoản đăng ký

Ngoài ra, hệ thống còn thiết lập các bảng chức năng khác gồm:

  • BOARDNEW: Lưu trữ danh sách bài viết tin tức, tiêu đề, hình ảnh và nội dung.
  • REVIEW: Lưu trữ đánh giá, số sao và bình luận của khách hàng theo từng sản phẩm.
  • CATALOG: Lưu trữ danh mục phân loại các sản phẩm nông sản.

Kết quả và đóng góp

Kết quả đạt được

  • Xây dựng thành công hệ thống website thương mại điện tử chuyên ngành nông sản đáp ứng đầy đủ các luồng nghiệp vụ cơ bản từ phía khách hàng lẫn quản trị viên.
  • Phân tách rõ ràng kiến trúc phần mềm theo mô hình MVC, đảm bảo mã nguồn dễ quản lý và bảo trì.
  • Hoàn thiện luồng đặt hàng và thanh toán trực tiếp qua hình thức Ship COD cùng quy trình kiểm duyệt, xử lý trạng thái đơn hàng chặt chẽ ở trang quản trị.
  • Cung cấp tính năng tương tác đa chiều cho phép người dùng đánh giá, bình luận về sản phẩm và hỗ trợ Admin kiểm duyệt nội dung độc hại.

Đóng góp thực tiễn

  • Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết (đặc tả 16 Use Case, luồng sự kiện chính/phụ, thiết kế bảng dữ liệu) cho bài toán thương mại điện tử nông sản.
  • Đưa ra giải pháp số hóa kênh phân phối nông sản, hỗ trợ kết nối trực tiếp giữa nhà cung cấp và người tiêu dùng.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

  • Chức năng gửi ý kiến/phản hồi đóng góp về cửa hàng qua biểu mẫu liên hệ (Model gửi ý kiến về cửa hàng) mới dừng lại ở mức thiết kế giao diện, chưa hoàn thiện phần xử lý dữ liệu backend trong phạm vi báo cáo.
  • Phương thức thanh toán chủ yếu tập trung vào hình thức thanh toán khi nhận hàng (Ship COD), chưa tích hợp các cổng thanh toán trực tuyến tự động (thẻ ngân hàng, ví điện tử).

Hướng mở rộng và phát triển

  • Tích hợp thêm các cổng thanh toán điện tử trực tuyến nhằm đa dạng hóa phương thức thanh toán cho khách hàng.
  • Hoàn thiện phân hệ chăm sóc khách hàng tự động, xử lý trọn vẹn biểu mẫu phản hồi và hệ thống gửi thư điện tử thông báo trạng thái đơn hàng theo thời gian thực.
  • Nâng cấp thuật toán gợi ý sản phẩm dựa trên lịch sử xem và hành vi mua sắm của người dùng.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo phù hợp cho:

  1. Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu về cấu trúc một báo cáo đồ án môn học Công nghệ phần mềm, từ khâu khảo sát hiện trạng, phân tích Use Case, thiết kế cơ sở dữ liệu đến hiện thực mã nguồn bằng Java Servlet/JSP.
  2. Người học lập trình Java Web căn bản: Cung cấp mô hình triển khai thực tế của kiến trúc MVC truyền thống kết hợp với JDBC để kết nối cơ sở dữ liệu SQL Server mà không cần sử dụng các framework phức tạp.
  3. Người phát triển ứng dụng thương mại điện tử quy mô vừa và nhỏ: Tham khảo cấu trúc cơ sở dữ liệu các bảng giao dịch (TRANSACTIONS), bảng danh mục (CATALOG), bảng đánh giá (REVIEW) và phân quyền người dùng.

Câu hỏi thường gặp

1. Hệ thống website bán nông sản trong đồ án sử dụng kiến trúc và công nghệ nền tảng nào?
Website được xây dựng theo mô hình kiến trúc MVC (Model - View - Controller), sử dụng ngôn ngữ Java với công nghệ Java Servlet và JSP ở tầng ứng dụng, JDBC để kết nối cơ sở dữ liệu Microsoft SQL Server và phát triển trên môi trường IDE Eclipse.

2. Phân hệ Khách hàng hỗ trợ những tính năng chính nào khi mua sắm?
Khách hàng có thể đăng ký, đăng nhập, tìm kiếm sản phẩm theo từ khóa, xem danh sách sản phẩm theo danh mục, xem chi tiết sản phẩm, thêm/xóa/cập nhật giỏ hàng, đặt hàng thanh toán theo hình thức Ship COD và viết đánh giá/bình luận sản phẩm.

3. Quản trị viên (Admin) có những quyền hạn gì đối với tài khoản và đơn hàng?
Admin có quyền xem danh sách đơn hàng và cập nhật các trạng thái (đã xác nhận, đang giao, đã giao, đã hủy). Về tài khoản, Admin có thể tạo tài khoản admin mới nhưng chỉ có quyền chỉnh sửa hoặc xóa tài khoản của chính mình, không được can thiệp xóa tài khoản của admin khác cùng cấp.

4. Cơ sở dữ liệu của hệ thống lưu trữ thông tin giao dịch mua hàng qua bảng nào và gồm những thông tin gì?
Thông tin giao dịch được lưu tại bảng TRANSACTIONS với 11 trường dữ liệu chính: ID, USER_SESSION, USER_NAME, USER_MAIL, USER_PHONE, ADDRESS, MESSAGE, AMOUNT, PAYMENT, STATUS và CREATED.

5. Luồng xử lý khi người dùng nhập sai mật khẩu hoặc quên mật khẩu được thiết kế ra sao?
Khi nhập sai thông tin đăng nhập, hệ thống sẽ giữ nguyên màn hình và hiển thị cảnh báo để người dùng nhập lại. Trong trường hợp quên mật khẩu, người dùng nhập email đã đăng ký, hệ thống kiểm tra tính hợp lệ và gửi email chứa mật khẩu để khôi phục tài khoản.


Kết luận

Đồ án "Xây dựng website bán nông sản" của sinh viên Bùi Lê Tấn Phi và Nguyễn Tấn Cường đã hiện thực hóa thành công một hệ thống thương mại điện tử hoàn chỉnh trên nền tảng Java Servlet/JSP kết hợp SQL Server theo mô hình MVC. Báo cáo thể hiện rõ nét quy trình phát triển phần mềm chuẩn mực thông qua hệ thống đặc tả 16 Use Case, thiết kế cơ sở dữ liệu chi tiết và phân định rõ ràng quyền hạn giữa người dùng và quản trị viên. Đây là tài liệu tham khảo hữu ích cho việc học tập và nghiên cứu các đồ án công nghệ phần mềm ứng dụng web.