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ẽ và nhu cầu mua sắm các sản phẩm hoa tươi trực tuyến gia tăng, việc số hóa quy trình kinh doanh trở thành nhu cầu thiết yếu đối với các đơn vị bán lẻ. Đồ án chuyên ngành Hệ thống thông tin với đề tài "BoCongAnh Flowers Shop - Nền tảng Mua Bán và Quản Lý" do nhóm sinh viên Khoa Công nghệ Thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng thực hiện (dưới sự hướng dẫn của TS. Võ Đức Hoàng, hoàn thành tháng 01/2024), tập trung giải quyết bài toán tự động hóa quy trình bán hàng và quản trị nội bộ cho cửa hàng hoa tươi.
Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định gồm:
- Nghiên cứu quy trình nghiệp vụ mua bán và quản lý cửa hàng hoa tươi thực tế.
- Phân tích các yêu cầu chức năng và phi chức năng của hệ thống cho các nhóm người dùng khác nhau.
- Thiết kế cơ sở dữ liệu quan hệ và kiến trúc phần mềm tích hợp đa nền tảng (Web và Mobile).
- Xây dựng và triển khai nền tảng "BoCongAnh Flowers Shop" nhằm tối ưu hóa trải nghiệm mua sắm của khách hàng và nâng cao hiệu quả quản trị doanh nghiệp.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình quản lý mua bán, nhập hàng, quản lý kho hoa (item), quản trị nhân viên, tiền lương, báo cáo doanh thu và hệ thống tương tác với khách hàng.
- Đối tượng sử dụng hệ thống: Chủ cửa hàng (Admin), Nhân viên (Staff) và Khách hàng (Customer).
- Phạm vi hoạt động: Hệ thống được thiết kế hướng tới các cửa hàng hoa tươi có quy mô vừa và nhỏ, chưa trang bị hệ thống quản lý tích hợp đồng thời giữa bán lẻ trực tuyến và quản trị vận hành nội bộ.
Cơ sở lý thuyết và phương pháp
Đồ án ứng dụng các nguyên lý phân tích thiết kế hệ thống thông tin hướng đối tượng và công nghệ phát triển phần mềm hiện đại:
- Khung kiến trúc phần mềm: Áp dụng mô hình kiến trúc MVC (Model-View-Controller) cho hệ thống Web kết hợp với kiến trúc Client-Server thông qua giao diện lập trình ứng dụng RESTful API để phục vụ ứng dụng di động và giao diện người dùng.
- Mô hình hóa hệ thống: Sử dụng sơ đồ Use Case và bảng đặc tả ca sử dụng chi tiết để phân tích các luồng nghiệp vụ tương tác của từng tác nhân; sử dụng sơ đồ cơ sở dữ liệu quan hệ (ERD) để mô hình hóa thực thể và quan hệ dữ liệu.
- Công nghệ triển khai (Tech Stack):
- Back-end: Ngôn ngữ Java 17, Spring Boot, Spring MVC, Spring Security, RESTful API.
- Front-end Web: JavaScript kết hợp HTML/CSS.
- Mobile App: Ngôn ngữ Kotlin cho hệ điều hành Android.
- Cơ sở dữ liệu & Dịch vụ phụ trợ: Hệ quản trị cơ sở dữ liệu quan hệ MySQL; Firebase phục vụ cấu hình bảo mật và dịch vụ thông báo (Notification service).
- Nguồn dữ liệu: Dữ liệu thử nghiệm phản ánh nghiệp vụ thực tế của cửa hàng hoa, bao gồm danh mục hoa tươi (Item), sản phẩm đóng gói (Product), thông tin khách hàng, đơn đặt hàng, phiếu giảm giá (Voucher), chương trình Flash Sale và đơn nhập hàng (Import Goods).
Thiết kế và triển khai
Hệ thống được tổ chức thành các phân hệ phân quyền nghiêm ngặt với sự liên kết dữ liệu xuyên suốt. Cấu trúc cơ sở dữ liệu bao gồm 18 bảng lưu trữ chính được chuẩn hóa:
| Tên bảng |
Khóa chính |
Khóa ngoại |
Mục đích lưu trữ |
Customer |
id (Long) |
Không |
Thông tin tài khoản khách hàng (username, password, fullname, email, phone, sex, birth, avatar) |
Cart |
id (Long) |
Customer_id |
Giỏ hàng của từng khách hàng |
CartItem |
id (Long) |
cart_id, product_id |
Chi tiết từng sản phẩm và số lượng trong giỏ hàng |
Category |
id (Int) |
Không |
Danh mục phân loại sản phẩm hoa |
Product |
id (Long) |
Không |
Thông tin sản phẩm hoàn chỉnh, giá gốc, giá bán, mô tả, rating, 5 ảnh đại diện |
Item |
id (Long) |
Không |
Thông tin nguyên liệu hoa tươi phục vụ quản lý kho |
FlashSale |
id (Long) |
product_id |
Thiết lập giảm giá theo thời gian thực (startDate, endDate, sale %, priceSale) |
Orders |
id (Long) |
user_id, customer_id, voucher_id, address_id |
Đơn đặt hàng của khách hàng và trạng thái xử lý |
OrderDetail |
id (Long) |
order_id, product_id |
Chi tiết số lượng, mã sản phẩm trong đơn hàng |
OrderHistory |
id (Long) |
user_id, customer_id, address_id |
Lưu trữ lịch sử đơn hàng đã xử lý, phục vụ tra cứu và thống kê |
OrderDetalHistory |
id (Long) |
orderHistory_id, productId |
Chi tiết lịch sử đơn hàng và trạng thái đánh giá (reviewed) |
Voucher |
id (Long) |
Không |
Mã giảm giá, điều kiện thanh toán online, hạn sử dụng, phần trăm giảm |
User |
id (Long) |
Không |
Tài khoản nhân viên/quản lý (ROLE_STAFF, ROLE_ADMIN), lương, ngày sinh |
ImportGoods |
id (Long) |
staff_id |
Thông tin phiếu nhập hàng và tổng giá trị nhập |
ImprortGoodsDetail |
id (Long) |
importGoods_id, item_id |
Chi tiết nguyên liệu hoa nhập kho, số lượng và giá nhập |
Address |
id (Long) |
Id_Customer |
Danh bạ địa chỉ giao hàng của từng khách hàng |
Notification |
id (Long) |
Customer_id |
Thông báo đơn hàng, khuyến mãi gửi tới người dùng |
Reviews |
id (Long) |
product_id, customer_id |
Đánh giá sao (1-5 sao) và nội dung phản hồi từ khách hàng |
Về mặt kiểm thử và tính tương thích, hệ thống Website Admin/Staff được thiết kế đáp ứng trên các trình duyệt Google Chrome, FireFox, Safari, Cốc Cốc và Opera. Ứng dụng di động được xây dựng chuyên biệt cho hệ điều hành Android.
Nội dung chính theo từng chương
Giới thiệu hệ thống
Chương này trình bày tổng quan về lý do hình thành đồ án BoCongAnh Flowers Shop. Tác giả phân tích nhu cầu thực tế của các cửa hàng hoa vừa và nhỏ khi đối mặt với bài toán quản lý phức tạp (tồn kho hoa tươi, đơn hàng đa kênh, nhân sự và tính toán doanh thu). Hệ thống phân định 3 nhóm đối tượng sử dụng chính:
- Chủ cửa hàng (Admin): Toàn quyền quản trị và phân quyền hệ thống.
- Nhân viên (Staff): Trực tiếp theo dõi đơn hàng, quản lý kho và xử lý thông tin nhập hàng.
- Khách hàng (Customer): Người mua sắm trải nghiệm nền tảng qua Web hoặc App di động Android.
Xây dựng hệ thống
Chương 2 là nội dung trọng tâm của đồ án, trình bày toàn diện quá trình phân tích và thiết kế hệ thống thông tin:
- Phân tích yêu cầu chức năng (3 tác nhân):
- Admin: Cung cấp 31 chức năng bao gồm quản lý nhân viên (CRUD, reset mật khẩu mặc định về "1"), quản lý phân quyền, CRUD sản phẩm, CRUD danh mục (Category), CRUD hoa nguyên liệu (Item), CRUD mã giảm giá (Voucher), CRUD chương trình Flash Sale, xem danh sách khách hàng, thống kê và xem báo cáo doanh thu theo ngày/khoảng thời gian, xem lịch sử đơn hàng, xem đánh giá của khách hàng (Reviews) và xem danh sách nhập hàng.
- Staff: Cung cấp 9 nhóm chức năng bao gồm xem/tìm kiếm danh sách khách hàng, xem/tìm kiếm sản phẩm, quản lý đơn hàng (tìm kiếm theo trạng thái, theo ký tự, lọc theo khoảng thời gian, cập nhật trạng thái đơn hàng), quản lý nhập kho (xem và tạo đơn nhập hàng), xem danh sách thông báo và tương tác trao đổi với khách hàng.
- Customer: Cung cấp 26 chức năng bao gồm đăng ký tài khoản, đăng nhập, quên mật khẩu (xác thực OTP qua email), quản lý thông tin cá nhân, xem sản phẩm/danh mục, tìm kiếm theo từ khóa, giỏ hàng (thêm, sửa số lượng), quản lý sổ địa chỉ nhận hàng, áp dụng mã voucher, chọn phương thức thanh toán (tiền mặt COD hoặc chuyển khoản qua mã QR), xem lịch sử đơn hàng, theo dõi thông báo và đánh giá phản hồi sản phẩm.
- Yêu cầu phi chức năng:
- Hiệu suất: Hỗ trợ truy cập đồng thời nhiều tài khoản; thời gian tải trang tối đa 4 giây trong điều kiện mạng ổn định; tối ưu hóa tài nguyên phần cứng.
- Tương thích: Website quản trị hoạt động trên đa trình duyệt (Chrome, FireFox, Safari, Cốc Cốc, Opera); giao diện người dùng responsive; ứng dụng mobile hoạt động ổn định trên các phiên bản Android.
- An toàn thông tin: Mật khẩu người dùng được mã hóa; hệ thống phân quyền nghiêm ngặt theo vai trò (
ROLE_ADMIN, ROLE_STAFF); ưu tiên bảo toàn dữ liệu khi có sự cố hệ thống.
- Thiết kế cơ sở dữ liệu và Cài đặt:
- Thiết kế chi tiết cấu trúc 18 bảng dữ liệu quan hệ và mối liên kết khóa ngoại.
- Cấu hình hạ tầng backend Java 17 / Spring Boot và kết nối Mobile Kotlin thông qua hệ thống API endpoints.
| Thành phần phân công |
Thành viên đảm nhiệm |
Nội dung kỹ thuật chính |
| Phân tích & Backend MVC |
Lê Quốc Hưng |
Phân tích usecase, lập trình MVC (Java), chức năng Staff, viết báo cáo |
| CSDL, Security & API |
Nguyễn Văn Trọng Nguyên |
Thiết kế Database, cấu hình Spring Security, Firebase, Notification service, API Customer, Deploy |
| Nghiệp vụ Admin & CRUD |
Trần Văn Phúc |
Xây dựng CRUD sản phẩm, người dùng, danh mục, item, voucher, báo cáo doanh thu |
| Giao diện Web Customer |
Nguyễn Thị Minh Sương |
Lập trình giao diện web, tích hợp gọi API thực hiện tác vụ Customer |
| Ứng dụng Mobile Android |
Đặng Thị Trúc Ni |
Lập trình giao diện app Android (Kotlin), tích hợp gọi API cho Customer |
Kết quả triển khai
Chương 3 trình bày các kết quả thực nghiệm thông qua hệ thống giao diện thực tế của 4 phân hệ chính (được minh chứng qua 98 hình chụp giao diện):
- Web Admin (Hình 29 - Hình 60): Các màn hình đăng nhập, biểu đồ thống kê, quản lý khách hàng, quản lý nhân viên (thêm/sửa/xóa mềm/phục hồi), quản lý danh mục, quản lý hoa tươi (Item), quản lý sản phẩm hoàn thiện (Product), quản lý Voucher, quản lý Flash Sale, báo cáo doanh thu theo ngày và theo khoảng thời gian, quản lý danh sách đánh giá.
- Website Staff (Hình 61 - Hình 70): Giao diện danh sách sản phẩm, danh sách khách hàng, hệ thống đơn hàng (tìm kiếm theo trạng thái, lọc theo thời gian, cập nhật trạng thái đơn), danh sách và biểu mẫu tạo mới đơn nhập hàng.
- Web User (Hình 71 - Hình 76): Giao diện trang chủ, trang đăng nhập/đăng ký, trang chi tiết sản phẩm và trang giỏ hàng.
- App User trên Android (Hình 77 - Hình 98): Giao diện xác thực tài khoản (đăng nhập, đăng ký, quên mật khẩu nhận OTP qua email), trang chủ duyệt sản phẩm, luồng đặt hàng (chọn địa chỉ, áp voucher, chọn thanh toán COD/QR code chuyển khoản), quản lý đơn hàng đã đặt, danh mục sản phẩm, tìm kiếm và gửi đánh giá sản phẩm.
Kết luận và hướng phát triển
Chương cuối tổng kết quá trình thực hiện đồ án, nêu rõ các mặt thuận lợi (sự phân công tự giác, thư viện hỗ trợ phong phú, sự hướng dẫn của giảng viên) và khó khăn kỹ thuật (hạn chế về kiến thức framework frontend dẫn đến việc phải kết hợp mô hình MVC thay vì thuần API; khó khăn trong việc chọn lọc công cụ đồng nhất). Đồng thời, nhóm tác giả đề ra 4 hướng phát triển nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả cụ thể:
- Kết quả chức năng:
- Hoàn thiện đầy đủ 31 chức năng quản trị hệ thống cho Admin, 9 chức năng vận hành cho Staff và 26 chức năng mua sắm, tương tác cho Customer.
- Xây dựng thành công cơ chế quản lý kho kép: quản lý nguyên liệu hoa tươi đầu vào (
Item) thông qua phiếu nhập hàng (ImportGoods, ImprortGoodsDetail) và quản lý thành phẩm hoa thương mại (Product).
- Tích hợp quy trình đặt hàng hoàn chỉnh hỗ trợ mã giảm giá (
Voucher), chương trình khuyến mãi theo khung giờ (FlashSale) và 2 hình thức thanh toán (Tiền mặt và Quét mã QR chuyển khoản).
- Triển khai dịch vụ gửi mã OTP xác thực qua email cho luồng khôi phục mật khẩu của khách hàng và hệ thống thông báo (
Notification).
- Đóng góp của đồ án:
- Đưa ra giải pháp phần mềm tích hợp đa nền tảng (Web quản trị - Web bán hàng - App di động Android) đáp ứng toàn diện chu trình vận hành của một cửa hàng hoa tươi vừa và nhỏ.
- Chuẩn hóa cấu trúc cơ sở dữ liệu quan hệ cho nghiệp vụ bán lẻ hoa tươi với 18 bảng, xử lý được tính năng xóa mềm (soft delete qua trường
deleted) và lưu vết lịch sử giao dịch độc lập (OrderHistory, OrderDetalHistory).
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các khó khăn và đánh giá tự thân của nhóm tác giả trong văn bản, đồ án ghi nhận các điểm hạn chế và định hướng phát triển như sau:
- Hạn chế:
- Nhóm phát triển chưa áp dụng các framework front-end chuyên sâu, dẫn đến việc chưa thể sử dụng kiến trúc API hoàn chỉnh cho toàn bộ hệ thống mà phải tích hợp mô hình MVC trên nền tảng web.
- Báo cáo và thống kê doanh thu mỗi ngày vẫn thực hiện theo phương thức thủ công dựa trên dữ liệu lọc, chưa có cơ chế tự động kết xuất định kỳ.
- Chưa hỗ trợ cơ chế đồng bộ và xử lý dữ liệu thời gian thực (Real-time).
- Hướng phát triển tiếp theo:
- Tối ưu hóa và nâng cấp giao diện người dùng theo hướng hiện đại, thân thiện hơn.
- Bổ sung chức năng tự động tổng hợp và kết xuất báo cáo doanh thu mỗi ngày.
- Hoàn thiện và tối ưu hóa luồng trải nghiệm mua hàng trên cả hai nền tảng Web và App.
- Tích hợp kiến trúc xử lý dữ liệu thời gian thực (Real-time data processing) để nâng cao tốc độ phản hồi đơn hàng và trao đổi thông tin.
Giá trị tham khảo
Báo cáo đồ án là tài liệu tham khảo hữu ích cho:
- Sinh viên ngành Hệ thống thông tin, Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu thực tế về quy trình phân tích ca sử dụng (Use Case), thiết kế cơ sở dữ liệu quan hệ chuẩn hóa (18 bảng) và kiến trúc kết hợp giữa Spring Boot (Back-end) và Kotlin (Android Mobile App).
- Người phát triển ứng dụng thương mại điện tử quy mô vừa và nhỏ: Cung cấp mô hình tham khảo về quản lý danh mục sản phẩm kết hợp quản lý kho nguyên liệu, cơ chế xóa mềm phục hồi dữ liệu, tích hợp xác thực OTP qua email và luồng áp dụng mã giảm giá / Flash Sale.
Câu hỏi thường gặp
1. Hệ thống BoCongAnh Flowers Shop sử dụng kiến trúc công nghệ nào cho các phân hệ?
Hệ thống sử dụng Java 17 kết hợp Spring Boot, Spring MVC, Spring Security để xây dựng Back-end và cung cấp RESTful API; Front-end Web sử dụng JavaScript; ứng dụng di động phía người dùng chạy trên hệ điều hành Android được lập trình bằng ngôn ngữ Kotlin; cơ sở dữ liệu sử dụng MySQL kết hợp Firebase cho dịch vụ thông báo và bảo mật.
2. Quản lý kho trong hệ thống phân biệt như thế nào giữa hoa nguyên liệu và sản phẩm bán ra?
Hệ thống phân tách thành hai thực thể riêng biệt: bảng Item quản lý từng loại hoa tươi nguyên liệu (gắn liền với phiếu nhập hàng ImportGoods và chi tiết ImprortGoodsDetail do nhân viên thực hiện) và bảng Product quản lý các bó hoa/giỏ hoa thành phẩm phục vụ kinh doanh trực tiếp cho khách hàng.
3. Cơ chế đặt lại mật khẩu của nhân viên và khách hàng khác nhau như thế nào?
Đối với nhân viên (Staff), Admin có quyền thực hiện chức năng ResetPassword trực tiếp trên hệ thống, khi thành công mật khẩu của nhân viên sẽ được đưa về giá trị mặc định là "1". Đối với khách hàng (Customer), luồng quên mật khẩu yêu cầu nhập username/tài khoản, sau đó hệ thống gửi mã OTP xác thực về email của khách hàng để tiến hành thiết lập mật khẩu mới.
4. Hệ thống hỗ trợ những phương thức thanh toán nào cho khách hàng?
Khách hàng có thể lựa chọn 2 phương thức thanh toán trong quá trình đặt hàng: thanh toán bằng tiền mặt khi nhận hàng (COD) hoặc thanh toán chuyển khoản trực tuyến thông qua hệ thống sinh mã QR thanh toán.
5. Khó khăn kỹ thuật lớn nhất mà nhóm tác giả gặp phải trong quá trình phát triển là gì?
Do chưa nắm vững các framework chuyên dụng ở phía front-end, nhóm không thể chuyển đổi toàn bộ hệ thống sang giao tiếp thuần API mà phải kết hợp mô hình Spring MVC truyền thống cho nền tảng web, đồng thời gặp khó khăn trong việc lựa chọn và đồng nhất các thư viện bổ trợ.
Kết luận
Đồ án chuyên ngành Hệ thống thông tin "BoCongAnh Flowers Shop - Nền tảng Mua Bán và Quản Lý" đã thiết kế và xây dựng thành công một giải pháp công nghệ toàn diện cho mô hình bán lẻ hoa tươi. Hệ thống giải quyết hiệu quả các bài toán phân quyền quản trị, kiểm soát tồn kho hoa nguyên liệu, triển khai khuyến mãi và quản lý đơn hàng đa kênh trên nền tảng Web và Android. Mặc dù còn một số hạn chế về mặt tự động hóa báo cáo và xử lý dữ liệu thời gian thực, kết quả của đề tài thể hiện tính ứng dụng cao và cung cấp cơ sở kỹ thuật hoàn chỉnh cho các nghiên cứu phát triển tiếp theo.