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

Trong bối cảnh tài nguyên thiên nhiên dần cạn kiệt, ô nhiễm môi trường và biến đổi khí hậu diễn biến phức tạp, xu hướng tiêu dùng bền vững ngày càng trở nên cấp thiết. Nhận thức của người tiêu dùng không chỉ dừng lại ở chất lượng sản phẩm và dịch vụ mà còn mở rộng sang mức độ tác động của quy trình sản xuất đối với môi trường tự nhiên. Khái niệm "tiêu dùng xanh" (green consumption) được ghi nhận lần đầu tiên vào năm 1970 tại Hoa Kỳ và nhanh chóng lan rộng ra toàn cầu. Tại Việt Nam, tiêu dùng xanh được định nghĩa là hoạt động mua sắm và sử dụng các sản phẩm thân thiện với môi trường, không gây hại cho sức khỏe con người và không đe dọa đến hệ sinh thái. Trong đó, các sản phẩm hữu cơ (organic) – đặc biệt là mỹ phẩm hữu cơ với tiêu chuẩn chứa tối thiểu 95% thành phần hữu cơ canh tác tự nhiên và tối đa 5% các hợp chất khác – đang nhận được sự quan tâm lớn nhờ tính an toàn và lành tính.

Mặc dù Việt Nam sở hữu nguồn nguyên liệu và thảo dược tự nhiên phong phú, thị trường thương mại điện tử dành riêng cho các sản phẩm hữu cơ vẫn còn nhiều tiềm năng chưa được khai thác đồng bộ. Xuất phát từ thực tiễn đó, nhóm nghiên cứu tại Trường Đại học Kinh tế – Luật (Đại học Quốc gia TP.HCM) đã thực hiện đồ án "Phát triển website thương mại điện tử kinh doanh sản phẩm hữu cơ" (Develop an E-Commerce Website in the Organic Products Business) thông qua mô hình cửa hàng mô phỏng mang thương hiệu PACHA Shop.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định cụ thể:

  1. Nghiên cứu cơ sở lý thuyết và công nghệ phát triển web, trọng tâm là Django Framework và hệ quản trị cơ sở dữ liệu SQLite.
  2. Phân tích yêu cầu hệ thống, xây dựng các biểu đồ ca sử dụng (Use Case), mô hình hóa quy trình nghiệp vụ (BPMN) và sơ đồ luồng dữ liệu (DFD).
  3. Thiết kế cấu trúc cơ sở dữ liệu quan hệ gồm 14 bảng dữ liệu chuẩn hóa, đáp ứng tính toàn vẹn và bảo mật thông tin.
  4. Xây dựng giao diện người dùng trực quan, thân thiện (UI/UX) với tông màu vàng nâu ấm áp, hỗ trợ hiển thị trên nhiều thiết bị và phát triển các tính năng thương mại điện tử chuyên biệt.
  5. Triển khai hoàn thiện hệ thống website cho cả hai phân hệ: khách hàng tương tác mua sắm và quản trị viên quản lý vận hành.

Đối tượng nghiên cứu của đề tài là hệ thống website thương mại điện tử bán lẻ sản phẩm làm đẹp, thư giãn tự nhiên (như xà phòng tắm hữu cơ, nến thơm). Phạm vi nghiên cứu tập trung vào phân tích thiết kế phần mềm, lập trình chức năng và thử nghiệm hệ thống trong khuôn khổ học phần Phát triển Website Doanh nghiệp (Mã học phần: 231MI5703) vào tháng 12 năm 2023.


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

Đồ án xây dựng dựa trên nền tảng lý thuyết phát triển phần mềm hướng dịch vụ web và các mô hình quản lý dữ liệu có cấu trúc:

  • Khung kiến trúc Django Framework: Khung làm việc cấp cao viết bằng ngôn ngữ Python, hoạt động theo mô hình kiến trúc MVT (Model – View – Template). Trong đó, Model quản lý cấu trúc dữ liệu và truy vấn cơ sở dữ liệu; View tiếp nhận và xử lý yêu cầu HTTP; Template định hình cấu trúc giao diện thông qua ngôn ngữ Django Template Language (DTL). Framework áp dụng triệt để hai nguyên lý thiết kế: KISS (Keep It Short and Simple) và DRY (Don't Repeat Yourself), đồng thời tích hợp sẵn các cơ chế phòng chống lỗ hổng bảo mật phổ biến như Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), SQL Injection và Clickjacking.
  • Nguyên lý CRUD và chuẩn kiến trúc REST: Mô hình hóa các thao tác dữ liệu nền tảng gồm Tạo mới (Create), Đọc (Read), Cập nhật (Update), Xóa (Delete) và chuẩn hóa giao tiếp giữa máy khách và máy chủ thông qua các phương thức HTTP (GET, POST, PUT, DELETE).
  • Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) SQLite: Cơ chế lưu trữ dữ liệu dạng nhúng (embedded/serverless), không yêu cầu quy trình cấu hình máy chủ phức tạp, hỗ trợ giao dịch tin cậy và đạt độ bao phủ kiểm thử nhánh 100%.
  • Công nghệ Front-end: Ngôn ngữ HTML/CSS kết hợp thư viện Bootstrap (chuẩn hệ thống lưới 960 Grid với 12 cột linh hoạt) và công nghệ Ajax (Asynchronous JavaScript and XML) nhằm tải và cập nhật dữ liệu bất đồng bộ mà không cần tải lại toàn bộ trang web.

Bảng so sánh đặc tính kỹ thuật giữa Django và Angular được tổng hợp trong đồ án:

Tiêu chí Django Framework Angular Framework
Loại khung làm việc Full-stack framework (chủ yếu Server-side) Front-end framework (Client-side)
Ngôn ngữ lập trình Python TypeScript / JavaScript
Mô hình kiến trúc MVT (Model – View – Template) MVC (Model – View – Controller)
Cấu trúc dự án Applications, Views, Models, URLs Components, Services, Modules, Routes
Phạm vi ứng dụng chính Ứng dụng web phức tạp, thương mại điện tử, CRM Ứng dụng web tương tác động cao, ứng dụng đơn trang (SPA)

Phương pháp phát triển hệ thống được thực hiện qua các giai đoạn:

  1. Phương pháp phân tích hệ thống thông tin: Xác định tác nhân, lập bảng phân quyền ca sử dụng (Use Case & Actor Mapping), mô hình hóa quy trình nghiệp vụ bằng BPMN và sơ đồ dòng dữ liệu DFD cho quy trình đặt hàng – thanh toán.
  2. Phương pháp thiết kế dữ liệu: Xây dựng mô hình quan hệ thực thể (ERD), xác định các khóa chính (PK), khóa ngoại (FK) và kiểu dữ liệu cho 14 thực thể.
  3. Phương pháp thiết kế giao diện: Xây dựng sitemap, thiết kế wireframe và mockup chi tiết các thành phần giao diện trên công cụ Figma trước khi chuyển đổi sang mã nguồn HTML/CSS/Bootstrap.

Thiết kế và triển khai

Hệ thống PACHA Shop được thiết kế phân tầng rõ ràng, đảm bảo tính liên kết dữ liệu giữa giao diện người dùng và cơ sở dữ liệu phía máy chủ.

1. Phân quyền người dùng và Ca sử dụng (Use Cases)

Hệ thống xác định 3 nhóm tác nhân chính: Khách vãng lai (Walk-in Guest), Khách hàng đã có tài khoản (User) và Quản trị viên (Administrator).

Chức năng hệ thống Khách vãng lai (Guest) Khách hàng (User) Quản trị viên (Admin)
Đăng ký / Đăng nhập / Đăng xuất Có (Đăng ký/Đăng nhập) Có Có
Tìm kiếm, xem chi tiết và lọc sản phẩm Có Có Có
Quản lý thông tin cá nhân và sổ địa chỉ Không Có Có
Thêm sản phẩm vào Wishlist / Giỏ hàng Không (Wishlist) Có Có
Đặt hàng và Theo dõi trạng thái đơn hàng Không (Theo dõi) Có Có
Đánh giá và chấm điểm sản phẩm (1–5 sao) Không Có Có
CRUD tài khoản, phân quyền nhân viên (Staff) Không Không Có
Quản lý danh mục, sản phẩm, kho hàng Không Không Có
Quản lý đơn hàng, mã giảm giá (Voucher) Không Không Có
Đăng bài viết blog, quản trị liên hệ Không Không Có
Xem thống kê đơn hàng và báo cáo doanh thu Không Không Có

2. Thiết kế cơ sở dữ liệu (Database Schema)

Toàn bộ dữ liệu được chuẩn hóa và lưu trữ tại 14 bảng quan hệ trên hệ quản trị SQLite:

  • Products: Quản lý danh mục sản phẩm (id [PK], title, slug, detail, ingredient, manual, benefit, status, is_featured, category_id [FK]).
  • Categories: Nhóm sản phẩm (id [PK], title, image).
  • Product collections: Bộ sưu tập sản phẩm theo mùa/chủ đề (id [PK], product_id [FK], title).
  • Product Attributes: Thuộc tính kỹ thuật và giá (id [PK], product_id [FK], price, size_id [FK], discount).
  • Product image attributes: Quản lý hình ảnh đính kèm (id [PK], product_attribute [FK], image_id [FK]).
  • Users: Thông tin tài khoản người dùng (id [PK], first_name, last_name, email, username, password, date_joined, is_active, is_staff).
  • User Addresses: Sổ địa chỉ giao hàng (id [PK], user_id [FK], phone, recipient_name, province, district, ward, street, note).
  • Reviews: Bình luận và đánh giá (id [PK], user_id [FK], product_id [FK], review_text, review_rating).
  • Voucher: Chương trình khuyến mãi (id [PK], code, type_id [FK], value, start_date, end_date, is_featured).
  • Orders: Đơn đặt hàng (id [PK], user_id [FK], total_amt, order_status [FK], paid_status, order_date).
  • Order Items: Chi tiết sản phẩm trong đơn (id [PK], order_id [FK], item, image, qty, price, total).
  • Blogs: Bài viết tin tức (id [PK], title, author, content, created_at, image).
  • Contacts: Biểu mẫu tiếp nhận phản hồi (id [PK], name, email, message).
  • Wishlist: Danh sách sản phẩm yêu thích (id [PK], user_id [FK], product_id [FK]).

3. Quy trình nghiệp vụ cốt lõi (BPMN & DFD)

  • Đăng ký và Đăng nhập: Hỗ trợ xác thực bằng tài khoản hệ thống hoặc tích hợp đăng nhập qua tài khoản Google. Quy trình quên mật khẩu sử dụng mã OTP gửi qua Email/Số điện thoại để xác thực trước khi cho phép đặt mật khẩu mới.
  • Đặt hàng và Thanh toán (DFD): Khách hàng chọn sản phẩm, lựa chọn voucher giảm giá, chọn phương thức vận chuyển (Giao hàng nhanh hoặc Hỏa tốc, tự động miễn phí vận chuyển nếu đủ điều kiện đơn hàng), chọn địa chỉ nhận hàng và hình thức thanh toán (Thẻ ngân hàng hoặc Thanh toán khi nhận hàng - COD). Khi đơn hàng ở trạng thái chờ xử lý (chưa giao), người dùng có thể thực hiện thao tác hủy đơn trực tiếp trên hệ thống.

4. Năm chức năng chuyên biệt của hệ thống

  1. Tìm kiếm sản phẩm theo tên: Cho phép truy xuất nhanh các sản phẩm có chuỗi ký tự khớp với từ khóa tìm kiếm.
  2. Bộ lọc sản phẩm đa tiêu chí: Lọc linh hoạt theo khoảng giá, bộ sưu tập, chủng loại và số lượng tồn kho.
  3. Gợi ý sản phẩm liên quan: Tự động đề xuất các sản phẩm cùng nhóm phân loại hoặc các bộ sưu tập theo mùa (ví dụ: Bộ sưu tập Giáng sinh, Bộ sưu tập Mùa thu).
  4. Đánh giá và cập nhật nhận xét tự động: Người dùng gửi bình luận và chấm điểm từ 1 đến 5 sao; hệ thống sử dụng Ajax để cập nhật nội dung tức thì lên trang chi tiết và tính toán lại điểm đánh giá trung bình.
  5. Quản trị tài khoản và đơn hàng: Người dùng theo dõi lịch sử đơn hàng, cập nhật sổ địa chỉ; Quản trị viên theo dõi biểu đồ thống kê đơn hàng phát sinh theo ngày và cập nhật trạng thái vận chuyển/thanh toán.

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

Chapter 1. The introduction of PACHA Shop

Chương 1 trình bày tổng quan về bối cảnh đề tài, lý do thành lập thương hiệu mô phỏng PACHA Shop – cửa hàng trực tuyến chuyên về các sản phẩm làm đẹp và thư giãn có nguồn gốc thiên nhiên hữu cơ. Tác giả phân tích tính cấp thiết của việc xây dựng nền tảng thương mại điện tử nhằm mở rộng tệp khách hàng trong kỷ nguyên tiêu dùng xanh. Chương này xác định rõ phạm vi triển khai cho cả người dùng và quản trị viên, định hướng phong cách giao diện với tone màu vàng nâu ấm áp, đồng thời phác thảo cấu trúc 4 chương của toàn bộ báo cáo.

Chapter 2. Advantages of Django Framework

Chương 2 hệ thống hóa cơ sở lý thuyết về các công nghệ được lựa chọn trong dự án. Nội dung tập trung phân tích các ưu điểm vượt trội của Django Framework bao gồm: tốc độ phát triển nhanh, tính đa năng, khả năng mở rộng kiến trúc theo chiều ngang và dọc, cùng các tầng bảo mật mặc định mạnh mẽ. Tác giả tiến hành so sánh chi tiết giữa Django và Angular, làm rõ sự khác biệt giữa mô hình MVC và kiến trúc MVT. Ngoài ra, chương này giải thích cặn kẽ các khái niệm CRUD, nguyên lý hoạt động của RESTful API trên giao thức HTTP, ngôn ngữ lập trình Python, đặc tính nhúng không cần cấu hình máy chủ của hệ quản trị SQLite, cũng như vai trò của Ajax và Bootstrap trong tối ưu hóa giao diện.

Chapter 3. SYSTEM ANALYSIS AND DEVELOPMENT

Chương 3 là phần trọng tâm của đồ án, mô tả toàn bộ quá trình phân tích và xây dựng hệ thống:

  • Phân tích ca sử dụng: Xây dựng sơ đồ Use Case tổng thể cho khách hàng và quản trị viên, chi tiết hóa bảng ánh xạ chức năng cho từng đối tượng người dùng.
  • Mô hình hóa quy trình (BPMN): Thiết kế quy trình đăng nhập, đăng ký tài khoản, đổi thông tin cá nhân, đổi mật khẩu, khôi phục mật khẩu bằng OTP, xem giỏ hàng – đặt hàng, thêm/xóa sản phẩm yêu thích và hủy đơn hàng.
  • Thiết kế dữ liệu và luồng xử lý: Định nghĩa chi tiết cấu trúc 14 bảng dữ liệu SQLite, xây dựng sơ đồ quan hệ thực thể (ERD) lấy thực thể Products làm trung tâm kết nối, và vẽ sơ đồ dòng dữ liệu (DFD) cho chu trình đặt hàng – thanh toán.
  • Thiết kế giao diện và chức năng: Xây dựng Sitemap, hệ thống thành phần giao diện (nút bấm, thư viện màu sắc, biểu tượng, thanh tiến trình) và hiện thực hóa mockup các trang chức năng (Trang chủ, Chi tiết sản phẩm, Giỏ hàng, Vận chuyển, Thanh toán, Blog, Trang quản trị Admin). Đồng thời, chương này mô tả chi tiết cách vận hành của 5 tính năng chuyên biệt trên website.

Chapter 4. Result

Chương 4 tổng kết các kết quả đạt được sau quá trình phát triển hệ thống, đối chiếu với các mục tiêu đề ra ban đầu. Tác giả thẳng thắn chỉ ra các điểm hạn chế về mặt kỹ thuật, giao diện và công cụ quản trị, từ đó đề xuất các giải pháp nâng cấp, hoàn thiện hệ thống trong các giai đoạn tiếp theo.


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ử hoàn chỉnh cho thương hiệu PACHA Shop bằng framework Django và cơ sở dữ liệu SQLite, đạt tỷ lệ hoàn thành 100% đối với các mục tiêu kỹ thuật ban đầu.
    • Triển khai đồng bộ 14 bảng dữ liệu quan hệ, đảm bảo tính toàn vẹn dữ liệu giữa thông tin sản phẩm, đơn hàng, khách hàng, bài viết và đánh giá.
    • Hiện thực hóa đầy đủ các luồng nghiệp vụ mua sắm trực tuyến: đăng ký/đăng nhập (hỗ trợ Google Login và khôi phục mật khẩu OTP), tìm kiếm, lọc sản phẩm, quản lý giỏ hàng, đặt hàng, thanh toán COD/thẻ, quản lý Wishlist và gửi phản hồi.
    • Xây dựng hệ thống quản trị backend cho phép quản trị viên thực hiện các thao tác CRUD đối với danh mục, sản phẩm, đơn hàng, mã giảm giá, tài khoản người dùng và theo dõi biểu đồ thống kê đơn hàng theo ngày.
    • Mã nguồn dự án được đóng gói và lưu trữ công khai trên kho lưu trữ GitHub phục vụ mục đích học thuật.
  • Đóng góp của đồ án:

    • Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết (BPMN, DFD, ERD, Use Case) cho bài toán thương mại điện tử chuyên ngành hàng hữu cơ.
    • Chứng minh tính hiệu quả và khả thi của việc kết hợp kiến trúc Django MVT, cơ sở dữ liệu SQLite và thư viện Bootstrap trong việc xây dựng ứng dụng web thương mại điện tử nhanh chóng, an toàn và tối ưu tài nguyên.

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

  • Hạn chế được ghi nhận trong văn bản:

    • Tương tác mạng xã hội: Hệ thống chưa tích hợp các kênh truyền thông xã hội phổ biến (như Facebook, Zalo) để đồng bộ hóa tin nhắn và phản hồi tức thì cho khách hàng.
    • Mức độ hoàn thiện giao diện (UX/UI): Do hạn chế về mặt kiến thức chuyên sâu trong thiết kế trải nghiệm người dùng, giao diện thực tế khi chuyển đổi từ bản vẽ prototype trên Figma sang mã nguồn website vẫn còn một số điểm chưa đạt độ thẩm mỹ tối đa.
    • Khả năng tùy biến trang quản trị: Việc sử dụng trang quản trị mặc định do Django cung cấp (Django built-in admin) gây khó khăn trong việc cá nhân hóa giao diện và cấu trúc hiển thị theo các yêu cầu quản lý chuyên biệt của cửa hàng.
  • Hướng phát triển tiếp theo:

    • Mở rộng tính năng kết nối thời gian thực qua tích hợp mạng xã hội và hệ thống phân phối nội dung cá nhân hóa.
    • Tiếp tục hoàn thiện thiết kế giao diện người dùng bám sát bản vẽ Figma thông qua việc tổ chức các buổi thu thập phản hồi trực tiếp từ người dùng thực tế.
    • Nâng cấp các giao thức bảo mật dữ liệu, cơ chế mã hóa và tiến hành kiểm toán bảo mật định kỳ nhằm đáp ứng các tiêu chuẩn bảo mật mới.
    • Xây dựng cộng đồng người dùng tương tác xung quanh thương hiệu để gia tăng mức độ gắn kết và tiếp nhận ý kiến đóng góp liên tục.

Giá trị tham khảo

Tài liệu đồ án này mang lại giá trị tham khảo thiết thực cho:

  • Sinh viên các ngành Hệ thống thông tin quản lý, Công nghệ thông tin, Thương mại điện tử: Có thể sử dụng đồ án làm tài liệu mẫu về phương pháp phân tích thiết kế hệ thống phần mềm, từ khâu mô hình hóa nghiệp vụ bằng BPMN, DFD đến thiết kế cấu trúc cơ sở dữ liệu quan hệ (14 bảng chuẩn) và ánh xạ Use Case.
  • Lập trình viên và người học phát triển web với Python/Django: Tham khảo mô hình triển khai thực tế kiến trúc MVT, kỹ thuật xử lý dữ liệu bất đồng bộ qua Ajax, cách thức tích hợp giao diện Bootstrap lưới 12 cột và giải pháp xây dựng luồng đặt hàng – thanh toán khép kín.
  • Người nghiên cứu mô hình kinh doanh bán lẻ sản phẩm xanh: Tiếp cận góc nhìn thực tế về cách tổ chức danh mục, thuộc tính sản phẩm và xây dựng các tính năng gợi ý theo bộ sưu tập dành cho ngành hàng mỹ phẩm, hóa mỹ phẩm thiên nhiên.

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

1. Đồ án lựa chọn hệ quản trị cơ sở dữ liệu nào và cấu trúc dữ liệu gồm bao nhiêu bảng?
Đồ án sử dụng hệ quản trị cơ sở dữ liệu quan hệ SQLite (RDBMS) ở dạng nhúng. Cấu trúc dữ liệu bao gồm 14 bảng quan hệ chuẩn hóa: Products, Categories, Product collections, Product Attributes, Product image attributes, Users, User Addresses, Reviews, Voucher, Orders, Order Items, Blogs, Contacts và Wishlist, trong đó thực thể Products giữ vai trò trung tâm liên kết.

2. Điểm khác biệt cơ bản giữa kiến trúc MVT của Django và mô hình MVC truyền thống được phân tích như thế nào trong đồ án?
Trong mô hình MVC, Controller là thành phần tiếp nhận tương tác từ người dùng và điều phối dữ liệu giữa Model và View. Trong kiến trúc MVT của Django, chính framework đảm nhận vai trò của Controller; Model phụ trách truy xuất và xử lý dữ liệu, View đóng vai trò hàm xử lý logic và điều hướng HTTP request/response, còn Template (kết hợp DTL, HTML, CSS) chịu trách nhiệm hiển thị dữ liệu trực quan đến người dùng.

3. Quy trình xử lý khi người dùng quên mật khẩu được thiết kế bằng công nghệ gì?
Hệ thống thiết kế quy trình khôi phục mật khẩu thông qua mô hình BPMN: người dùng nhập Email hoặc Số điện thoại đã đăng ký, hệ thống kiểm tra tính hợp lệ và gửi mã OTP (One Time Password) về địa chỉ tương ứng. Người dùng nhập đúng mã OTP trên giao diện web để xác thực trước khi tiến hành tạo và lưu mật khẩu mới vào cơ sở dữ liệu.

4. Vì sao nhóm tác giả đánh giá trang quản trị mặc định của Django vừa là ưu điểm vừa là hạn chế?
Ưu điểm của Django Admin là cung cấp sẵn giao diện quản trị mạnh mẽ với đầy đủ chức năng CRUD mà không cần lập trình lại từ đầu, giúp tiết kiệm thời gian phát triển. Tuy nhiên, hạn chế được nhóm chỉ ra là tính năng tích hợp sẵn này gây cản trở và gò bó khi cần tùy biến sâu giao diện, bố cục hoặc bổ sung các luồng thao tác đặc thù theo nhu cầu quản trị chuyên biệt của cửa hàng PACHA Shop.


Kết luận

Đồ án "Phát triển website thương mại điện tử kinh doanh sản phẩm hữu cơ" của nhóm sinh viên Trường Đại học Kinh tế – Luật đã hoàn thành toàn diện việc xây dựng nền tảng mua sắm trực tuyến cho thương hiệu PACHA Shop. Bằng việc ứng dụng Django Framework, cơ sở dữ liệu SQLite và mô hình phân tích chuẩn mực (BPMN, DFD, ERD), hệ thống đã đáp ứng đầy đủ các yêu cầu chức năng từ phía người tiêu dùng và nhà quản trị. Đồ án là tài liệu tham khảo có giá trị học thuật và ứng dụng cao cho các dự án phát triển phần mềm thương mại điện tử trên nền tảng công nghệ Python.