Bối cảnh và vấn đề nghiên cứu
Đồ án tốt nghiệp với đề tài "Xây dựng website bán sách sử dụng Laravel" được thực hiện bởi sinh viên Nguyễn Hải Biên (lớp DCCNTT9.IT2, Khoa Công nghệ thông tin, Trường Đại học Công nghệ Đông Á) dưới sự hướng dẫn của ThS. Ngô Thị Hoa vào năm 2023 tại Bắc Ninh.
Theo phân tích của tác giả, công nghệ thông tin ngày càng phát triển mạnh mẽ và trở thành công cụ quan trọng đóng góp vào sự phát triển kinh tế - xã hội. Cùng với xu thế toàn cầu hóa, nhu cầu trao đổi hàng hóa của con người không ngừng gia tăng cả về số lượng và chất lượng. Việc sử dụng mạng Internet cho các hoạt động kinh doanh trực tuyến đang trở thành phương thức phổ biến và được ưa chuộng, giúp người tiêu dùng tiết kiệm đáng kể thời gian và chi phí đi lại.
Trong lĩnh vực kinh doanh sách, tác giả nhận thấy nhu cầu đọc tiểu thuyết và tìm hiểu các tác phẩm văn học nước ngoài của độc giả là rất lớn. Tuy nhiên, nhiều người đọc gặp khó khăn khi tìm kiếm các tác phẩm phù hợp do thiếu kênh phân phối tập trung và thuận tiện. Mặt khác, công tác quản lý tại các cửa hàng sách truyền thống phần lớn vẫn duy trì phương thức ghi chép trên văn bản, giấy tờ. Phương thức này bộc lộ nhiều bất cập: dễ xảy ra sai sót, tốn kém chi phí lưu trữ, gặp khó khăn khi tra cứu hoặc thay đổi thông tin mặt hàng. Do đó, việc ứng dụng phần mềm quản lý và cơ sở dữ liệu điện tử là yêu cầu cấp thiết nhằm cắt giảm chi phí, giảm thiểu sai sót, nâng cao hiệu suất và giảm bớt khối lượng công việc quản lý.
Từ bối cảnh thực tiễn đó, dự án xây dựng website bán sách mang thương hiệu "Book of Moon" được triển khai nhằm cung cấp giải pháp đặt mua tiểu thuyết trực tuyến đa dạng về thể loại và ngôn ngữ cho khách hàng, đồng thời hỗ trợ người quản trị cập nhật chính xác thông tin về sản phẩm, giá cả và đơn hàng.
Mục tiêu nghiên cứu và triển khai của đề tài được tác giả xác định cụ thể như sau:
-
Mục tiêu tổng quát:
- Phát triển website thương mại điện tử;
- Thiết kế giao diện quản lý;
- Tăng doanh thu bán hàng và giảm chi phí trong công tác quản lý.
-
Mục tiêu cụ thể:
- Xây dựng trang web và trang quản lý có giao diện đơn giản, ưa nhìn;
- Người sử dụng dễ dàng thao tác và sử dụng các chức năng của trang web;
- Người quản lý cần phải đăng nhập để sử dụng các chức năng quản trị.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình vận hành, kinh doanh trực tuyến và nghiệp vụ quản lý sản phẩm, đơn hàng của cửa hàng sách tiểu thuyết "Book of Moon"; các kỹ thuật phát triển ứng dụng web trên nền tảng PHP, Laravel Framework và hệ quản trị cơ sở dữ liệu MySQL.
- Phạm vi nghiên cứu:
- Không gian: Áp dụng cho mô hình vận hành của cửa hàng sách "Book of Moon" tại Trường Đại học Công nghệ Đông Á (Bắc Ninh).
- Thời gian: Đồ án được nghiên cứu và hoàn thành trong năm 2023.
- Nội dung: Tập trung vào hai phân hệ chính gồm phân hệ người dùng (Customer) với các chức năng xem, tìm kiếm, giỏ hàng, đặt hàng, thanh toán và phân hệ quản trị (Admin) với các chức năng quản lý danh mục, ngôn ngữ, sản phẩm, đơn hàng.
Cơ sở lý thuyết và phương pháp
Để giải quyết bài toán đặt ra, tác giả đã vận dụng các cơ sở lý thuyết về kỹ thuật phần mềm, kiến trúc ứng dụng web và hệ quản trị cơ sở dữ liệu quan hệ, kết hợp với các phương pháp phân tích thiết kế hệ thống hướng đối tượng.
1. Nền tảng công nghệ và kiến trúc
- Ngôn ngữ lập trình PHP: Được lựa chọn làm ngôn ngữ kịch bản phía máy chủ do tính linh hoạt, phổ biến và dễ sử dụng trong phát triển ứng dụng web.
- Laravel Framework: Là một PHP framework mã nguồn mở và miễn phí, hỗ trợ quá trình phát triển phần mềm theo mô hình kiến trúc MVC (Model - View - Controller). Framework cung cấp cấu trúc cơ bản giúp đẩy nhanh tiến độ lập trình, tăng tính ổn định cho ứng dụng, giảm thiểu việc viết lại mã nguồn trùng lặp và phân tách độc lập giữa mã nguồn xử lý logic và giao diện hiển thị HTML.
- Mô hình kiến trúc MVC:
- Controller: Tiếp nhận và điều hướng các yêu cầu từ phía người dùng, kích hoạt các phương thức xử lý nghiệp vụ tương ứng.
- Model: Chứa logic nghiệp vụ, định nghĩa đối tượng dữ liệu (Class), các phương thức xử lý và truy xuất cơ sở dữ liệu.
- View: Đảm nhận vai trò hiển thị dữ liệu và tiếp nhận tương tác của người dùng, chứa các thành phần giao diện đồ họa (GUI) như hình ảnh, hộp văn bản (textbox).
- Hệ quản trị cơ sở dữ liệu MySQL: Là 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, được tích hợp chặt chẽ với Apache và PHP. Tác giả phân tích rõ ưu điểm của MySQL về tốc độ xử lý cao, ổn định, hỗ trợ bảo mật nhiều cấp, tương thích các chuẩn SQL và khả năng mở rộng. Đồng thời, văn bản cũng chỉ ra nhược điểm: khi số lượng bản ghi tăng lớn, tốc độ truy xuất sẽ giảm dần, đòi hỏi các giải pháp can thiệp kỹ thuật như tạo bộ nhớ đệm (cache) hoặc phân tải cơ sở dữ liệu qua nhiều máy chủ.
2. Phương pháp nghiên cứu và phân tích thiết kế
- Phương pháp phân tích hệ thống hướng đối tượng: Sử dụng hệ thống ký hiệu và biểu đồ UML (Unified Modeling Language) để mô hình hóa toàn bộ yêu cầu và hành vi hệ thống:
- Biểu đồ ca sử dụng (Use Case Diagram): Xác định ranh giới hệ thống, tác nhân và các chức năng tương tác.
- Biểu đồ tuần tự (Sequence Diagram): Mô tả tuần tự thời gian và luồng thông điệp trao đổi giữa đối tượng giao diện, điều khiển và cơ sở dữ liệu cho từng chức năng.
- Biểu đồ hoạt động (Activity Diagram): Mô hình hóa luồng xử lý nghiệp vụ, điều kiện rẽ nhánh và trạng thái kết thúc của các ca sử dụng.
- Biểu đồ lớp (Class Diagram): Mô tả cấu trúc các đối tượng thực thể trong hệ thống phần mềm.
- Phương pháp thiết kế dữ liệu quan hệ: Xây dựng sơ đồ quan hệ thực thể (ERD) và chuẩn hóa danh mục các bảng dữ liệu lưu trữ trên hệ quản trị MySQL.
- Phương pháp phân tách phân hệ: Toàn bộ hệ thống được chia làm hai phân hệ độc lập về mặt quyền hạn: phân hệ khách hàng (Customer) và phân hệ quản trị (Admin).
Thiết kế và triển khai
Hệ thống website bán sách "Book of Moon" được thiết kế và triển khai dựa trên các phân tích kỹ thuật chi tiết từ tác nhân, trường hợp sử dụng đến cấu trúc dữ liệu vật lý.
1. Phân tích tác nhân và chức năng hệ thống
Hệ thống xác định hai tác nhân (Actor) chính tham gia vào các tiến trình nghiệp vụ:
| STT |
Tên Actor |
Ý nghĩa và quyền hạn trong hệ thống |
| 1 |
Admin |
Có toàn quyền điều hành, quản lý, theo dõi mọi hoạt động của hệ thống; thực hiện toàn bộ các chức năng quản trị. |
| 2 |
Customer |
Khách hàng truy cập website, tìm kiếm, xem thông tin sản phẩm, đặt mua, quản lý giỏ hàng, đăng ký, đăng nhập và thanh toán. |
Các chức năng được phân bổ cụ thể theo từng phân hệ:
2. Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL, bao gồm 12 bảng phục vụ lưu trữ nghiệp vụ thương mại điện tử và các bảng hỗ trợ vận hành mặc định của Laravel Framework:
| STT |
Tên bảng |
Ý nghĩa nghiệp vụ |
Khóa chính / Khóa ngoại tiêu biểu |
| 1 |
tbl_admin |
Quản lý tài khoản quản trị viên |
admin_id (PK) |
| 2 |
tbl_category_product |
Quản lý danh mục sản phẩm |
category_id (PK) |
| 3 |
tbl_pub |
Quản lý ngôn ngữ sản phẩm |
pub_id (PK) |
| 4 |
tbl_product |
Quản lý thông tin sách/tiểu thuyết |
product_id (PK), category_id (FK), pub_id (FK) |
| 5 |
tbl_customer |
Quản lý tài khoản khách hàng |
customer_id (PK) |
| 6 |
tbl_shipping |
Quản lý thông tin địa chỉ giao hàng |
shipping_id (PK) |
| 7 |
tbl_order |
Quản lý thông tin tổng quan đơn hàng |
order_id (PK), customer_id (FK), shipping_id (FK) |
| 8 |
tbl_order_detail |
Quản lý chi tiết từng mặt hàng trong đơn |
order_details_id (PK), order_id (FK), product_id (FK) |
| 9 |
migrations |
Quản lý khởi tạo cấu trúc bảng Laravel |
id (PK) |
| 10 |
personal_access_tokens |
Quản lý mã token xác thực người dùng |
id (PK), tokenable_id (FK) |
| 11 |
users |
Quản lý người dùng hệ thống chung |
id (PK) |
| 12 |
password_reset_tokens |
Quản lý token phục vụ đặt lại mật khẩu |
email, token |
Cấu trúc chi tiết của các bảng nghiệp vụ cốt lõi:
tbl_admin: admin_id (int 10, Auto_increment), admin_email (varchar 100), admin_password (varchar 255), admin_name (varchar 255), admin_phone (varchar 255), created_at (timestamp), update_at (timestamp).
tbl_category_product: category_id (int 10, Auto_increment), category_name (varchar 255), category_desc (text), slug_category (text), category_status (int 11), created_at (timestamp), update_at (timestamp).
tbl_pub: pub_id (int 10, Auto_increment), pub_name (varchar 255), pub_desc (text), pub_slug (text), pub_status (int 11), created_at (timestamp), update_at (timestamp).
tbl_product: product_id (int 10, Auto_increment), category_id (int 10), pub_id (int 10), product_name (varchar 255), product_desc (text), product_content (text), product_price (varchar 255), product_image (varchar 255), product_status (int 11), created_at (timestamp), update_at (timestamp).
tbl_shipping: shipping_id (int 10, Auto_increment), shipping_name (varchar 255), shipping_address (varchar 255), shipping_phone (varchar 255), shipping_email (varchar 255), created_at (timestamp), updated_at (timestamp).
tbl_order: order_id (bigint 20, Auto_increment), customer_id (int 10), shipping_id (int 10), order_total (varchar 50), order_status (int 11), created_at (timestamp), update_at (timestamp).
tbl_order_detail: order_details_id (bigint 20, Auto_increment), order_id (bigint 20), product_id (int 10), product_name (varchar 255), product_price (varchar 50), product_sales_quantity (int 11), created_at (timestamp), update_at (timestamp).
tbl_customer: customer_id (int 10, Auto_increment), customer_name (varchar 255), customer_email (varchar 255), customer_password (varchar 255), customer_phone (varchar 255), created_at (timestamp), updated_at (timestamp).
3. Quy trình tương tác nghiệp vụ
Tác giả đã chi tiết hóa quy trình xử lý của từng chức năng thông qua hệ thống kịch bản Use Case, biểu đồ tuần tự và biểu đồ hoạt động:
- Đăng nhập quản trị (Login): Admin nhập email và password vào form. Hệ thống thực hiện kiểm tra xác thực. Nếu hợp lệ, phiên làm việc được thiết lập cho phép truy cập các chức năng quản trị; nếu sai, hệ thống hiển thị thông báo lỗi và cung cấp tùy chọn "quên mật khẩu".
- Quản lý danh mục, ngôn ngữ và sản phẩm: Đều tuân thủ quy trình kiểm tra dữ liệu đầu vào trước khi thực thi truy vấn cơ sở dữ liệu:
- Thêm mới: Nhận dữ liệu từ form, kiểm tra tính hợp lệ, thêm bản ghi mới vào bảng tương ứng và thông báo thành công.
- Chỉnh sửa: Tải dữ liệu cũ lên giao diện cập nhật, nhận thông tin sửa đổi, xác thực và lưu vào cơ sở dữ liệu.
- Xóa: Kích hoạt xác nhận cảnh báo xóa, nếu người dùng đồng ý sẽ thực hiện xóa bản ghi trong bảng và cập nhật lại danh sách hiển thị.
- Quản lý đơn hàng: Admin kiểm tra danh sách đơn đặt hàng từ khách hàng, chọn đơn hàng cần xử lý và thực hiện cập nhật chuyển đổi trạng thái đơn hàng.
- Tương tác của khách hàng: Khách hàng duyệt danh sách sản phẩm, sử dụng thanh tìm kiếm, chọn xem chi tiết sản phẩm, thực hiện đưa sản phẩm vào giỏ hàng và chuyển sang tiến trình đặt hàng/thanh toán.
Nội dung chính theo từng chương
Bố cục khóa luận được triển khai thành các chương và phần nội dung chuyên biệt theo đúng tiến trình phân tích, thiết kế và cài đặt hệ thống phần mềm:
Lời mở đầu và Chương 1. Lý do chọn đề tài
Nội dung chương tập trung giới thiệu sự cần thiết của việc xây dựng website bán sách trực tuyến "Book of Moon". Tác giả trình bày thực trạng kinh doanh sách tiểu thuyết, chỉ rõ sự hạn chế của công tác quản lý thủ công truyền thống bằng giấy tờ và nêu bật lợi ích của công nghệ thông tin trong việc tối ưu hóa chi phí và nhân lực.
Chương 1 cũng xác định hệ thống mục tiêu tổng quát, mục tiêu cụ thể, nội dung thực hiện và phân chia phương pháp triển khai thành hai phân hệ User và Admin. Đồng thời, tác giả dành dung lượng giới thiệu nền tảng công nghệ sử dụng bao gồm ngôn ngữ kịch bản PHP, Laravel Framework với mô hình MVC (Controller, Model, View), và hệ quản trị cơ sở dữ liệu quan hệ MySQL kèm theo đánh giá ưu nhược điểm kỹ thuật của MySQL.
Phân tích và thiết kế hệ thống
Đây là nội dung trọng tâm của đồ án, chiếm khối lượng phân tích lớn với các đặc tả kỹ thuật hoàn chỉnh:
- Phân tích yêu cầu chức năng và tác nhân: Trình bày chi tiết 2 tác nhân (Admin, Customer), 5 chức năng người dùng trên website và 6 nhóm chức năng quản trị.
- Đặc tả ca sử dụng (Use Case): Hệ thống hóa bảng mô tả chi tiết cho Use Case Login, các Use Case CRUD (Thêm, Sửa, Xóa) danh mục sản phẩm, ngôn ngữ sản phẩm, sản phẩm và Use Case cập nhật trạng thái đơn hàng (Bảng 4 đến Bảng 14).
- Mô hình hóa động: Trình bày 13 biểu đồ tuần tự (Hình 7 đến Hình 19) và 10 biểu đồ hoạt động (Hình 20 đến Hình 29) mô tả chi tiết luồng xử lý từ giao diện qua hệ thống đến cơ sở dữ liệu đối với các thao tác đăng nhập, thêm/sửa/xóa thực thể, xem, tìm kiếm và thêm giỏ hàng.
- Mô hình hóa tĩnh và cấu trúc dữ liệu: Xây dựng biểu đồ lớp (Hình 30), danh mục 12 bảng cơ sở dữ liệu (Bảng 15) và chi tiết thuộc tính, kiểu dữ liệu, ràng buộc khóa chính/khóa ngoại của từng bảng (Bảng 16 đến Bảng 27).
Cài đặt hệ thống website
Chương này phản ánh kết quả lập trình và đóng gói ứng dụng thông qua hệ thống giao diện thực tế đã được xây dựng:
- Giao diện người dùng: Cài đặt hoàn thiện giao diện trang chủ, giao diện trang chi tiết sản phẩm, giao diện đăng nhập/đăng ký tài khoản và giao diện quản lý giỏ hàng của khách hàng.
- Giao diện quản trị: Triển khai các màn hình quản trị nội bộ gồm giao diện trang đăng nhập dành cho admin, giao diện danh sách quản lý danh mục sản phẩm, giao diện quản lý ngôn ngữ sản phẩm, biểu mẫu thêm mới ngôn ngữ sản phẩm và giao diện theo dõi, xử lý đơn hàng.
Kết quả và đóng góp
Dựa trên toàn bộ nội dung đồ án, các kết quả và đóng góp cụ thể được tác giả ghi nhận bao gồm:
Hạn chế và hướng nghiên cứu tiếp
Giá trị tham khảo
Đồ án là tài liệu tham khảo thực tế dành cho:
- Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Đặc biệt là những sinh viên đang làm quen với ngôn ngữ lập trình PHP, mô hình kiến trúc MVC và Laravel Framework trong các đồ án cơ sở ngành hoặc khóa luận tốt nghiệp về thương mại điện tử.
- Người làm đề tài phân tích thiết kế hệ thống web: Cung cấp tài liệu mẫu trực quan về cách đặc tả yêu cầu, viết kịch bản ca sử dụng (Use Case specification) và vẽ các biểu đồ UML chuẩn tắc (biểu đồ tuần tự, biểu đồ hoạt động, biểu đồ lớp) cho một bài toán bán hàng thực tế.
- Phần đáng tham khảo nhất: Cấu trúc thiết kế 12 bảng cơ sở dữ liệu quan hệ và hệ thống biểu đồ tương tác chi tiết mô tả rõ ràng các bước thực hiện thao tác CRUD từ giao diện điều khiển đến cơ sở dữ liệu.
Câu hỏi thường gặp
1. Tên cửa hàng sách và đối tượng sản phẩm chính mà website hướng tới là gì?
Website được xây dựng cho cửa hàng sách mang tên "Book of Moon", chuyên cung cấp các đầu sách tiểu thuyết trực tuyến đa dạng về thể loại và ngôn ngữ, đặc biệt hướng đến người đọc có nhu cầu tìm hiểu các tác phẩm tiểu thuyết nước ngoài.
2. Bảng dữ liệu nào trong cơ sở dữ liệu đảm nhận chức năng quản lý ngôn ngữ sản phẩm?
Theo danh mục và chi tiết thiết kế cơ sở dữ liệu của đồ án, bảng tbl_pub (với các trường pub_id, pub_name, pub_desc, pub_slug, pub_status) được sử dụng để quản lý thông tin ngôn ngữ sản phẩm.
3. Khách hàng cần điều kiện gì để thực hiện chức năng thanh toán trên website?
Theo mô tả chức năng của đồ án, khi người dùng chọn giỏ hàng và nhấn vào nút "Thanh toán", hệ thống sẽ tiến hành kiểm tra thông tin và bắt buộc người dùng phải đăng nhập tài khoản trước khi hiển thị trang thanh toán.
4. Đề tài đã phân tích những nhược điểm kỹ thuật nào của hệ quản trị cơ sở dữ liệu MySQL?
Tác giả đã chỉ ra ba nhược điểm chính: MySQL có những hạn chế về chức năng đối với một số ứng dụng đặc thù; một số chức năng xử lý làm cho hệ thống kém tin cậy hơn so với một vài RDBMS khác; và khi số lượng bản ghi lớn dần, việc truy xuất dữ liệu sẽ trở nên khó khăn, đòi hỏi phải chia tải database ra nhiều server hoặc tạo bộ nhớ cache.
5. Cơ sở dữ liệu của hệ thống gồm bao nhiêu bảng và các bảng mặc định của Laravel là những bảng nào?
Hệ thống sử dụng tổng cộng 12 bảng dữ liệu, trong đó bao gồm các bảng được Laravel khởi tạo phục vụ quản trị và xác thực là: migrations, personal_access_tokens, users và password_reset_tokens.
Kết luận
Đồ án tốt nghiệp "Xây dựng website bán sách sử dụng Laravel" của sinh viên Nguyễn Hải Biên đã giải quyết bài toán tin học hóa quy trình kinh doanh và quản lý bán sách tiểu thuyết cho cửa hàng "Book of Moon". Tác giả đã hoàn thành việc phân tích yêu cầu, mô hình hóa hệ thống bằng các biểu đồ UML chi tiết và thiết kế cơ sở dữ liệu quan hệ gồm 12 bảng trên nền tảng MySQL. Ứng dụng được cài đặt dựa trên kiến trúc MVC của Laravel Framework, cung cấp đầy đủ các giao diện cần thiết cho người dùng mua sách và người quản trị vận hành đơn hàng, danh mục sản phẩm.