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

Trong bối cảnh công nghệ thông tin và mạng Internet phát triển mạnh mẽ, thương mại điện tử đã trở thành một kênh phân phối hàng hóa thiết yếu bên cạnh các mạng xã hội như Facebook hay Zalo. Người tiêu dùng có thể tiếp cận, tìm kiếm và đặt mua đa dạng mặt hàng từ bất kỳ đâu thông qua máy tính hoặc điện thoại thông minh. Cùng với sự nâng cao về mức sống, nhu cầu chăm sóc sắc đẹp và sử dụng mỹ phẩm của người tiêu dùng, đặc biệt là phái nữ, ngày càng gia tăng.

Tuy nhiên, qua khảo sát thực tế của các tác giả, nhiều website kinh doanh mỹ phẩm trên thị trường vẫn còn tồn tại các hạn chế kỹ thuật và trải nghiệm người dùng:

  • Phối màu giao diện chưa hài hòa, gây mỏi mắt và khó chịu cho người truy cập.
  • Bố cục thông tin thiếu tính khoa học và khó thao tác.
  • Tốc độ xử lý dữ liệu và phản hồi thao tác còn chậm; việc cập nhật thông tin sản phẩm mới chưa kịp thời.
  • Nội dung mô tả sản phẩm thiếu chi tiết; hình ảnh hiển thị không rõ nét hoặc có sự sai lệch so với sản phẩm thực tế.

Nhằm giải quyết các bất cập trên, đề tài "Tìm hiểu công nghệ Laravel và xây dựng website bán mỹ phẩm" được thực hiện bởi sinh viên Phạm Thị Quà và Nguyễn Thị Thanh Thảo dưới sự hướng dẫn của ThS. Nguyễn Trần Thi Văn tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khoá 2015 – 2019).

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

  1. Nghiên cứu tổng quan về framework mã nguồn mở PHP Laravel: khái niệm, cấu trúc thư mục, các thành phần kiến trúc Model - View - Controller (MVC), hệ thống định tuyến (Route), cơ chế Blade Template, Eloquent ORM và Form Validation.
  2. Tìm hiểu công nghệ Socket.io trên nền tảng Node.js để xây dựng module truyền nhận dữ liệu thời gian thực (real-time).
  3. Khảo sát hiện trạng các website kinh doanh mỹ phẩm thực tế để đúc kết yêu cầu chức năng và phi chức năng.
  4. Phân tích và mô hình hóa hệ thống thông qua các sơ đồ Use Case, bảng đặc tả nghiệp vụ và sơ đồ tuần tự (Sequence Diagram).
  5. Thiết kế cơ sở dữ liệu quan hệ trên MySQL và thiết kế giao diện chi tiết cho cả phân hệ khách hàng (Guest/User) và phân hệ quản trị (Admin).
  6. Hiện thực hóa mã nguồn, cài đặt các chức năng và tiến hành kiểm thử phần mềm trên môi trường máy chủ cục bộ.

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

  • Đối tượng nghiên cứu: Công nghệ Laravel PHP Framework, thư viện Socket.io, hệ quản trị cơ sở dữ liệu MySQL và quy trình phát triển website thương mại điện tử chuyên ngành mỹ phẩm.
  • Phạm vi nghiên cứu:
    • Không gian: Đề tài tập trung xây dựng hệ thống phần mềm website bán mỹ phẩm trực tuyến, phục vụ người dùng cuối và người quản trị cửa hàng.
    • Thời gian: Đồ án được triển khai thực hiện trong 15 tuần, từ ngày 18/03/2019 đến ngày 30/06/2019.

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

Đề tài áp dụng các nền tảng công nghệ web và mô hình phát triển phần mềm chuẩn mực, bao gồm:

  • Laravel PHP Framework: Framework mã nguồn mở phát triển bởi Taylor Otwell từ năm 2011, tuân thủ mô hình kiến trúc MVC. Hệ thống sử dụng các thành phần cốt lõi của Laravel như Route (định tuyến linh hoạt trong routes/web.php với các phương thức GET, POST, PUT, DELETE), Model (xử lý tầng dữ liệu), Controller (điều phối luồng nghiệp vụ tại app/Http/Controllers), Blade Template (sử dụng @section, @yield, @extends và tệp mẫu master.blade.php), cơ chế xác thực dữ liệu đầu vào và mã hóa mật khẩu người dùng qua thuật toán Hash.
  • Socket.io và Node.js: Module mạng thời gian thực hoạt động dựa trên cấu trúc Client - Server. Hệ thống sử dụng máy chủ Node.js với các gói express, ejs và socket.io để lắng nghe dữ liệu (socket.on()) và phát dữ liệu (socket.emit()), phục vụ chức năng chatbox trực tiếp giữa khách hàng và quản trị viên.
  • Hệ quản trị cơ sở dữ liệu MySQL: Lưu trữ toàn bộ dữ liệu quan hệ của hệ thống thông qua công cụ quản lý cơ sở dữ liệu và cơ chế migration.
  • Công nghệ giao diện: HTML, CSS, JavaScript, thư viện jQuery và Bootstrap để xây dựng giao diện hiển thị đáp ứng (responsive).

Phương pháp nghiên cứu:

  • Phương pháp tổng hợp lý thuyết: Thu thập, phân tích và hệ thống hóa tài liệu chuyên ngành về PHP, Laravel, Node.js, Socket.io và cơ sở dữ liệu quan hệ.
  • Phương pháp chuyên gia: Tiếp thu ý kiến chỉ dẫn từ giảng viên hướng dẫn khoa học, trao đổi kinh nghiệm chuyên môn với các sinh viên khóa trước và đồng nghiệp cùng ngành.
  • Phương pháp mô hình hóa phần mềm: Sử dụng ngôn ngữ mô hình hóa UML để chuyển tải các yêu cầu nghiệp vụ thành sơ đồ Use Case, đặc tả Use Case, thiết kế lược đồ quan hệ thực thể (ERD) và sơ đồ tuần tự (Sequence Diagram).

Nguồn dữ liệu khảo sát: Dữ liệu khảo sát thực tế được thu thập trực tiếp từ 3 website bán lẻ mỹ phẩm trực tuyến tại Việt Nam: Hasaki (hasaki.vn), Thế Giới Skinfood (thegioiskinfood.com) và Epomi (shop.epomi.com).


Thiết kế và triển khai

Hệ thống website được xây dựng trên nền tảng kiến trúc phân tầng MVC của Laravel kết hợp dịch vụ socket phụ trợ:

Thành phần Công nghệ / Nền tảng áp dụng Vai trò và nhiệm vụ kỹ thuật
Giao diện (Frontend) HTML, CSS, JavaScript, jQuery, Bootstrap, Blade Template Hiển thị giao diện người dùng, xử lý hiệu ứng, kế thừa layout chung qua tệp master.blade.php.
Xử lý nghiệp vụ (Backend) PHP (Laravel Framework) Xử lý định tuyến (Route), điều khiển luồng (Controller), kiểm tra biểu mẫu (Validation), phân quyền truy cập.
Tầng dữ liệu (Database) MySQL, Laravel Eloquent Model Lưu trữ và xử lý các thao tác CRUD trên 14 bảng quan hệ; ánh xạ cấu trúc bảng qua lớp Model trong thư mục App/.
Giao tiếp Realtime Node.js, Express, Socket.io Đóng vai trò máy chủ trung gian truyền nhận và lắng nghe tin nhắn chatbox hai chiều giữa khách và quản trị viên.
Bảo mật hệ thống Hash Algorithm, Session/Cookie Laravel Mã hóa bảo mật mật khẩu tài khoản, bảo vệ dữ liệu phiên làm việc, ngăn chặn các nguy cơ SQL Injection.

Cấu trúc thư mục mã nguồn được phân bố theo chuẩn Laravel: thư mục app/ chứa mã nguồn lõi và Controllers; bootstrap/ chứa tập tin cấu hình khởi động; config/ lưu các tham số hệ thống; database/ chứa dữ liệu seed và migration; public/ chứa index, CSS, JS, hình ảnh; resources/ lưu trữ views Blade; routes/ chứa định tuyến hệ thống.


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

Chương 1: Cơ sở lý thuyết

Chương 1 giới thiệu chi tiết về lịch sử hình thành, ưu điểm và cấu trúc vận hành của Laravel PHP Framework. Tác giả phân tích luồng điều khiển: người dùng gửi yêu cầu thông qua URL -> Route tiếp nhận và chuyển tiếp sang Controller -> Controller giao tiếp với Model để truy xuất CSDL -> Model trả kết quả về Controller -> Controller nạp dữ liệu vào View (tệp Blade) -> View trả kết quả về trình duyệt. Đồng thời, chương này mô tả cơ chế kết nối Client - Server của Socket.io, quy trình khởi tạo dự án Node.js với tệp cấu hình package.json và phương thức lắng nghe, truyền tải thông điệp qua mạng.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Chương này phân tích ưu và nhược điểm của 3 trang web mỹ phẩm thực tế:

Website khảo sát Ưu điểm ghi nhận Nhược điểm tồn tại
Hasaki (hasaki.vn) Hàng chính hãng, giá cạnh tranh, nhiều khuyến mãi, xử lý đơn nhanh, phí ship rẻ. Sản phẩm hết hàng vẫn hiển thị khi tìm kiếm; thiếu tư vấn chi tiết; danh mục mở rộng sang đồ trẻ em/giày dép làm loãng thông tin.
Skinfood (thegioiskinfood.com) Sản phẩm Hàn Quốc đa dạng, cập nhật xu hướng nhanh, mô tả rõ ràng, giá nhiều phân khúc. Chỉ bán thương hiệu Hàn Quốc; tình trạng hết hàng diễn ra nhanh; tốc độ phản hồi tin nhắn còn chậm.
Epomi (shop.epomi.com) Hàng chính hãng, tư vấn nhanh chóng, có chuyên mục chia sẻ bí quyết làm đẹp hữu ích. Thời gian giao hàng phụ thuộc bên vận chuyển nên còn chậm; giá bán cao hơn mặt bằng chung.

Từ kết quả khảo sát, tác giả xác định các nhóm yêu cầu:

  • Yêu cầu chức năng nghiệp vụ: Lưu trữ (người dùng, danh mục, sản phẩm, đơn hàng, tin tức, bình luận, thắc mắc); Tra cứu (sản phẩm, đơn hàng, tài khoản); Tính toán (tổng giá trị đơn hàng, thời gian hết hạn khuyến mãi); Kết xuất (danh sách người dùng, sản phẩm, đơn đặt hàng).
  • Yêu cầu hệ thống: Phân quyền 2 nhóm tác nhân (Quản trị viên và Người dùng); sao lưu và phục hồi dữ liệu.
  • Yêu cầu phi chức năng: Tốc độ tìm kiếm sản phẩm tối đa trong 4 giây; hỗ trợ nhiều khách hàng đặt hàng đồng thời; giao diện thân thiện, dễ thao tác; hệ thống có khả năng mở rộng chức năng và thay đổi công thức tính toán theo yêu cầu doanh nghiệp.

Chương 3: Phân tích, mô hình hóa yêu cầu

Chương 3 thiết lập bảng danh mục nghiệp vụ và các quy định ràng buộc tương ứng cho hai nhóm tác nhân:

  • Khách hàng (Guest): 10 nghiệp vụ gồm Đăng nhập/Đăng xuất (QD_G_DN), Xem chi tiết sản phẩm, Tìm kiếm sản phẩm (QD_G_TSP), Đặt hàng (QD_G_DH), Gửi thắc mắc (QD_G_GTM), Đăng ký tài khoản, Xem danh sách sản phẩm, Xem tin tức, Bình luận về sản phẩm, Chat online.
  • Quản trị viên (Admin): 11 nghiệp vụ gồm Đăng nhập/Đăng xuất, Xem danh sách sản phẩm, Thêm sản phẩm (QD_AD_TSP), Xem danh sách đơn hàng, Duyệt đơn hàng (QD_AD_CSDH), Xem danh sách người dùng, Chỉnh sửa sản phẩm (QD_AD_CSSP), Xóa sản phẩm (QD_AD_XSP), Sửa giá sản phẩm (QD_AD_SGSP), Chat online, Trả lời bình luận.

Chương này cũng thể hiện hệ thống sơ đồ Use Case (lược đồ tổng quát và 4 lược đồ phân rã: Quản lý sản phẩm, Quản lý người dùng, Quản lý đơn hàng, Quản lý thông tin tài khoản) kèm các bảng đặc tả Use Case chi tiết với các bước thực hiện tuần tự và điều kiện kích hoạt.

Chương 4: Thiết kế hệ thống và luồng xử lý

Chương 4 thực hiện thiết kế chi tiết 3 thành phần chính:

  1. Thiết kế dữ liệu: Xây dựng cấu trúc cho 14 bảng thuộc tính trong cơ sở dữ liệu quan hệ gồm: role, users, user_details, type_products, products, customer, color, edition, contact, bills, bill_detail, collections, messages, news, comments, replies cùng lược đồ quan hệ dữ liệu liên kết giữa các bảng.
  2. Thiết kế giao diện: Xây dựng sơ đồ chuyển đổi màn hình và thiết kế chi tiết các giao diện chức năng:
    • Phân hệ khách: Trang chủ, Đăng nhập, Đăng ký, Danh sách tất cả sản phẩm, Danh sách sản phẩm mới, Danh sách sản phẩm khuyến mãi, Lọc sản phẩm theo tiêu chí giá (thấp đến cao), Trang giới thiệu (Về chúng tôi), Trang tin tức, Trang liên hệ, Chi tiết sản phẩm, Giỏ hàng, Chatbox, Bình luận.
    • Phân hệ quản trị: Đăng nhập admin, Trang chủ admin, Quản lý đơn hàng, Chi tiết đơn hàng, Quản lý người dùng, Danh sách sản phẩm, Chi tiết/chỉnh sửa sản phẩm, Thêm sản phẩm, Sửa giá sản phẩm.
  3. Thiết kế luồng xử lý: Xây dựng sơ đồ tuần tự (Sequence Diagram) tổng quát và 8 sơ đồ tuần tự chi tiết cho các Use Case trọng yếu: Đăng nhập, Đăng ký, Thêm sản phẩm, Sửa giá sản phẩm, Duyệt đơn hàng, Mua hàng, Thanh toán và Chỉnh sửa sản phẩm.

Chương 5: Cài đặt và kiểm thử

Chương này mô tả việc ghép nối các module mã nguồn theo mô hình MVC của Laravel, tích hợp các công cụ hỗ trợ và tiến hành kiểm thử chức năng trên hệ thống phần mềm. Tác giả lập bảng kiểm thử các ca sử dụng để đánh giá tính chính xác của các luồng xử lý nghiệp vụ, đảm bảo hệ thống vận hành ổn định trên môi trường thử nghiệm cục bộ.


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

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

  • Hoàn thành xây dựng website bán mỹ phẩm với đầy đủ 2 phân hệ người dùng và quản trị theo đúng các yêu cầu đã phân tích.
  • Hiện thực hóa thành công các tính năng phía khách hàng: duyệt và lọc sản phẩm theo mức giá/chủng loại, tìm kiếm sản phẩm với thời gian phản hồi dưới 4 giây, quản lý giỏ hàng, đặt hàng trực tuyến, gửi phản hồi thắc mắc, bình luận đa cấp và chia sẻ thông tin sản phẩm lên mạng xã hội Facebook.
  • Xây dựng hoàn chỉnh module chatbox thời gian thực ứng dụng Socket.io và Node.js kết hợp liên kết trò chuyện qua Zalo và Facebook Messenger.
  • Xây dựng trang quản trị hỗ trợ đầy đủ các chức năng vận hành: quản trị danh mục và sản phẩm (thêm, xóa, sửa thông tin, cập nhật giá hàng loạt hoặc riêng lẻ), quản lý người dùng và phân quyền, theo dõi và xử lý trạng thái đơn hàng (Duyệt/Hủy).
  • Thiết kế hệ thống cơ sở dữ liệu đồng bộ với 14 bảng quan hệ, đáp ứng việc quản lý các thuộc tính đặc thù của mỹ phẩm như phiên bản (edition), màu sắc (color) và bộ sưu tập (collections).

Đóng góp của đề tài:

  • Cung cấp tài liệu hoàn chỉnh về quy trình phân tích, thiết kế và hiện thực hóa một hệ thống thương mại điện tử chuyên ngành mỹ phẩm từ bước khảo sát hiện trạng đến cài đặt thực tế.
  • Đưa ra giải pháp kết hợp hiệu quả giữa PHP Laravel Framework (xử lý logic nghiệp vụ và dữ liệu quan hệ) với Socket.io / Node.js (xử lý tác vụ giao tiếp thời gian thực) trong cùng một hệ thống ứng dụng web.

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

Hạn chế của đồ án:

  • Hệ thống mới chỉ được cài đặt, vận hành và kiểm thử trên môi trường máy chủ cục bộ (local/localhost), chưa được triển khai và đánh giá tải thực tế trên môi trường Internet (web hosting/domain public).
  • Các phương thức thanh toán trực tuyến qua cổng thanh toán điện tử ngân hàng hoặc ví điện tử chưa được tích hợp sâu, quy trình mua hàng hiện tại mới dừng ở mức ghi nhận thông tin đặt hàng và phương thức giao nhận.
  • Do thời gian thực hiện đề tài giới hạn trong 15 tuần, một số chức năng nâng cao về thống kê doanh thu và báo cáo phân tích kinh doanh tự động chưa được phát triển toàn diện.

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

  • Triển khai toàn bộ mã nguồn website và máy chủ Socket.io lên môi trường máy chủ thực tế (Cloud/VPS).
  • Tích hợp các cổng thanh toán trực tuyến phổ biến (VNPay, MoMo, ZaloPay, thẻ tín dụng quốc tế).
  • Phát triển hệ thống báo cáo thống kê, biểu đồ phân tích doanh thu và tồn kho nâng cao cho quản trị viên.
  • Xây dựng ứng dụng di động (Mobile App) đồng bộ dữ liệu với hệ thống website để tăng tính tiện ích cho khách hàng.

Giá trị tham khảo

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

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin đang thực hiện đồ án môn học, tiểu luận chuyên ngành hoặc khóa luận tốt nghiệp về đề tài website thương mại điện tử.
  • Lập trình viên đang tìm hiểu cách tổ chức dự án thực tế theo mô hình MVC trên nền tảng Laravel PHP Framework.
  • Những người cần tham khảo quy trình phân tích thiết kế hệ thống theo chuẩn UML (xây dựng Use Case, Sequence Diagram) và cách thiết kế cấu trúc cơ sở dữ liệu quan hệ cho các hệ thống bán lẻ trực tuyến có tích hợp tính năng thời gian thực qua Socket.io.

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

1. Kiến trúc phần mềm và các công nghệ cốt lõi được sử dụng trong hệ thống là gì?
Website được xây dựng theo mô hình kiến trúc MVC của Laravel PHP Framework, sử dụng MySQL làm hệ quản trị cơ sở dữ liệu quan hệ, giao diện kết hợp HTML, CSS, JavaScript, jQuery, Bootstrap và Blade Template. Tính năng chat trực tuyến sử dụng Socket.io chạy trên nền tảng Node.js.

2. Tác giả đã khảo sát những website bán mỹ phẩm nào và rút ra kết luận gì?
Đề tài khảo sát 3 website thực tế: Hasaki (hasaki.vn), Thế Giới Skinfood (thegioiskinfood.com) và Epomi (shop.epomi.com). Tác giả nhận thấy các website dù đầy đủ tính năng cơ bản nhưng vẫn tồn tại lỗi hiển thị sản phẩm đã hết hàng, thời gian phản hồi tin nhắn chậm, bố cục chưa tối ưu và hình ảnh thiếu chi tiết, từ đó định hình yêu cầu xây dựng một website thân thiện, dễ thao tác và có tốc độ xử lý nhanh hơn.

3. Module chatbox thời gian thực được hiện thực hóa bằng kỹ thuật nào?
Hệ thống sử dụng module Socket.io chạy trên máy chủ Node.js (kết hợp các gói express và ejs). Máy chủ Node.js đóng vai trò trung gian thực hiện cơ chế lắng nghe dữ liệu (socket.on()) và phát dữ liệu (socket.emit()) để chuyển tải tức thời tin nhắn giữa giao diện khách hàng và bảng điều khiển của quản trị viên.

4. Cơ sở dữ liệu của hệ thống gồm những bảng chính nào để quản lý sản phẩm mỹ phẩm?
Hệ thống thiết kế 14 bảng thuộc tính quan hệ, trong đó các bảng phục vụ quản lý sản phẩm và thông tin mỹ phẩm bao gồm: products (sản phẩm), type_products (loại sản phẩm), color (màu sắc), edition (phiên bản), collections (bộ sưu tập), cùng các bảng liên quan như bills, bill_detail, comments, replies và messages.

5. Hệ thống quy định thời gian phản hồi cho chức năng tìm kiếm là bao lâu?
Theo bảng yêu cầu phi chức năng của đề tài, hệ thống đặt ra tiêu chuẩn hiệu quả cho chức năng tìm kiếm sản phẩm với thời gian xử lý tối đa là 4 giây để trả về kết quả chính xác cho người dùng.


Kết luận

Khóa luận tốt nghiệp "Tìm hiểu công nghệ Laravel và xây dựng website bán mỹ phẩm" của sinh viên Phạm Thị Quà và Nguyễn Thị Thanh Thảo đã hoàn thành đầy đủ các mục tiêu đề ra về mặt lý thuyết lẫn thực nghiệm phần mềm. Đề tài đã hệ thống hóa kiến trúc Laravel PHP Framework và công nghệ Socket.io, đồng thời áp dụng vào việc xây dựng thành công một website thương mại điện tử hoàn chỉnh với đầy đủ các phân hệ quản lý sản phẩm, đơn hàng, người dùng và tương tác trực tuyến. Kết quả nghiên cứu cung cấp nền tảng vững chắc cho việc tiếp tục hoàn thiện, tích hợp thanh toán trực tuyến và triển khai ứng dụng vào môi trường kinh doanh thực tế.