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

Trong bối cảnh công nghệ thông tin và truyền thông phát triển mạnh mẽ, các thiết bị di động như điện thoại thông minh (smartphone) và máy tính bảng trở nên phổ biến với chi phí phần cứng ngày càng tối ưu. Kéo theo đó, nhu cầu tiếp cận dịch vụ, giải trí và mua sắm trực tuyến của người tiêu dùng gia tăng nhanh chóng. Trước đây, phương thức mua sắm thiết bị điện tử truyền thống đòi hỏi khách hàng phải di chuyển trực tiếp đến các cửa hàng vật lý, gây tốn kém thời gian, chi phí đi lại và gặp khó khăn trong việc tra cứu sản phẩm mong muốn.

Về phía đơn vị kinh doanh, các phương pháp quản lý thủ công bộc lộ nhiều hạn chế trong việc kiểm soát số lượng hàng tồn kho, theo dõi đơn đặt hàng, phân loại danh mục sản phẩm, quản lý nhà cung cấp và lưu trữ thông tin khách hàng. Đề tài "Xây dựng ứng dụng bán hàng điện tử online" của sinh viên Nguyễn Thành Đức (Trường Đại học Công nghệ Thông tin và Truyền thông Việt - Hàn, Đại học Đà Nẵng) được thực hiện nhằm giải quyết các bất cập trên thông qua việc số hóa quy trình kinh doanh và quản lý.

Mục tiêu và nhiệm vụ nghiên cứu:

  1. Tìm hiểu, nghiên cứu sâu về ngôn ngữ lập trình Java và phương pháp phát triển ứng dụng di động trên nền tảng Android.
  2. Vận dụng kiến thức phân tích thiết kế hướng đối tượng (OOAD) và ngôn ngữ mô hình hóa UML để mô hình hóa toàn bộ quy trình nghiệp vụ hệ thống.
  3. Tìm hiểu và sử dụng hệ quản trị cơ sở dữ liệu quan hệ MySQL kết hợp với nền tảng đám mây Firebase.
  4. Xây dựng dịch vụ máy chủ web bằng ngôn ngữ PHP làm trung gian giao tiếp dữ liệu giữa ứng dụng Android và cơ sở dữ liệu MySQL.
  5. Hoàn thiện ứng dụng di động phục vụ hai nhóm đối tượng: Khách hàng (tra cứu, đặt mua sản phẩm, tương tác) và Quản trị viên (quản lý sản phẩm, danh mục, đơn hàng, khách hàng, hỗ trợ trực tuyến).

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình kinh doanh, mua bán và quản lý các sản phẩm điện tử (tập trung vào hai nhóm mặt hàng chính là Điện thoại và Laptop); các công nghệ lập trình di động Android (Java), máy chủ web (PHP), cơ sở dữ liệu (MySQL) và dịch vụ đám mây (Firebase).
  • Phạm vi nghiên cứu: Hệ thống phần mềm ứng dụng bán hàng trực tuyến bao gồm ứng dụng di động trên hệ điều hành Android và hệ thống cơ sở dữ liệu phía máy chủ; kiểm thử nghiệp vụ trong phạm vi mô hình cửa hàng bán lẻ thiết bị điện tử.

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

Đồ án sử dụng các phương pháp và nền tảng kỹ thuật tiêu chuẩn trong công nghệ phần mềm:

Cơ sở lý thuyết và công nghệ

  • Phân tích và thiết kế hướng đối tượng (OOAD) & UML: Sử dụng Unified Modeling Language (UML) để trực quan hóa, đặc tả và xây dựng cấu trúc tĩnh cũng như biểu đồ động (Use Case Diagram, Activity Diagram, Class Diagram) cho hệ thống.
  • Ngôn ngữ lập trình Java: Nền tảng cốt lõi phát triển ứng dụng Android, vận dụng các đặc trưng hướng đối tượng và tiếp cận các tính năng mới trong các bản cập nhật Java (Records, Sealed classes, Text Blocks, ZGC, Shenandoah, Pattern Matching).
  • Ngôn ngữ kịch bản PHP (Hypertext Preprocessor): Đóng vai trò xử lý logic tại máy chủ, tiếp nhận các yêu cầu HTTP/JSON từ ứng dụng di động và thực thi các câu lệnh truy vấn dữ liệu.
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở hoạt động theo mô hình client-server, chịu trách nhiệm lưu trữ cấu trúc bảng người dùng, danh mục, sản phẩm, đơn hàng.
  • Nền tảng Google Firebase: Cung cấp hạ tầng dịch vụ đám mây hỗ trợ phát triển ứng dụng di động bao gồm: Firebase Authentication (xác thực người dùng), Cloud Messaging - FCM (gửi thông báo đẩy), Realtime Database / Cloud Firestore (hỗ trợ truyền nhận tin nhắn trực tuyến giữa người dùng và quản trị viên).

Công cụ phát triển phần mềm

  • Android Studio: Môi trường phát triển tích hợp (IDE) chính thức dựa trên IntelliJ IDEA để lập trình ứng dụng Android bằng Java, thiết kế layout XML, gỡ lỗi và quản lý thư viện thông qua Gradle.
  • Sublime Text: Trình biên tập mã nguồn phục vụ viết các tập tin kịch bản xử lý PHP backend.
  • Draw.io: Công cụ thiết kế các sơ đồ nghiệp vụ, sơ đồ ca sử dụng và sơ đồ luồng hoạt động trực quan.

Phân tích và thiết kế hệ thống

Hệ thống được thiết kế hướng đối tượng với 2 tác nhân chính tham gia tương tác: KHACHHANG (Khách hàng) và QUANTRIVIEN (Quản trị viên).

Mô hình tác nhân và ca sử dụng (Use Case)

  • Tác nhân Khách hàng (KHACHHANG): Thực hiện các chức năng cơ bản của người mua sắm trực tuyến gồm Đăng ký tài khoản, Đăng nhập, Đăng xuất, Tìm kiếm sản phẩm theo từ khóa, Xem chi tiết sản phẩm, Quản lý giỏ hàng (thêm, cập nhật số lượng, xóa sản phẩm khỏi giỏ), Đặt mua hàng và thanh toán, Bình luận và đánh giá sản phẩm, Quản lý tài khoản cá nhân (cập nhật thông tin, xem và hủy đơn hàng, xóa bài đánh giá).
  • Tác nhân Quản trị viên (QUANTRIVIEN): Nắm quyền quản trị cao nhất đối với toàn bộ hệ sinh thái dữ liệu, gồm: Quản lý thuộc tính sản phẩm, Quản lý danh mục, Quản lý sản phẩm (thêm, sửa, xóa, in danh sách, tìm kiếm), Quản lý đơn hàng (duyệt trạng thái xử lý/giao hàng), Quản lý nhận xét và đánh giá, Quản lý bình luận, Quản lý bài viết, Quản lý tiêu đề, Quản lý thành viên, Quản lý nhà cung cấp, Phân quyền và nhóm quyền quản trị, Quản lý tài khoản admin, Quản lý slide banner, Quản lý sự kiện, Quản lý các trang tĩnh (chính sách, hướng dẫn).

Biểu đồ hoạt động hệ thống

Đồ án xây dựng chi tiết luồng xử lý dữ liệu qua các biểu đồ hoạt động:

  • Luồng Đăng nhập / Đăng ký: Hệ thống kiểm tra tính hợp lệ của dữ liệu đầu vào, xác thực thông tin tài khoản với cơ sở dữ liệu, phân quyền hiển thị màn hình tương ứng (Giao diện người dùng hoặc Giao diện quản trị).
  • Luồng Giỏ hàng và Đặt hàng: Kiểm tra tình trạng sản phẩm tồn kho, cho phép thêm mới hoặc tăng số lượng, tạo đơn hàng kèm chi tiết đơn hàng, xóa giỏ hàng và cập nhật dữ liệu về máy chủ.
  • Luồng Bình luận & Đánh giá: Tiếp nhận nội dung văn bản và hình ảnh từ khách hàng đã mua sản phẩm, lưu trữ và hiển thị công khai trên trang chi tiết sản phẩm.
  • Luồng Hủy đơn hàng và Xóa đánh giá: Cho phép khách hàng quản lý lịch sử giao dịch và đóng góp ý kiến thông qua cơ chế xác nhận trước khi cập nhật trạng thái trong cơ sở dữ liệu.

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

Hệ thống sử dụng cơ sở dữ liệu MySQL với bảng mã utf8mb4_general_ci. Các bảng thực thể chính được thiết kế cụ thể như sau:

Tên bảng Các trường dữ liệu chính Kiểu dữ liệu & Ràng buộc Mục đích lưu trữ
users id, email, password, username, mobile, uid, token, status id int(11) AUTO_INCREMENT, Primary Key; email/pass varchar(250); mobile varchar(15); uid/token text; status int(2) Lưu thông tin tài khoản người dùng, thiết bị và trạng thái hoạt động
sanpham id, tensanpham, hinhanh id int(11) AUTO_INCREMENT, Primary Key; tensanpham varchar(100); hinhanh text Danh mục danh sách sản phẩm cơ bản
sanphammoi id, tensp, giasp, hinhanh, mota, loai id int(11) AUTO_INCREMENT, Primary Key; tensp varchar(250); giasp varchar(100); mota text; loai int(2) Lưu trữ chi tiết thông tin các sản phẩm mới, giá bán, mô tả, phân loại
donhang id, iduser, diachi, sodienthoai, email, soluong, tongtien, trangthai id int(11) AUTO_INCREMENT, Primary Key; iduser int(11); diachi text; soluong int(11); trangthai int(2) Lưu thông tin tổng quan của đơn đặt hàng và địa chỉ giao hàng
chitietdonhang iddonhang, idsp, soluong, gia iddonhang int(11); idsp int(11); soluong int(11); gia varchar(255) Lưu thông tin chi tiết từng mặt hàng, số lượng và giá trong mỗi đơn hàng

Sơ đồ quan hệ thực thể mở rộng thiết lập các mối liên kết giữa các lớp thực thể: LoaiSp, SanPham, ChiTietSanPham, NhaCungCap, ChiTietDonHang và Account.


Thiết kế và triển khai

Cơ chế phối hợp và giao tiếp dữ liệu

Hệ thống triển khai mô hình đa tầng:

  1. Client (Android App): Sử dụng các thành phần HttpURLConnection, thư viện đọc ghi bộ nhớ đệm Paper, và mô hình Adapter (SanPhamHoiAdapter) để xử lý giao diện hiển thị, cấu trúc dữ liệu JSONArray, JSONObject.
  2. Web API trung gian (PHP): Tiếp nhận các phương thức HTTP GET/POST, thực hiện giải mã dữ liệu qua json_encode() và các câu lệnh truy vấn SQL (SELECT, INSERT, UPDATE, DELETE) tới máy chủ MySQL qua kết nối TCP/IP.
  3. Firebase Cloud Messaging & Chat: Tích hợp Firebase Android BoM, quản lý device registration token (getToken()) để truyền nhận thông báo và hỗ trợ giao tiếp tin nhắn trực tiếp giữa khách hàng và quản trị viên.

Triển khai giao diện và chức năng

+-------------------------------------------------------------------------+
|                    KIẾN TRÚC TƯƠNG TÁC HỆ THỐNG                          |
+-------------------------------------------------------------------------+
| [Ứng dụng Android (Java)] <---> [Firebase Services (Auth / FCM / Chat)]  |
|           |                                                             |
|     (HTTP / JSON)                                                       |
|           v                                                             |
| [Web Server (PHP Scripts)] <---> [Cơ sở dữ liệu MySQL (RDBMS)]           |
+-------------------------------------------------------------------------+

Hệ thống được hiện thực hóa qua các màn hình ứng dụng cụ thể:

  • Giao diện Khách hàng:
    • Màn hình Xác thực: Đăng ký tài khoản mới, Đăng nhập hệ thống, Quên mật khẩu qua Email.
    • Màn hình Trang chủ & Menu: Phân mục Banner quảng cáo, Danh mục sản phẩm (Điện thoại, Laptop), Menu điều hướng (Trang chủ, Thông tin, Liên hệ, Đơn hàng, Đăng xuất).
    • Màn hình Sản phẩm & Tìm kiếm: Hiển thị danh sách mặt hàng điện thoại (ví dụ: iPhone 13 Pro giá 33.990.000Đ, Samsung Galaxy Note 20 Ultra 5G giá 20.500.000Đ, Samsung Galaxy S21 giá 13.950.000Đ), danh sách laptop (ví dụ: Dell Vostro V3568 giá 12.200.000Đ, Apple Macbook Pro 2020 giá 46.600.000Đ, HP Envy 13 giá 24.280.000Đ, Asus X515EA giá 15.499.000Đ) kèm thanh tìm kiếm và hiển thị thông số kỹ thuật (Chip, RAM, Ổ cứng, Card đồ họa).
    • Màn hình Giỏ hàng & Thanh toán: Thao tác tăng giảm số lượng, tính tổng tiền đơn hàng, nhập thông tin địa chỉ giao hàng và số điện thoại nhận hàng.
    • Màn hình Lịch sử & Hỗ trợ: Tra cứu trạng thái mã đơn hàng và khung chat trực tuyến thời gian thực với Admin.
  • Giao diện Quản trị viên:
    • Quản lý Sản phẩm: Xem, chỉnh sửa thông tin, giá bán và thêm mới mặt hàng vào cơ sở dữ liệu.
    • Quản lý Đơn hàng: Tiếp nhận và cập nhật tình trạng xử lý đơn hàng ("Đơn hàng đang được xử lí").
    • Quản lý Tin nhắn: Tiếp nhận và phản hồi các luồng trao đổi trực tiếp của từng tài khoản người dùng.
    • Thống kê Sản phẩm: Biểu đồ trực quan hóa dữ liệu thống kê số lượng và danh mục các mặt hàng đang kinh doanh.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Trình bày tính cấp thiết của đề tài trong bối cảnh công nghệ hóa; xác định giới hạn và phạm vi phát triển ứng dụng dựa trên Java, PHP, MySQL, Firebase; nêu rõ các kết quả kỳ vọng đối với từng nhóm đối tượng người dùng (Khách hàng và Quản trị viên); phân tích ý nghĩa khoa học và thực tiễn của đề tài.

Chương 2: Khảo sát thực trạng

Mô tả thực tế hoạt động kinh doanh tại cửa hàng bán lẻ thiết bị điện tử (quản lý tồn kho, phân loại danh mục, lưu trữ hóa đơn, thông tin nhà cung cấp, khách hàng thân thiết). Xác định các yêu cầu chức năng cụ thể cho tác nhân Khách hàng và tác nhân Quản trị viên, đồng thời đề ra các yêu cầu phi chức năng về giao diện thân thiện, hiệu năng tìm kiếm, tính toàn vẹn và bảo mật dữ liệu.

Chương 3: Kiến thức nền tảng

Hệ thống hóa cơ sở lý thuyết về phân tích thiết kế hướng đối tượng OOAD, chuẩn mô hình hóa UML; tổng quan ngôn ngữ lập trình Java và các cải tiến trong các phiên bản mới; ngôn ngữ kịch bản máy chủ PHP; khái niệm hệ quản trị cơ sở dữ liệu và các chức năng của RDBMS; các dịch vụ cốt lõi trong nền tảng Google Firebase; giới thiệu các công cụ hỗ trợ phát triển phần mềm gồm Draw.io, MySQL, Sublime Text và Android Studio.

Chương 4: Phân tích và thiết kế hệ thống

Xác định 2 tác nhân chính (KHACHHANG, QUANTRIVIEN); đặc tả chi tiết các ca sử dụng tổng quát và các ca sử dụng thành phần; xây dựng hệ thống 11 biểu đồ hoạt động cho các luồng nghiệp vụ chính; thiết kế cơ sở dữ liệu quan hệ với cấu trúc chi tiết của 5 bảng dữ liệu thực thể (users, sanpham, sanphammoi, donhang, chitietdonhang) và sơ đồ phân lớp thực thể.

Chương 5: Chương trình demo

Trình bày kết quả hiện thực hóa phần mềm qua hệ thống ảnh chụp màn hình giao diện thực tế của ứng dụng Android: giao diện tương tác người dùng (xác thực, tìm kiếm, xem chi tiết, giỏ hàng, đặt hàng, chat) và hệ thống các màn hình dành riêng cho công tác quản trị (quản lý mặt hàng, duyệt trạng thái đơn hàng, tương tác khách hàng, thống kê danh mục).

Chương 6: Kết luận và hướng phát triển

Đánh giá tổng kết các kết quả đạt được sau quá trình phân tích, thiết kế và cài đặt hệ thống; chỉ ra các điểm còn tồn tại (một số trường thông tin đầu vào chưa được kiểm tra chặt chẽ); vạch ra 4 hướng phát triển nâng cấp ứng dụng trong tương lai.


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

Kết quả chính đạt được

  • Xây dựng thành công ứng dụng di động bán hàng trực tuyến hoàn chỉnh trên hệ điều hành Android bằng ngôn ngữ Java.
  • Thiết lập hệ thống cơ sở dữ liệu quan hệ trên MySQL, đồng bộ và giao tiếp ổn định với ứng dụng di động thông qua các tập lệnh PHP trung gian theo định dạng chuẩn JSON.
  • Triển khai thành công tính năng xác thực, nhắn tin hỗ trợ trực tiếp và đồng bộ thông báo bằng nền tảng đám mây Google Firebase.
  • Hệ thống hỗ trợ xử lý đầy đủ chu trình mua bán: Khách hàng tìm kiếm sản phẩm, quản lý giỏ hàng, tạo đơn hàng; Quản trị viên kiểm soát kho hàng, duyệt trạng thái đơn hàng và theo dõi thống kê.

Đóng góp của đồ án

  • Ý nghĩa khoa học: Vận dụng đầy đủ quy trình kỹ thuật phần mềm chuẩn mực từ khảo sát thực trạng, phân tích hướng đối tượng (OOAD), mô hình hóa UML, thiết kế chuẩn hóa cơ sở dữ liệu quan hệ đến hiện thực hóa mã nguồn trên nền tảng di động.
  • Ý nghĩa thực tiễn: Cung cấp một giải pháp phần mềm quản lý và kinh doanh thiết bị điện tử có giao diện trực quan, hỗ trợ lưu trữ thông tin dài hạn, truy xuất dữ liệu nhanh chóng, giảm thiểu thao tác thủ công và tiết kiệm chi phí vận hành cho cửa hàng bán lẻ.

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

Hạn chế

  • Hệ thống kiểm tra và xác thực tính hợp lệ của dữ liệu đầu vào tại một số form nhập liệu chưa đạt độ chặt chẽ tối đa.
  • Hệ thống nghiệp vụ mới tập trung chủ yếu vào 2 nhóm danh mục hàng hóa là điện thoại và laptop.

Hướng phát triển tiếp theo

  1. Nâng cấp và tối ưu hóa giao diện người dùng (UI/UX) đảm bảo tính hiện đại, thích ứng linh hoạt trên nhiều kích thước màn hình thiết bị di động.
  2. Tối ưu hóa thuật toán truy xuất và tìm kiếm dữ liệu nhằm nâng cao tốc độ xử lý và độ chính xác của kết quả lọc sản phẩm.
  3. Nâng cao năng lực quản trị, mở rộng thêm các module phân tích nghiệp vụ chuyên sâu cho quản trị viên.
  4. Định hướng mở rộng quy mô hệ thống, phát triển ứng dụng trở thành kênh phân phối thương mại điện tử đa ngành hàng (như trang thiết bị, phụ kiện thể thao).

Giá trị tham khảo

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

  • Sinh viên ngành Công nghệ thông tin, Khoa học máy tính, Kỹ thuật phần mềm: Nắm bắt quy trình thực hiện đồ án chuyên ngành/đồ án cơ sở về lập trình ứng dụng di động Android (Java).
  • Lập trình viên phát triển ứng dụng: Tham khảo mô hình kết hợp kiến trúc giữa Android Native (Java), Web Services trung gian (PHP) và hệ quản trị cơ sở dữ liệu quan hệ (MySQL) kết hợp dịch vụ thời gian thực (Firebase).
  • Phần đáng tham khảo nhất: Chương 4 (Hệ thống biểu đồ Use Case, Biểu đồ hoạt động chi tiết từng nghiệp vụ mua hàng/hủy đơn và cấu trúc các bảng CSDL) và Chương 5 (Thiết kế layout giao diện người dùng trên Android).

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

1. Ứng dụng sử dụng những công nghệ và ngôn ngữ lập trình chính nào? Hệ thống sử dụng ngôn ngữ Java để phát triển ứng dụng di động trên nền tảng Android (IDE: Android Studio), ngôn ngữ PHP (biên soạn bằng Sublime Text) để xây dựng API trung gian tại máy chủ, hệ quản trị cơ sở dữ liệu quan hệ MySQL để lưu trữ dữ liệu chính và nền tảng Google Firebase (FCM, Cloud Messaging, Chat thời gian thực).

2. Cơ sở dữ liệu MySQL của hệ thống bao gồm những bảng thực thể nào? Cơ sở dữ liệu bao gồm 5 bảng chính: bảng users (lưu trữ tài khoản, email, mật khẩu, token), bảng sanpham (danh mục sản phẩm cơ bản), bảng sanphammoi (thông tin chi tiết, giá cả, mô tả, phân loại sản phẩm mới), bảng donhang (thông tin tổng đơn, người nhận, địa chỉ) và bảng chitietdonhang (chi tiết từng mã sản phẩm, số lượng, đơn giá theo đơn hàng).

3. Khách hàng có thể thực hiện những thao tác nào đối với giỏ hàng và đơn hàng? Khách hàng có thể thêm sản phẩm vào giỏ, cập nhật thay đổi số lượng, xóa từng mặt hàng khỏi giỏ hàng, thực hiện đặt hàng kèm địa chỉ nhận, theo dõi danh sách đơn hàng đã đặt và thực hiện chức năng hủy đơn hàng khi cần thiết.

4. Quản trị viên tương tác và quản lý những thành phần nào trong hệ thống? Quản trị viên có quyền quản lý danh mục, sản phẩm (thêm, sửa, xóa, tìm kiếm, in thông tin), duyệt trạng thái đơn hàng, quản lý bài viết, bài đánh giá/bình luận của khách hàng, quản lý nhà cung cấp, thành viên, cấu hình phân quyền và trao đổi tin nhắn trực tiếp với khách hàng qua giao diện quản lý.


Kết luận

Đồ án cơ sở 3 "Xây dựng ứng dụng bán hàng điện tử online" của sinh viên Nguyễn Thành Đức đã hoàn thành trọn vẹn mục tiêu nghiên cứu và xây dựng một hệ thống thương mại điện tử di động hoàn chỉnh. Bằng việc kết hợp chặt chẽ giữa quy trình phân tích thiết kế hướng đối tượng (UML), ngôn ngữ lập trình Java trên Android, dịch vụ máy chủ PHP, cơ sở dữ liệu MySQL và nền tảng Firebase, đề tài đã giải quyết hiệu quả bài toán quản lý và mua sắm thiết bị công nghệ trực tuyến. Kết quả nghiên cứu là nền tảng kỹ thuật vững chắc để tiếp tục mở rộng quy mô kinh doanh và tối ưu hóa trải nghiệm người dùng trong các giai đoạn phát triển tiếp theo.