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ẽ dưới tác động của cuộc cách mạng công nghệ 4.0, nhu cầu giải trí trực tuyến của người dân ngày càng gia tăng. Bên cạnh các hình thức giải trí số như mạng xã hội, trò chơi điện tử hay phim ảnh, việc đọc truyện vẫn giữ vai trò là một phương tiện giải trí và giáo dục phổ biến. Tuy nhiên, hình thức tiếp cận sách truyện truyền thống qua các hiệu sách hoặc thư viện bộc lộ sự bất tiện đối với đối tượng học sinh, sinh viên và người đi làm do hạn chế về thời gian, địa điểm và chi phí đi lại. Đặc biệt, trong giai đoạn dịch bệnh Covid-19 tại Việt Nam, nhu cầu tiếp cận các tác phẩm truyện thông qua nền tảng trực tuyến từ thiết bị máy tính hoặc điện thoại thông minh đã tăng cao rõ rệt.

Xuất phát từ thực tiễn trên, đề tài "Phát triển website đọc truyện" được thực hiện nhằm xây dựng một hệ thống thông tin phục vụ việc đọc truyện trực tuyến và tự động hóa quy trình quản trị tác phẩm số.

Mục tiêu nghiên cứu và nhiệm vụ của đề tài được tác giả xác định cụ thể như sau:

  1. Hoàn thiện kỹ năng sử dụng Framework Laravel trong phát triển ứng dụng web.
  2. Nâng cao hiểu biết về ngôn ngữ lập trình PHP.
  3. Làm chủ và áp dụng mô hình kiến trúc Model-View-Controller (MVC).
  4. Nghiên cứu các kỹ thuật và công nghệ phát triển web phổ biến, hiện đại.
  5. Thực hiện quy trình phân tích và thiết kế hệ thống thông tin cho website đọc truyện.
  6. Xây dựng hoàn chỉnh sản phẩm phần mềm dựa trên bản phân tích thiết kế hệ thống.
  7. Chạy thử nghiệm hệ thống website trên môi trường máy chủ cục bộ (local).
  8. Tiến hành phân tích, đánh giá chất lượng sản phẩm phần mềm.
  • Đối tượng nghiên cứu: Quy trình quản lý, phân loại, tìm kiếm và phân phối nội dung truyện số; kiến trúc phần mềm hướng đối tượng dựa trên framework mã nguồn mở.
  • Phạm vi không gian: Triển khai và kiểm thử trong môi trường cục bộ (localhost) tại Trường Đại học Công Nghệ Đông Á.
  • Phạm vi thời gian: Đề tài được hoàn thành và bảo vệ vào năm 2022.

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

Khung lý thuyết và mô hình hệ thống

Nghiên cứu dựa trên các lý thuyết nền tảng về hệ thống thông tin và kỹ thuật phần mềm:

  • Lý thuyết hệ thống thông tin: Hệ thống được xác định gồm 5 thành phần cơ bản: phần cứng, phần mềm (hệ thống và ứng dụng chuyên biệt), cơ sở dữ liệu, hệ thống truyền thông và nhân sự công nghệ thông tin. Nghiên cứu xác định vai trò của hệ thống thông tin là cầu nối trung gian giữa hệ thống nghiệp vụ và môi trường bên ngoài.
  • Phương pháp tiếp cận hệ thống: Tác giả hệ thống hóa 4 phương pháp tiếp cận phát triển hệ thống gồm: tiếp cận hướng tiến trình (PDA), tiếp cận hướng dữ liệu (DDA), tiếp cận định hướng cấu trúc (SDA) và tiếp cận hướng đối tượng (OOA). Quy trình xây dựng trải qua 5 bước: Khảo sát, Phân tích hệ thống, Thiết kế hệ thống, Xây dựng hệ thống, Cài đặt và bảo trì.
  • Ngôn ngữ mô hình hóa thống nhất (UML): Sử dụng các khái niệm hướng đối tượng (Đối tượng, Lớp, Kế thừa, Đóng gói) và hệ thống biểu đồ UML để trực quan hóa kiến trúc và hành vi hệ thống.
  • Cơ sở dữ liệu quan hệ (RDBMS): Tổ chức dữ liệu qua các bảng liên kết (quan hệ 1-1, 1-N, N-N), bảo đảm các ràng buộc về kiểu, giải tích và logic; thực thi các phép toán cơ sở dữ liệu cơ bản (Insert, Delete, Update).

Phương pháp nghiên cứu và thu thập dữ liệu

  • Phương pháp phỏng vấn: Tiến hành thu thập yêu cầu người dùng trực tiếp từ hai nhóm đối tượng: Độc giả (về giao diện, tính năng tìm kiếm, đọc, đánh giá, bình luận) và Quản trị viên hệ thống (về quy trình quản lý tác phẩm, danh mục, thể loại, chương, phân quyền và quản lý tài khoản).
  • Phương pháp hội thảo: Tổ chức thảo luận cùng nhóm nhà phát triển và kiểm thử để xác định các yêu cầu phi chức năng (khả năng xử lý của máy chủ web, tính tương thích đa trình duyệt, tối ưu hóa tốc độ và bảo mật hệ thống).
  • Phương pháp mô hình hóa và phân tích logic: Phân tích các ca sử dụng (Use Case), xây dựng biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram) nhằm chuẩn hóa luồng dữ liệu trước khi lập trình.

Thiết kế và triển khai hệ thống

Kiến trúc phần mềm

Hệ thống được thiết kế hoàn toàn theo mô hình kiến trúc MVC (Model - View - Controller), phân tách rõ ràng ba lớp xử lý:

  • Model: Tương tác trực tiếp với cơ sở dữ liệu thông qua Eloquent ORM. Lớp này định nghĩa cấu trúc bảng, khóa chính, các trường cho phép gán dữ liệu hàng loạt ($fillable) và xử lý các logic truy vấn dữ liệu thông qua các hàm như all(), find(), first(), where().
  • View: Đảm nhiệm hiển thị giao diện người dùng, sử dụng công cụ Blade Template Engine của Laravel. Blade View được lưu với phần mở rộng .php trong thư mục resources/views, áp dụng cơ chế kế thừa giao diện thông qua các chỉ thị @extends, @section, @yield và các cấu trúc vòng lặp (@for, @foreach, @forelse, @while).
  • Controller: Đóng vai trò tiếp nhận các yêu cầu HTTP từ người dùng, điều phối các hàm nghiệp vụ trong Model và trả về dữ liệu tương ứng cho View. Dự án sử dụng cấu trúc Resource Controller (tạo bằng lệnh php artisan make:controller StoryController --resource) để chuẩn hóa các phương thức xử lý RESTful.

Ngăn xếp công nghệ và cơ chế kỹ thuật

  • Ngôn ngữ và nền tảng: Ngôn ngữ lập trình PHP kết hợp Framework Laravel (phiên bản Laravel 8).
  • Cơ chế định tuyến (Routing): Hệ thống định tuyến ánh xạ trực tiếp các URI và phương thức HTTP tới các Controller tương ứng.
Phương thức HTTP Mục đích xử lý Phương thức Route trong Laravel
GET Lấy tài nguyên (hiển thị danh sách, form dữ liệu) Route::get()
POST Tạo mới tài nguyên trong cơ sở dữ liệu Route::post()
PUT Cập nhật toàn bộ thông tin của tài nguyên Route::put()
PATCH Cập nhật một phần thông tin của tài nguyên Route::patch()
DELETE Xóa bỏ tài nguyên khỏi cơ sở dữ liệu Route::delete()
  • Tầng trung gian (Middleware): Sử dụng các lớp Middleware (như VerifyAccountBalance) đăng ký trong Kernel.php để lọc các HTTP request, kiểm tra trạng thái xác thực của người dùng (Auth::check()) trước khi cho phép truy cập tài nguyên quản trị.
  • Hệ thống Migration: Quản lý phiên bản cơ sở dữ liệu bằng mã nguồn PHP qua các phương thức up() và down() của lớp Migration kết hợp Schema và Blueprint, cho phép khởi tạo và cập nhật các bảng dữ liệu tự động (php artisan migrate).
  • Bảo mật hệ thống: Tận dụng các cơ chế bảo mật tích hợp sẵn của Laravel:
    • Sử dụng PDO (PHP Data Objects) để ngăn chặn tấn công SQL Injection.
    • Tích hợp trường mã thông báo ẩn (CSRF Token) trong form để chống tấn công Cross-Site Request Forgery.
    • Tự động mã hóa (escape) các biến đầu ra trên Blade View để phòng chống tấn công Cross-Site Scripting (XSS).
    • Tích hợp thư viện SwiftMailer để hỗ trợ gửi email thông báo.

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

Phần mở đầu

Tác giả trình bày bối cảnh chuyển dịch số trong lĩnh vực giải trí, lý do lựa chọn đề tài xây dựng website đọc truyện, và khái quát cấu trúc chức năng cần đạt được của hệ thống bao gồm: hệ thống xác thực tài khoản (admin và độc giả), quản lý danh mục, quản lý thể loại, quản lý thông tin website, quản lý tài khoản, đánh giá truyện và bộ lọc tìm kiếm tác phẩm.

Chương 1: Tổng quan đề tài và cơ sở lý thuyết

Nội dung chương 1 tập trung hệ thống hóa các khái niệm kỹ thuật và cơ sở lý thuyết nền tảng:

  • Phân tích chi tiết bài toán thực tế của hai nhóm đối tượng: độc giả (cần sự tiện lợi, tiết kiệm chi phí, tìm kiếm nhanh chóng) và nhà quản trị (cần công cụ thêm, sửa, xóa tác phẩm, danh mục, tác giả, thể loại, quản lý người dùng và phân quyền).
  • Định nghĩa chi tiết về hệ thống thông tin, các thành phần cấu thành, nhiệm vụ đối nội/đối ngoại, 4 cách tiếp cận phát triển hệ thống và quy trình 5 bước phát triển phần mềm.
  • Trình bày cơ sở dữ liệu quan hệ, các mối quan hệ (1-1, 1-N, N-N), hệ thống ràng buộc và các phép toán cơ bản (Insert, Update, Delete).
  • Phân tích sâu về cấu trúc Framework Laravel: khái niệm framework web, các đặc tính của PHP Framework, kiến trúc MVC, cơ chế hoạt động của Blade Template, hệ thống Route và bảng phương thức HTTP, cấu trúc Resource Controller, cơ chế kiểm soát của Middleware, hệ thống Migration quản lý bảng CSDL, và kỹ thuật Eloquent ORM.
  • Đánh giá ưu điểm (cập nhật tính năng mới của PHP, tài nguyên phong phú, tích hợp SwiftMailer, bảo mật với PDO/CSRF/XSS) và nhược điểm (sự thiếu liên kết giữa các phiên bản nâng cấp, dung lượng framework tương đối nặng trên thiết bị di động).

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

Chương 2 mô tả toàn bộ quá trình khảo sát, mô hình hóa nghiệp vụ và thiết kế chi tiết:

  • Bảng danh sách và phân loại yêu cầu: Tổng hợp kết quả thu thập yêu cầu chức năng và yêu cầu phi chức năng từ ba nhóm: Quản trị viên, Độc giả và Đội ngũ kỹ thuật/kiểm thử.
Nhóm yêu cầu Nội dung chi tiết trong văn bản
Yêu cầu chức năng - Đăng ký, đăng nhập, đăng xuất tài khoản.
- Quản lý tài khoản người dùng và phân quyền.
- Quản lý tác phẩm (thêm, sửa, xóa tác phẩm).
- Quản lý tác giả, danh mục, thể loại, chapters (thêm, sửa, xóa).
- Quản lý thông tin website (logo, tiêu đề, mô tả, copyright, status).
- Gợi ý tác phẩm hot; tìm kiếm theo tên, tác giả, thể loại, danh sách.
- Thêm bình luận (comment) và đánh giá truyện.
Yêu cầu phi chức năng - Giao diện quản trị đơn giản, dễ nhìn; thao tác người dùng dễ dàng.
- Hoạt động ổn định trên tất cả các trình duyệt web phổ biến.
- Tối ưu hóa website nhằm tránh tình trạng giật, lag.
- Bảo đảm an toàn hệ thống, tránh bị lợi dụng lỗ hổng.
- Máy chủ web đáp ứng đủ khả năng lưu trữ và xử lý dung lượng lớn.
  • Mô hình hóa Use Case:
    • Xác định 2 Actor chính: Độc giả và Quản trị viên.
    • Xây dựng biểu đồ Use Case tổng quát, biểu đồ Use Case cho từng Actor, và đặc tả chi tiết 8 Use Case quản trị: Quản lý tài khoản, Quản lý tác phẩm, Quản lý danh mục, Quản lý thể loại, Quản lý thông tin website, Quản lý danh sách truyện, Quản lý tác giả, Quản lý chapters.
  • Xây dựng biểu đồ thiết kế động và tĩnh:
    • Thiết kế Biểu đồ lớp (Class Diagram) và hệ thống bảng CSDL quan hệ (gồm các bảng tiêu biểu như roles_has_permissions, story_categories, story_genres).
    • Thiết kế Biểu đồ tuần tự (Sequence Diagram) cho 15 chức năng cụ thể: đăng nhập, đăng ký, quản lý tài khoản, tìm kiếm, thêm/sửa/xóa tác phẩm, thêm/sửa/xóa danh mục, thêm/sửa/xóa thể loại, thêm/sửa/xóa thông tin website, danh sách truyện, thêm/sửa/xóa chapters, đánh giá, bình luận và quản lý vai trò.
    • Xây dựng Biểu đồ hoạt động (Activity Diagram) cho 8 quy trình: Đăng ký độc giả, Đăng nhập độc giả, Đánh giá tác phẩm, Đăng nhập admin, Quản lý tài khoản user, Quản lý danh mục, Quản lý thể loại, Quản lý thông tin website.
  • Hiện thực hóa giao diện hệ thống: Xây dựng hệ thống 16 màn hình giao diện mẫu gồm: Giao diện đăng nhập/đăng ký độc giả, Đăng nhập quản trị, Trang chủ, Chi tiết tác phẩm, Dashboard quản trị, Quản lý danh mục, Thể loại, Tác giả, Danh sách truyện, Chương truyện, Thông tin website, Danh sách tài khoản, Tạo tài khoản, Quản lý vai trò và Tạo quyền.

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

Kết quả kỹ thuật đạt được

  • Hoàn thành bộ hồ sơ phân tích và thiết kế hệ thống thông tin quản lý website đọc truyện theo chuẩn phân tích hướng đối tượng (OOA/UML).
  • Xây dựng thành công ứng dụng demo website đọc truyện hoạt động trên môi trường cục bộ (local), đáp ứng các chức năng nghiệp vụ của hai phân hệ người dùng:
    • Phân hệ độc giả: Thực hiện đăng ký, đăng nhập, tìm kiếm truyện đa tiêu chí, xem thông tin chi tiết tác phẩm, gửi bình luận và đánh giá tác phẩm.
    • Phân hệ quản trị (Admin Dashboard): Quản lý toàn bộ vòng đời dữ liệu của tác phẩm (thêm, sửa, xóa truyện, chương, tác giả, danh mục, thể loại), cấu hình thông tin website và quản trị người dùng.
  • Xây dựng và chuẩn hóa cơ sở dữ liệu quan hệ với các bảng liên kết thực thể (story_categories, story_genres) và bảng phân quyền người dùng (roles_has_permissions).
  • Triển khai thành công các kỹ thuật cốt lõi của Laravel 8: Eloquent ORM, Blade View kế thừa, Middleware xác thực và cơ chế phòng chống các lỗ hổng bảo mật phổ biến (SQL Injection, CSRF, XSS).

Đóng góp của tác giả

  • Ứng dụng thành công mô hình MVC và framework Laravel vào bài toán số hóa nghiệp vụ quản lý truyện trực tuyến.
  • Đề xuất mô hình phân quyền quản trị chi tiết, cho phép quản trị viên cấp cao phân chia quyền hạn cụ thể cho các cấp quản trị phụ trợ, giúp tối ưu hóa công tác vận hành hệ thống.

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

Hạn chế

Căn cứ vào nội dung được trình bày trong đồ án, hệ thống còn tồn tại các hạn chế sau:

  • Khung phần mềm Laravel có nhược điểm về sự thiếu liên kết giữa các phiên bản cập nhật, việc nâng cấp phiên bản framework có thể gây gián đoạn hoặc phá vỡ cấu trúc mã nguồn đã xây dựng.
  • Nền tảng framework tương đối nặng đối với ứng dụng di động, có khả năng làm giảm tốc độ tải trang trên các thiết bị có cấu hình hạn chế nếu chưa được tối ưu hóa chuyên sâu.
  • Hệ thống mới được triển khai và thử nghiệm trên môi trường máy chủ cục bộ (local), chưa được kiểm thử tải thực tế trên môi trường máy chủ mạng Internet quy mô lớn.

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

  • Nghiên cứu các giải pháp tối ưu hóa hiệu năng, giảm tải dung lượng framework nhằm tăng tốc độ tải trang trên các thiết bị di động.
  • Triển khai hệ thống lên máy chủ web thực tế (Web Hosting/Cloud Server), tích hợp tên miền để phục vụ người dùng thực tế và kiểm thử khả năng chịu tải của máy chủ.

Giá trị tham khảo

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

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Có thể tham khảo như một mẫu đồ án tốt nghiệp chuẩn về quy trình phát triển ứng dụng web hướng đối tượng từ khâu khảo sát, mô hình hóa UML đến lập trình thực tế.
  • Lập trình viên mới bắt đầu với PHP/Laravel: Cung cấp tài liệu mô tả rõ ràng về cách thức tổ chức mã nguồn theo mô hình MVC, cách vận hành Resource Controller, thiết lập Middleware xác thực, cấu hình Migration và thao tác cơ sở dữ liệu bằng Eloquent ORM.
  • Phần đáng tham khảo nhất: Hệ thống biểu đồ phân tích thiết kế chi tiết (Use Case, Sequence Diagram cho từng thao tác CRUD, Activity Diagram) và bảng phân loại yêu cầu chức năng/phi chức năng trong Chương 2.

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

1. Hệ thống website đọc truyện trong đồ án phục vụ những tác nhân (actor) nào và nhiệm vụ chính của họ là gì?
Hệ thống xác định 2 tác nhân chính:

  • Độc giả: Người dùng cuối có nhu cầu giải trí, thực hiện các thao tác đăng ký, đăng nhập, tìm kiếm tác phẩm theo nhiều tiêu chí, đọc truyện, gửi bình luận và đánh giá tác phẩm.
  • Quản trị viên (Admin): Người quản lý hệ thống, có quyền thực hiện thêm, sửa, xóa tác phẩm, danh mục, thể loại, tác giả, chapters, thông tin website, quản lý danh sách tài khoản và phân quyền quản trị.

2. Tác giả đã tận dụng những cơ chế bảo mật có sẵn nào trong Framework Laravel để bảo vệ website?
Hệ thống áp dụng 3 giải pháp bảo mật tích hợp của Laravel:

  • Sử dụng PDO để chống lại các cuộc tấn công SQL Injection vào cơ sở dữ liệu.
  • Sử dụng trường mã thông báo ẩn (CSRF Token) trong các form dữ liệu để chống tấn công giả mạo yêu cầu (CSRF).
  • Tự động mã hóa (escape) các biến dữ liệu khi đưa ra lớp hiển thị (View) để ngăn ngừa tấn công mã độc Cross-Site Scripting (XSS).

3. Kiến trúc cơ sở dữ liệu của đồ án xử lý các mối quan hệ đa dạng giữa truyện, danh mục, thể loại và phân quyền qua các bảng nào?
Cơ sở dữ liệu của hệ thống sử dụng mô hình quan hệ để xử lý các liên kết nhiều-nhiều (N-N) thông qua các bảng trung gian tiêu biểu được liệt kê trong danh mục bảng biểu: bảng story_categories (liên kết truyện và danh mục), bảng story_genres (liên kết truyện và thể loại) và bảng roles_has_permissions (liên kết vai trò người dùng và quyền hạn).

4. Cơ chế Middleware được tác giả ứng dụng như thế nào trong đồ án?
Middleware hoạt động như một lớp đứng giữa yêu cầu từ người dùng và hệ thống. Tác giả sử dụng Middleware (tiêu biểu như lớp VerifyAccountBalance) với phương thức handle() để kiểm tra điều kiện xác thực người dùng (Auth::check()). Nếu thỏa mãn, request sẽ được chuyển tiếp qua closure $next($request) để tiếp tục thực thi nghiệp vụ; nếu không thỏa mãn, hệ thống sẽ chuyển hướng người dùng về trang chủ kèm thông báo lỗi.


Kết luận

Đồ án tốt nghiệp "Phát triển website đọc truyện" do sinh viên Bùi Thành Long thực hiện đã hoàn thành toàn diện quy trình nghiên cứu, phân tích thiết kế và xây dựng một hệ thống phần mềm hoàn chỉnh dựa trên nền tảng Laravel Framework và kiến trúc MVC. Thông qua việc khảo sát yêu cầu thực tế và mô hình hóa chặt chẽ bằng ngôn ngữ UML, tác giả đã giải quyết thành công bài toán quản lý nội dung truyện trực tuyến cho người quản trị và cung cấp nền tảng đọc truyện tiện lợi cho độc giả. Kết quả thử nghiệm trên môi trường máy chủ cục bộ khẳng định tính đúng đắn của thiết kế hệ thống, đồng thời mang lại giá trị tham khảo thiết thực cho các nghiên cứu và ứng dụng phát triển web tương tự.