Đề tài "Xây dựng websiteđọc truyện tranh trực tuyến" được đặt ra nhằm giải quyết những yêu cầu này thông qua việc phát triển một hệ thống hiện đại và thân thiện với người dùng.. Một webs
NGHIÊN CỨU TỔNG QUAN
Giới thiệu sơ lược về PHP
PHP là ngôn ngữ kịch bản dành riêng cho phát triển web, được Rasmus Lerdorf giới thiệu vào năm 1994 Nhờ khả năng nhúng trực tiếp vào HTML và tích hợp quản lý cơ sở dữ liệu mạnh mẽ, PHP đã trở thành một trong những công nghệ phổ biến nhất để xây dựng các ứng dụng web động Với nguồn mở và sự hỗ trợ của một cộng đồng lớn, PHP phù hợp cho người mới bắt đầu và cả các nhà phát triển chuyên nghiệp.
2.1.1 Cơ sở lý thuyết về PHP
- PHP là một ngôn ngữ lập trình kịch bản phổ biến, được phát triển ban đầu bởi
PHP được sáng lập bởi Rasmus Lerdorf vào năm 1994 và hiện nay được duy trì bởi cộng đồng mã nguồn mở, đảm bảo sự phát triển liên tục của ngôn ngữ này Được thiết kế để chạy trên máy chủ web, PHP cho phép xây dựng các trang web và ứng dụng web động, mang lại khả năng tương tác cao và dễ tích hợp với nhiều công nghệ web phổ biến.
PHP có khả năng nhúng trực tiếp vào mã HTML và tích hợp tốt với các hệ quản trị cơ sở dữ liệu như MySQL, PostgreSQL và SQLite, giúp tối ưu hóa truy vấn và xử lý dữ liệu Nhờ đặc tính này, PHP trở thành công cụ lý tưởng để xây dựng các hệ thống quản lý nội dung (CMS) nhanh chóng và linh hoạt, đồng thời cho phép phát triển các ứng dụng web phức tạp với hiệu suất và khả năng mở rộng cao.
WordPress, Joomla, cũng như các trang thương mại điện tử và mạng xã hội.
PHP nổi bật với cú pháp dễ học và mã nguồn mở, đồng thời mang lại hiệu suất cao, khả năng mở rộng và hỗ trợ trên nhiều hệ điều hành Bên cạnh đó, hệ sinh thái PHP rất đa dạng với các framework mạnh như Laravel và Symfony, giúp đơn giản hóa quá trình phát triển các ứng dụng web phức tạp và đẩy nhanh tiến độ triển khai.
2.1.2 Một số khái niệm cơ bản trong Java
Script hay tập lệnh PHP là một đoạn mã được chạy trên máy chủ để thực hiện một nhiệm vụ cụ thể, chẳng hạn như xử lý dữ liệu biểu mẫu hoặc truy vấn cơ sở dữ liệu Việc triển khai tập lệnh trên máy chủ giúp ứng dụng web xử lý thông tin người dùng nhanh chóng và an toàn, đồng thời trả về kết quả cho trình duyệt, tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống.
- Variable: Biến, là một đơn vị lưu trữ dữ liệu trong PHP, bắt đầu bằng ký tự $ và có thể chứa nhiều loại giá trị khác nhau như số, chuỗi, mảng, hoặc đối tượng.
- Function: Hàm, là một khối mã được định nghĩa để thực hiện một tác vụ cụ thể Hàm có thể được tái sử dụng trong nhiều phần của chương trình.
Mảng là một cấu trúc dữ liệu cơ bản trong lập trình, được dùng để lưu trữ nhiều giá trị trong một biến duy nhất Các phần tử của mảng có thể được truy cập nhanh chóng thông qua chỉ số (vị trí trong danh sách) hoặc khóa, tùy thuộc vào ngôn ngữ và kiểu mảng được sử dụng Mảng giúp sắp xếp và quản lý dữ liệu theo trình tự, tối ưu hoá quá trình duyệt và thao tác với giá trị, đồng thời là nền tảng cho nhiều thuật toán và cấu trúc dữ liệu khác trong phát triển phần mềm.
- Class: Lớp, là một bản thiết kế để tạo các đối tượng trong PHP Lớp có thể chứa thuộc tính (dữ liệu) và phương thức (hàm).
- Object: Đối tượng, là một thể hiện của một lớp, đại diện cho một thực thể với các đặc tính và hành vi riêng biệt.
- Namespace: Không gian tên, được sử dụng để tổ chức mã nguồn, tránh xung đột tên giữa các lớp, hàm, hoặc hằng số.
2.1.3 Giới thiệu một số thư viện và framework phổ biến trong PHP
- Laravel: Laravel là một framework PHP mã nguồn mở nổi tiếng được phát triển bởi
Laravel được thiết kế để giúp các nhà phát triển xây dựng ứng dụng web một cách nhanh chóng và dễ dàng nhờ cú pháp rõ ràng, thân thiện và một loạt tính năng mạnh mẽ như hệ thống routing linh hoạt, ORM Eloquent và các công cụ kiểm tra bảo mật được tích hợp sẵn Với cấu trúc MVC (Model-View-Controller), Laravel hỗ trợ phát triển từ các dự án nhỏ đến lớn và đi kèm với một cộng đồng lớn cùng kho tài liệu phong phú Nhờ khả năng mở rộng và tính linh hoạt, Laravel là lựa chọn hàng đầu cho các dự án web hiện đại.
- Symfony: Symfony là một framework PHP mạnh mẽ và linh hoạt được phát triển bởi
Symfony của SensioLabs là framework PHP giúp phát triển web và API hiệu quả nhờ kiến trúc modular với các component độc lập có thể tái sử dụng Được thiết kế cho các dự án lớn và phức tạp nhờ tính tùy biến cao và tuân thủ chuẩn mã nguồn mở, Symfony nổi bật với hệ thống cấu hình linh hoạt, công cụ Profiler mạnh mẽ và khả năng tích hợp dễ dàng với các thư viện hoặc framework khác, từ đó trở thành một trong những framework PHP phổ biến nhất.
WordPress là hệ quản trị nội dung CMS mã nguồn mở phổ biến nhất hiện nay, được viết bằng PHP và sử dụng cơ sở dữ liệu MySQL Nó cho phép người dùng xây dựng và quản lý mọi loại website từ blog cá nhân, trang tin tức cho đến cửa hàng thương mại điện tử mà không yêu cầu kiến thức lập trình phức tạp Hệ sinh thái plugin và theme phong phú của WordPress cho phép tùy biến website một cách linh hoạt và dễ dàng, mở rộng chức năng và giao diện theo nhu cầu Với giao diện thân thiện và cộng đồng lớn, WordPress là lựa chọn lý tưởng cho cả người mới bắt đầu và các nhà phát triển chuyên nghiệp.
CodeIgniter là một framework PHP nhẹ, hiệu quả và dễ sử dụng, được thiết kế cho các dự án web yêu cầu hiệu suất cao Với kích thước gọn và không đòi hỏi cấu hình phức tạp, CodeIgniter đi kèm với các thư viện cần thiết để xây dựng ứng dụng web nhanh chóng Nhờ tốc độ xử lý vượt trội và khả năng học, sử dụng dễ dàng, CodeIgniter được đánh giá cao và phù hợp cho cả những dự án nhỏ và vừa.
Cơ sở lý thuyết về framework Laravel
2.2.1 Giới thiệu về kiến trúc MVC
MVC (Model-View-Controller) là một mô hình thiết kế phần mềm được sử dụng rộng rãi trong phát triển ứng dụng, đặc biệt là ứng dụng web Mô hình này phân tách mã nguồn thành ba thành phần riêng biệt là Model (dữ liệu và logic nghiệp vụ), View (giao diện người dùng) và Controller (điều phối người dùng và luồng thực thi), giúp xác định rõ vai trò và trách nhiệm của mỗi phần Nhờ sự phân tách này, ứng dụng dễ bảo trì hơn, có khả năng mở rộng tốt hơn và quản lý dự án hiệu quả hơn nhờ quy trình làm việc có cấu trúc và dễ kiểm soát.
Hình 2.1 Tổng quan về mô hình MVC
Các thành phần chính của kiến trúc MVC:
- Model (M): là thành phần chịu trách nhiệm quản lý dữ liệu và logic nghiệp vụ.
Tương tác với cơ sở dữ liệu hoặc các nguồn dữ liệu khác.
Xử lý dữ liệu thô, thực hiện các thao tác như thêm, sửa, xóa, truy vấn.
Đảm bảo tính trừu tượng hóa, che giấu chi tiết thực thi của dữ liệu với các thành phần khác.
- View (V): là thành phần chịu trách nhiệm hiển thị giao diện người dùng.
Lấy dữ liệu từ Model (thông qua Controller) và hiển thị nó.
Tập trung vào việc trình bày và giao diện, không chứa logic nghiệp vụ.
Được thiết kế để người dùng tương tác với ứng dụng.
- Controller (C): là thành phần cầu nối giữa Model và View.
Xử lý các yêu cầu từ người dùng (thông qua View).
Điều hướng luồng dữ liệu giữa Model và View.
Chứa logic điều phối nhưng không thực hiện trực tiếp các thao tác với dữ liệu hoặc giao diện.
2.2.2 Tổng quan về framework Laravel
Laravel là một framework PHP mã nguồn mở nổi tiếng, được thiết kế để hỗ trợ việc phát triển ứng dụng web với cú pháp đơn giản và dễ tiếp cận Dựa trên kiến trúc Model-View-Controller (MVC), Laravel tách biệt rõ ràng giữa Model (dữ liệu), View (giao diện người dùng) và Controller (logic ứng dụng), từ đó tối ưu hóa quản lý mã nguồn, tăng khả năng bảo trì và đẩy nhanh quá trình phát triển ứng dụng web.
Hình 2.2 Các chức năng nổi bật của Laravel
- Laravel sử dụng kiến trúc MVC
Model trong Laravel là thành phần quản lý dữ liệu và tương tác với cơ sở dữ liệu thông qua ORM Eloquent, giúp trừu tượng hóa mọi thao tác với cơ sở dữ liệu và cho phép thực hiện các truy vấn SQL một cách trực quan và dễ dàng Nhờ đó, quá trình làm việc với dữ liệu trở nên nhanh chóng, nhất quán và tối ưu cho các ứng dụng web.
View: Định nghĩa giao diện hiển thị cho người dùng, sử dụng Blade - một công cụ template engine mạnh mẽ và linh hoạt của Laravel.
Controller: Điều phối luồng dữ liệu giữa Model và View, xử lý logic nghiệp vụ và phản hồi yêu cầu của người dùng.
- Các tính năng nổi bật của Laravel
Routing linh hoạt: Laravel cung cấp hệ thống định tuyến mạnh mẽ, dễ cấu hình, giúp quản lý các URL một cách trực quan.
Eloquent ORM là một hệ thống ORM tích hợp sẵn, giúp lập trình viên làm việc với cơ sở dữ liệu thông qua các đối tượng PHP thay vì phải viết SQL thủ công Với ORM này, dữ liệu được ánh xạ giữa bảng trong cơ sở dữ liệu và các lớp mô hình PHP, cho phép thực hiện các thao tác CRUD một cách trực quan và an toàn hơn Eloquent hỗ trợ quản lý mối quan hệ giữa các bảng (ví dụ: one-to-one, one-to-many, many-to-many) và tối ưu hóa quá trình truy vấn bằng cú pháp PHP tự nhiên, giúp tăng năng suất và bảo trì mã nguồn Việc sử dụng Eloquent không chỉ làm mã dễ đọc mà còn giúp tối ưu hóa hiệu suất phát triển ứng dụng web dựa trên PHP.
Blade Template Engine: Blade giúp xây dựng giao diện dễ dàng với cú pháp đơn giản, hỗ trợ tái sử dụng và kế thừa template.
Laravel cung cấp công cụ Migration để quản lý và thay đổi cấu trúc cơ sở dữ liệu một cách có hệ thống, giúp đảm bảo tính nhất quán của schema giữa các môi trường phát triển và triển khai.
Authentication và Authorization: Laravel tích hợp sẵn các công cụ xác thực và phân quyền, đảm bảo bảo mật cho ứng dụng.
Queue và Task Scheduling: Laravel hỗ trợ xử lý hàng đợi và lập lịch cho các tác vụ định kỳ, tối ưu hiệu suất ứng dụng.
Testing: Laravel cung cấp các công cụ kiểm thử tích hợp, giúp đảm bảo chất lượng ứng dụng trong quá trình phát triển.
- Laravel đi kèm với một hệ sinh thái phong phú gồm các công cụ và dịch vụ hỗ trợ:
Laravel Nova: Một giao diện quản trị mạnh mẽ và linh hoạt.
Laravel Forge và Envoyer: Công cụ triển khai và quản lý ứng dụng trên máy chủ.
Laravel Mix: Hỗ trợ biên dịch CSS và JavaScript hiện đại.
Laravel Sanctum và Passport: Hỗ trợ xây dựng API bảo mật.
Dễ học và dễ sử dụng với tài liệu phong phú.
Hỗ trợ bảo mật tốt với các công cụ tích hợp như mã hóa, xác thực CSRF, và lọc đầu vào.
Cộng đồng lớn, nhiều thư viện và package hỗ trợ.
Linh hoạt, phù hợp với các dự án từ nhỏ đến lớn.
Laravel không chỉ là một framework PHP mạnh mẽ mà còn là một công cụ toàn diện cho phát triển ứng dụng web, đáp ứng từ các yêu cầu cơ bản đến phức tạp Nó tích hợp sẵn các tính năng hiện đại như routing, ORM (Eloquent), middleware, bảo mật và engine template, giúp rút ngắn thời gian triển khai và tăng cường hiệu suất làm việc Với Laravel, các nhà phát triển có thể xây dựng từ các ứng dụng web đơn giản đến các hệ thống quy mô lớn một cách linh hoạt, an toàn và dễ mở rộng nhờ hệ sinh thái phong phú và sự hỗ trợ của cộng đồng.
Giới thiệu về một số công cụ nổi bật trong framework Laravel
Eloquent là một ORM (Object-Relational Mapping) của Laravel, giúp nhà phát triển làm việc với cơ sở dữ liệu một cách dễ dàng và hiệu quả thông qua các mô hình (models) Với Eloquent ORM, bạn có cú pháp trực quan và dễ sử dụng để tương tác với cơ sở dữ liệu mà không cần viết SQL thủ công Nó trừu tượng hóa các thao tác cơ sở dữ liệu, từ đó giảm thiểu lỗi và tiết kiệm thời gian cho dự án Việc làm việc với bảng dữ liệu trở nên tự nhiên và linh hoạt nhờ hỗ trợ các thao tác CRUD, quan hệ giữa các mô hình và tối ưu hóa hiệu suất Vì vậy, Eloquent là công cụ mạnh mẽ cho phát triển ứng dụng web với Laravel, giúp tăng tốc quá trình phát triển và đảm bảo code ngắn gọn, dễ bảo trì.
Hình 2.3 Cách hoạt động của Eloquent ORM
- Các tính năng nổi bật của Eloquent ORM
Với cú pháp dễ sử dụng, Eloquent cung cấp một ngôn ngữ thao tác dữ liệu trực quan và gần gũi với lập trình viên, giúp thao tác với cơ sở dữ liệu như làm việc với các đối tượng trong ứng dụng thay vì phải viết SQL thủ công Điều này không chỉ làm cho việc truy vấn và quản lý dữ liệu trở nên dễ hiểu và nhanh chóng hơn mà còn tăng tính bảo trì và khả năng mở rộng cho ứng dụng.
Quan hệ giữa các bảng trong Eloquent hỗ trợ các quan hệ cơ sở dữ liệu như one-to-many (một-nhiều), many-to-many (nhiều-nhiều), one-to-one (một-một) và has-many-through, cho phép ta dễ dàng tương tác với các bảng liên quan mà không cần phải viết nhiều truy vấn SQL phức tạp Nhờ các quan hệ này, việc truy vấn và quản lý dữ liệu trở nên gọn nhẹ và hiệu quả hơn, giúp tối ưu hoá hiệu suất ứng dụng và dễ bảo trì mã nguồn.
Trong Eloquent, mỗi lớp mô hình tự động ánh xạ với một bảng trong cơ sở dữ liệu, với tên bảng được tạo tự động ở dạng số nhiều của tên lớp Bạn có thể thay đổi tên bảng nếu cần thiết Eloquent cũng tự động ánh xạ các cột của bảng thành các thuộc tính của đối tượng mô hình, giúp đồng bộ hóa dữ liệu và giảm mã lặp lại.
Quản lý thời gian và ngày tháng (Timestamps) là ưu điểm của Eloquent Eloquent tự động xử lý các trường created_at và updated_at nếu bảng trong cơ sở dữ liệu có các trường này, giúp ghi nhận thời gian tạo và cập nhật bản ghi một cách tự động Nhờ vậy, việc quản lý dữ liệu thời gian trở nên nhanh chóng và chính xác hơn, đồng thời giảm công sức cho nhà phát triển và tăng tính nhất quán của hệ thống.
Với Eloquent ORM, các phương thức thao tác dữ liệu có sẵn cho phép xử lý dữ liệu nhanh chóng và dễ dàng Các tiện ích như find(), all(), where(), update(), delete() mang lại khả năng truy vấn và cập nhật dữ liệu một cách linh hoạt, và có thể kết hợp để tạo ra các truy vấn phức tạp mà không cần viết SQL thủ công Nhờ vậy, quá trình phát triển ứng dụng với Laravel được rút ngắn, giảm thiểu sai sót và tối ưu hiệu suất làm việc với cơ sở dữ liệu.
- Lợi ích khi sử dụng Eloquent ORM
Giảm thiểu mã SQL thủ công: Eloquent giúp bạn không phải viết nhiều truy vấn
SQL thủ công, giúp mã nguồn sạch sẽ và dễ đọc hơn.
Quản lý cơ sở dữ liệu một cách dễ dàng với Eloquent ORM của Laravel; các thao tác CRUD—thêm, sửa, xóa và tìm kiếm dữ liệu—trở nên đơn giản nhờ các phương thức sẵn có trong Eloquent.
Tăng tính bảo mật: Eloquent tự động bảo vệ ứng dụng của bạn khỏi các tấn công
SQL injection bằng cách sử dụng Prepared Statements.
Tính di động cao: Eloquent có thể làm việc với nhiều loại cơ sở dữ liệu như
MySQL, PostgreSQL, SQLite, v.v mà không cần phải thay đổi mã nguồn quá nhiều.
Blade là engine template mạnh mẽ và linh hoạt được tích hợp sẵn trong Laravel, giúp tạo ra các giao diện người dùng (views) cho ứng dụng web Với Blade, bạn có thể sử dụng cú pháp PHP trong các file blade.php để xây dựng các trang HTML động, đồng thời giữ cho mã nguồn sạch sẽ và dễ đọc.
- Lợi ích khi sử dụng Blade template:
Blade có cú pháp đơn giản và dễ hiểu, cho phép thao tác với HTML và PHP một cách trực quan và dễ dàng, giúp giảm thiểu sự phức tạp khi làm việc với giao diện người dùng.
Quản lý giao diện hiệu quả với Blade Laravel: Blade hỗ trợ kế thừa và phân chia các thành phần giao diện, cho phép tái sử dụng mã nguồn và làm cho việc bảo trì ứng dụng dễ dàng hơn, từ đó tối ưu hóa quy trình phát triển và tăng tính linh hoạt của dự án.
Blade bảo vệ ứng dụng khỏi XSS bằng cơ chế thoát biến tự động, giúp bạn không phải lo lắng về mã hóa thủ công.
Hiệu suất cao: Blade biên dịch các view thành mã PHP thuần túy và lưu lại, giúp cải thiện hiệu suất ứng dụng.
Giới thiệu về hệ quản trị cơ sở dữ liệu MySQL
MySQL is an open-source relational database management system (RDBMS) that operates on a client-server architecture It was developed by Oracle Corporation and is freely available to the user community.
MySQL từ lâu đã trở thành hệ quản trị cơ sở dữ liệu phổ biến trên toàn thế giới nhờ hiệu suất tối ưu và khả năng tích hợp với nhiều ngôn ngữ lập trình Hệ thống này tuân thủ các đặc tính ACID (Atomicity, Consistency, Isolation, Durability) nhằm đảm bảo tính toàn vẹn và đáng tin cậy của dữ liệu, đồng thời hỗ trợ khóa ngoại để kết nối dữ liệu giữa các bảng và cung cấp các công cụ sao lưu phục hồi dữ liệu an toàn và hiệu quả.
2.5.1 Một số tính năng nổi bật của MySQL
MySQL hỗ trợ đa ngôn ngữ lập trình, cho phép kết nối và tích hợp với nhiều ngôn ngữ phổ biến như C, C++, Python, Perl, Java và PHP, giúp các nhà phát triển dễ dàng xây dựng và triển khai ứng dụng dựa trên MySQL trên nhiều nền tảng khác nhau.
ACID, the cornerstone of MySQL transactions, comprises Atomicity, Consistency, Isolation, and Durability to guarantee data integrity during operations With Atomicity, transactions are all-or-nothing; with Consistency, data remains valid according to defined rules; with Isolation, concurrent transactions are executed in isolation to prevent interference; with Durability, once committed, changes persist even in the face of failures Together, these properties enable safe, concurrent database operations and uphold data integrity across all transactions in MySQL.
Tính năng sao lưu và phục hồi dữ liệu là một phần thiết yếu trong quản trị website, cho phép sao lưu dữ liệu một cách tự động hoặc thủ công và phục hồi nhanh chóng khi gặp sự cố Việc này giúp đảm bảo an toàn và tin cậy cho dữ liệu của người dùng và khách hàng, giảm thiểu rủi ro mất mát thông tin và ngắt quãng hoạt động Hệ thống sao lưu được tích hợp giúp khôi phục phiên bản dữ liệu trước sự cố mà không làm gián đoạn hiệu suất vận hành và trải nghiệm người dùng Điều này làm tăng độ tin cậy của website và bảo vệ tài sản số một cách bền vững.
Khóa ngoại trong MySQL là tính năng giúp liên kết dữ liệu giữa các bảng trong cùng một cơ sở dữ liệu, đảm bảo tính nhất quán và toàn vẹn dữ liệu Việc sử dụng khóa ngoại xác định mối quan hệ giữa các bảng và cho phép truy xuất thông tin từ nhiều bảng khác nhau một cách dễ dàng và hiệu quả Nhờ liên kết dữ liệu này, nhà phát triển có thể thực thi các truy vấn liên bảng, tổng hợp dữ liệu nhanh chóng và duy trì cấu trúc dữ liệu nhất quán trong hệ thống MySQL.
Tối ưu hóa hiệu suất là yếu tố then chốt khi làm việc với MySQL, giúp xử lý dữ liệu một cách nhanh chóng và hiệu quả MySQL cung cấp các công cụ và kỹ thuật tối ưu hoá để nhà phát triển tăng tốc độ xử lý, từ tối ưu truy vấn và quản lý chỉ mục đến điều chỉnh cấu hình máy chủ phù hợp Bằng cách phân tích kế hoạch thực thi, tối ưu hóa truy vấn và thiết kế cơ sở dữ liệu hợp lý, hiệu suất hệ thống được nâng lên đáng kể, giảm độ trễ và tăng thông lượng cho ứng dụng.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Một số quy trình hoạt động
3.1.1 Quy trình đăng ký tài khoản
Để sử dụng các chức năng như lưu truyện vào danh sách yêu thích, bình luận truyện và trở thành cộng tác viên, người dùng có thể truy cập đường dẫn tới trang đăng ký từ thanh điều hướng của website và tiến hành tạo tài khoản mới bằng các thông tin cần thiết Sau khi gửi thông tin đăng ký lên máy chủ, hệ thống sẽ kiểm tra tính hợp lệ của dữ liệu, ví dụ chiều dài tên người dùng và mật khẩu, cũng như xem tên người dùng đã có người sử dụng hay chưa Nếu thông tin hợp lệ và tên người dùng chưa bị trùng, hệ thống sẽ đăng ký tài khoản cho người dùng; nếu không hợp lệ, hệ thống sẽ yêu cầu nhập lại thông tin để hoàn tất quá trình đăng ký.
3.1.2 Quy trình đăng nhập tài khoản
Giao diện đăng nhập được bố trí với hai trường thông tin chính là tên người dùng và mật khẩu Người dùng cần đăng nhập để có thể truy cập các tính năng như thêm truyện vào danh sách yêu thích và viết bình luận.
Hệ thống kiểm tra tên người dùng và mật khẩu do người dùng cung cấp; nếu thông tin đăng nhập không hợp lệ, người dùng sẽ nhận được thông báo "Thông tin đăng nhập không hợp lệ" Ngược lại, nếu thông tin đăng nhập hợp lệ, hệ thống sẽ chuyển hướng người dùng về trang chủ.
3.1.3 Quy trình cấp quyền cộng tác truyện
Quản trị viên có thể cấp quyền cộng tác cho một truyện cụ thể cho bất kỳ người dùng nào có vai trò Collaborator Người dùng được cấp quyền cộng tác với một truyện do quản trị viên chỉ định có thể thêm mới hoặc chỉnh sửa các chương truyện thuộc phạm vi cộng tác.
3.1.4 Quy trình tìm kiếm truyện
Người dùng có thể tương tác với thanh tìm kiếm trên trang web để tìm kiếm truyện theo yêu cầu của mình, khi nhận được yêu cầu tìm kiếm từ người dùng, hệ thống sẽ tiến hành tìm kiếm những truyện có tên trùng hoặc tương tự với từ khoá tìm kiếm mà người dùng nhập vào.
3.1.5 Quy trình thêm truyện vào danh sách yêu thích
Trong quá trình đọc truyện, người dùng có thể thêm một truyện bất kì vào danh sách truyện yêu thích của mình (Quá trình này yêu cầu đăng nhập) Danh sách được thêm vào danh sách yêu thích của người dùng có thể được truy cập từ phần “Trung tâm người dùng” trên trang web.
3.1.6 Quy trình bình luận truyện
Người dùng có thể đăng bình luận về truyện đang đọc, bày tỏ quan điểm và tương tác với cộng đồng bằng cách nhấn nút Like, Dislike hoặc trả lời bình luận khác Khi bình luận được gửi lên server, backend sẽ kiểm tra tính hợp lệ của nội dung bằng cách rà soát xem nó có chứa từ khóa bị cấm hay không Nếu bình luận đáp ứng các tiêu chí, nó sẽ được lưu trữ và hiển thị cho người đọc; ngược lại, hệ thống sẽ hiển thị cảnh báo cho người dùng rằng bình luận chứa từ khóa bị cấm.
3.1.7 Quy trình quản lý truyện
Quản lý truyện là quá trình quan trọng giúp nội dung được sắp xếp khoa học, tối ưu cho công cụ tìm kiếm và phù hợp với đối tượng người dùng Người dùng ở vai trò quản trị có thể thêm truyện mới vào hệ thống bằng cách cung cấp đầy đủ các thông tin như tên truyện, tác giả, mô tả, thể loại và ảnh bìa, sau đó có thể thêm chương mới hoặc chỉnh sửa thông tin truyện khi cần Người dùng với vai trò cộng tác viên chỉ được phép thêm chương mới cho các truyện đã có sẵn nhằm đảm bảo quản trị nội dung được kiểm soát Cả hai vai trò đều tuân thủ các quy định về nội dung để tránh vi phạm bản quyền hoặc đăng tải nội dung không phù hợp Admin chịu trách nhiệm giám sát toàn bộ quy trình, phê duyệt các thay đổi khi cần thiết và xử lý các tình huống vi phạm đăng tải nội dung.
3.1.8 Quy trình quản lý bình luận
Quy trình quản lý bình luận trên website đọc truyện được thiết kế nhằm duy trì môi trường giao tiếp lành mạnh và thúc đẩy tương tác tích cực giữa người dùng, đồng thời tối ưu hóa SEO cho sự hiển thị nội dung Người đọc có thể để lại bình luận dưới mỗi truyện hoặc chương để chia sẻ cảm nhận và thảo luận với cộng đồng; các bình luận này được hệ thống ghi nhận và công khai hiển thị Đối với quản trị viên, có quyền xóa các bình luận vi phạm quy định như spam hoặc nội dung phản cảm và áp dụng biện pháp kiểm duyệt phù hợp để đảm bảo chất lượng thảo luận.
3.1.9 Quy trình quản lý người dùng
Trong một website đọc truyện, quản lý tài khoản người dùng đóng vai trò then chốt để đảm bảo trải nghiệm người dùng tốt và duy trì sự tương tác lâu dài của độc giả Khi tham gia đọc truyện, người dùng thường muốn tạo tài khoản để lưu thông tin cá nhân, theo dõi tiến độ đọc và nhận thông báo về chương mới cũng như lưu truyện yêu thích Khi số lượng người dùng tăng lên, quản lý tài khoản trở nên phức tạp đòi hỏi quy trình quản lý chặt chẽ Admin có quyền kiểm tra thông tin tài khoản, theo dõi hành vi người dùng để phát hiện và xử lý vi phạm như spam, kiểm soát nội dung thô tục và các hành động ảnh hưởng đến cộng đồng Đồng thời, admin có thể cấp cho người dùng các quyền khác nhau như quyền cộng tác viên để đóng góp chương mới hoặc quyền quản trị để quản lý hệ thống, trong khi chức năng người dùng bình thường vẫn được giữ nguyên.
Xây dựng biểu đồ use case
3.2.1 Xác định các tác nhân
Các tác nhân tham gia vào hệ thống:
- Người dùng: Sử dụng các chức năng cơ bản của trang web, đăng ký, đăng nhập
- Quản trị viên: Thực hiện việc quản trị trang web
3.2.2 Xác định các use case
Đăng ký và đăng nhập vào hệ thống
Báo cáo lỗi lên hệ thống
Lưu truyện vào danh sách yêu thích
Chỉnh sửa thông tin cá nhân
- Đối với quản trị viên:
Quản lí trình trạng bảo trì
3.2.3 Biểu đồ use case tổng quát
Hình 3.1 Biểu đồ use case tổng quát 3.2.4 Đặc tả một số use case ĐẶC TẢ USE CASE ĐĂNG NHẬP
Tên use case Đăng nhập tài khoản
Mô tả Đăng nhập để sử dụng các chức năng yêu cầu đăng nhập của hệ thống
Actor Người dùng, Quản trị viên Điều kiện kích hoạt Người dùng truy cập trang đăng nhập
Tiền điều kiện Người dùng đã có tài khoản hợp lệ trên hệ thống (username/password) Hậu điều kiện
- Người dùng đăng nhập thành công, được chuyển hướng đến trang chủ hoặc dashboard
- Nếu đăng nhập thất bại, hệ thống thông báo lỗi tương ứng
1 Người dùng truy cập vào trang đăng nhập.
2 Hệ thống hiển thị form nhập thông tin (username và password).
3 Người dùng nhập username và password, sau đó nhấn nút Đăng nhập.
4 Hệ thống kiểm tra thông tin đăng nhập
5 Nếu thông tin chính xác:
Tạo phiên đăng nhập cho người dùng
Hệ thống chuyển người dùng đến trang chính hoặc dashboard.
6 Nếu thông tin không chính xác:
Hệ thống hiển thị thông báo lỗi (ví dụ:
"Tên đăng nhập hoặc mật khẩu không đúng").
Hệ thống yêu cầu người dùng thử lại. ĐẶC TẢ USE CASE ĐĂNG KÝ
Tên use case Đăng ký tài khoản
Mô tả Đăng ký để sử dụng được các chức năng yêu cầu có tài khoản
Actor Người dùng Điều kiện kích hoạt Người dùng truy cập trang đăng ký
Tiền điều kiện Người dùng chưa có tài khoản trên hệ thống. Hậu điều kiện
- Người dùng đăng ký thành công, tài khoản mới được tạo trong hệ thống.
- Nếu đăng ký thất bại, hệ thống hiển thị thông báo lỗi tương ứng.
1 Người dùng truy cập vào trang đăng ký tài khoản.
2 Hệ thống hiển thị form nhập thông tin đăng ký.
3 Người dùng nhập đầy đủ thông tin và nhấn nút Đăng ký.
4 Hệ thống kiểm tra thông tin đăng nhập
Kiểm tra xem username đã có sẵn trên hệ thống chưa
Kiểm tra xem email đã được dùng để đăng ký trên hệ thống chưa
Kiểm tra chiều dài của mật khẩu để đảm bảo bảo mật
5 Nếu thông tin chính xác:
Hệ thống tạo tài khoản mới
Hệ thống thông báo đăng ký thành công và chuyển người dùng đến trang đăng nhập.
6 Nếu thông tin không chính xác:
Hệ thống hiển thị thông báo lỗi cụ thể, ví dụ như 'Email đã tồn tại' hoặc 'Tên người dùng này đã có người sử dụng', giúp người dùng nhận diện nhanh các tình huống sai dữ liệu và điều chỉnh hành động của mình Đặc tả Use Case đọc truyện mô tả cách hệ thống xử lý khi người dùng đăng ký hoặc đăng nhập, cảnh báo rõ ràng bằng thông báo lỗi cụ thể và cho phép người dùng khắc phục dễ dàng để tiếp tục tương tác với tính năng đọc truyện.
Tên use case Đọc truyện
Mô tả Đăng ký để sử dụng được các chức năng yêu cầu có tài khoản
Actor Người dùng Điều kiện kích hoạt Người dùng chọn truyện được hiển thị trên trang web để đọc
Sau khi đáp ứng điều kiện, người dùng có thể xem chi tiết truyện, bao gồm tên truyện, thể loại và danh sách các chương, đồng thời có thể chọn bất kỳ chương nào để đọc Trang sẽ hiển thị các thông tin này rõ ràng để nâng cao trải nghiệm đọc và tối ưu cho SEO với các từ khóa như xem chi tiết truyện, tên truyện, thể loại, các chương và đọc truyện trực tuyến.
1 Người dùng truy cập vào website đọc truyện tranh online.
2 Hệ thống hiển thị danh sách truyện, bao gồm:
Chương được cập nhật mới nhất.
3 Người dùng tìm kiếm hoặc chọn một truyện từ danh sách.
Hệ thống hiển thị danh sách các chương của truyện đã chọn.
Người dùng chọn một chương để đọc.
Người dùng có thể thêm truyện vào danh sách yêu thí
4 Hệ thống tải nội dung chương truyện và hiển thị:
Hiển thị các trang trong truyện dưới dạng ảnh
Công cụ điều hướng (chuyển sang trang/chương tiếp theo hoặc trước đó).
5 Người dùng đọc truyện và có thể:
Tiếp tục sang chương kế tiếp.
Quay lại danh sách chương hoặc danh sách truyện. ĐẶC TẢ USE CASE QUẢN LÝ TRUYỆN
Tên use case Quản lý truyện
Mô tả Quản trị viên có thể thêm, sửa, xoá truyện, chương của truyện trên hệ thống
Actor Quản trị viên Điều kiện kích hoạt Quản trị viên truy cập vào trang quản lý truyện trên hệ thống
Tiền điều kiện Đã đăng nhập vào hệ thống với tài khoản quản trị viên.
Hậu điều kiện Quản trị viên thêm, sửa, xoá truyện và dữ liệu được lưu lại trên hệ thống sau đó hiển thị cho người dùng.
1 Quản trị viên truy cập vào trang quản lý truyện.
2 Hệ thống hiển thị danh sách truyện hiện có, bao gồm:
Trạng thái (đang cập nhật/đã hoàn thành).
3 Quản trị viên có thể thực hiện các chức năng sau:
Quản lý chương truyện: (Thêm mới, sửa, xoá chương của một truyện)
4 Hệ thống cập nhật thay đổi và hiển thị thông báo thành công ĐẶC TẢ USE CASE BÌNH LUẬN
Tên use case Bình luận
Mô tả Người dùng có thể để lại nhận xét, cảm nhận hoặc thảo luận về truyện trên website
Actor Người dùng Điều kiện kích hoạt Người dùng đang ở trang đọc truyện và muốn đăng bình luận
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Quản trị viên thêm, sửa, xoá truyện và dữ liệu được lưu lại trên hệ thống sau đó hiển thị cho người dùng.
1 Người dùng truy cập vào trang chi tiết của một chương truyện.
2 Hệ thống hiển thị mục bình luận, bao gồm:
Danh sách các bình luận hiện có (tên người dùng, nội dung bình luận, thời gian đăng).
Ô nhập liệu để bình luận
3 Người dùng nhập nội dung bình luận vào ô nhập liệu:
4 Người dùng nhấn nút Đăng bình luận.
Nội dung không chứa từ ngữ cấm hoặc vi phạm quy định
6 Nếu hợp lệ, hệ thống lưu bình luận vào cơ sở dữ liệu và hiển thị bình luận đó trong danh sách
7 Hệ thống hiển thị thông báo: "Bình luận đã được đăng thành công." ĐẶC TẢ USE CASE THEO DÕI TRUYỆN
Tên use case Theo dõi truyện
Mô tả Người dùng có thể đánh dấu truyện yêu thích để dễ dàng theo dõi và truy cập sau này
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn vào nút yêu thích truyện ở trang chi tiết truyện
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Truyện được thêm vào danh sách yêu thích của người dùng và có thể truy cập trong phần
1 Người dùng truy cập vào danh sách truyện hoặc trang chi tiết của một truyện.
2 Hệ thống hiển thị biểu tượng Yêu thích (ví dụ: hình trái tim hoặc dấu sao) bên cạnh mỗi truyện.
3 Người dùng nhấn vào biểu tượng Yêu thích.
4 Hệ thống ghi nhận trạng thái yêu thích của truyện vào cơ sở dữ liệu
5 Hệ thống cập nhật biểu tượng Yêu thích (ví dụ: đổi màu hoặc trạng thái) để phản ánh rằng truyện đã được thêm vào danh sách yêu thích.
6 Hệ thống hiển thị thông báo: "Truyện đã được thêm vào danh sách yêu thích."
Xây dựng biểu đồ lớp
Xây dựng biểu đồ hoạt động
Hình 3.3 Biểu đồ hoạt động đăng ký tài khoản
Hình 3.4 Biểu đồ hoạt động đăng nhập tài khoản
Hình 3.5 Biểu đồ hoạt động đăng bình luận
3.4.4 Cập nhật thông tin cá nhân
Hình 3.6 Biểu đồ hoạt động cập thật thông tin cá nhân
3.4.5 Cho phép cộng tác truyện
Hình 3.7 Biểu đồ hoạt động tìm kiếm truyện
3.4.7 Thêm truyện vào danh sách yêu thích
Hình 3.8 Biểu đồ hoạt động thêm truyện vào danh sách yêu thích
Hình 3.9 Biểu đồ hoạt động quản lý người dùng
Hình 3.10 Biểu đồ tuần tự chức năng đặt lại mật khẩu
Xây dựng biểu đồ tuần tự
Hình 3.11 Biểu đồ tuần tự đăng ký tài khoản
Hình 3.12 Biểu đồ tuần tự đăng nhập tài khoản
Hình 3.13 Biểu đồ tuần tự thêm bình luận
Hình 3.14 Biểu đồ tuần tự tìm kiếm truyện
3.5.6 Cập nhật thông tin cá nhân
Hình 3.15 Biểu đồ tuần tự cập nhật thông tin cá nhân
XÂY DỰNG CƠ SỞ DỮ LIỆU
Mục đích của việc thiết kế cơ sở dữ liệu
Việc thiết kế cơ sở dữ liệu là một phần thiết yếu trong vòng đời phát triển ứng dụng, ảnh hưởng trực tiếp đến hiệu suất hệ thống, tính nhất quán dữ liệu và khả năng mở rộng Một thiết kế cơ sở dữ liệu tối ưu giúp tối ưu hóa truy vấn, giảm thiểu dư thừa dữ liệu và đảm bảo tính toàn vẹn của thông tin Nó cung cấp khung dữ liệu rõ ràng cho các thành phần của ứng dụng, hỗ trợ bảo trì, mở rộng và tích hợp với các hệ thống khác Thiết kế tốt còn tăng cường bảo mật dữ liệu và quản lý quyền truy cập, giúp bảo vệ thông tin nhạy cảm Nhờ có nền tảng thiết kế bài bản, doanh nghiệp có thể thực hiện phân tích, báo cáo và ra quyết định dựa trên dữ liệu, đồng thời giảm chi phí vận hành và tăng khả năng đáp ứng trước sự gia tăng lượng dữ liệu.
Thiết kế cơ sở dữ liệu tập trung vào đảm bảo tính nhất quán của dữ liệu, ngăn ngừa trùng lặp và lưu trữ mọi thông tin liên quan một cách chính xác Việc duy trì tính nhất quán dữ liệu giúp hệ thống tin cậy hơn, cải thiện khả năng tra cứu và phân tích, đồng thời tối ưu hoá quy trình quản lý dữ liệu Để đạt được điều này, cần áp dụng cấu trúc bảng hợp lý, ràng buộc dữ liệu và chuẩn hoá dữ liệu trong quá trình thiết kế Nhờ đó, dữ liệu được quản lý nhất quán trên toàn hệ thống và dễ dàng mở rộng khi cần.
Thiết kế cơ sở dữ liệu tối ưu góp phần tối ưu hóa hiệu suất hệ thống bằng cách tổ chức dữ liệu một cách hiệu quả và áp dụng đúng đắn các chỉ mục và phân vùng Nhờ cách tổ chức dữ liệu này, các truy vấn và truy xuất dữ liệu diễn ra nhanh chóng và hiệu quả, giúp hệ thống đáp ứng tốt hơn trước tải trọng cao và cải thiện trải nghiệm người dùng.
Quản lý dữ liệu hiệu quả được hỗ trợ từ thiết kế cơ sở dữ liệu tối ưu, mang lại một cách tiếp cận hợp lý để quản lý dữ liệu và đảm bảo tính nhất quán Nhờ cấu trúc cơ sở dữ liệu được thiết kế tốt, người quản trị có thể dễ dàng thêm mới, sửa đổi hoặc xóa dữ liệu một cách an toàn và hiệu quả, đồng thời tăng tính mở rộng và hiệu suất cho hệ thống.
Bảo mật dữ liệu là một phần thiết yếu của thiết kế cơ sở dữ liệu, giúp bảo vệ thông tin quan trọng khỏi các mối đe dọa bên ngoài Để đạt được điều này, các biện pháp bảo mật như mã hóa dữ liệu, quản lý quyền truy cập và xác thực người dùng được triển khai nhằm ngăn chặn truy cập trái phép và rò rỉ dữ liệu Việc quản trị quyền truy cập theo vai trò và nguyên tắc tối giản quyền lực giúp giảm thiểu rủi ro bảo mật và tăng cường an toàn dữ liệu Tóm lại, thiết kế cơ sở dữ liệu an toàn không chỉ là lưu trữ dữ liệu mà còn là bảo vệ thông tin bằng các cơ chế bảo mật linh hoạt và được quản lý chặt chẽ.
Một cơ sở dữ liệu được thiết kế tốt cho phép mở rộng dễ dàng để đáp ứng nhu cầu tăng trưởng của hệ thống Thiết kế với tư duy mở rộng từ đầu cho phép thêm mới các bảng, chỉ mục và chức năng mà không làm ảnh hưởng đến hiệu suất hoặc tính nhất quán của dữ liệu, giúp hệ thống duy trì hiệu quả và ổn định ngay khi khối lượng dữ liệu và lượng người dùng tăng lên.
Cấu trúc của các bảng và mối quan hệ giữa các bảng
Hình 4.1 Các bảng và mối quan hệ giữa các bảng trong cơ sở dữ liệu
XÂY DỰNG WEBSITE
Giao diện người dùng
Hình 5.1 Giao diện trang chủ
Hình 5.2 Thanh điều hướng của trang web
Hình 5.3 Truy cập trung tâm người dùng và trang quản trị từ thanh điều hướng
Hình 5.4 Xem thông báo từ thanh điều hướng
Hình 5.5 Tìm kiếm truyện từ thanh điều hướng
Hình 5.6 + 5.7 Xem chi tiết truyện
Hình 5.8 Đọc truyện theo chương
5.1.6 Chỉnh sửa thông tin cá nhân
Hình 5.9 Trang xem thông tin cá nhân
Hình 5.10 Trang chỉnh sửa thông tin cá nhân
Hình 5.11 Giao diện bình luận truyện
Hình 5.12 Giao diện thêm bình luận thành công
Hình 5.13 Hiển thị bình luận vừa thêm
Giao diện quản trị
5.2.1 Giao diện quản lý truyện
Hình 5.14 Giao diện thêm truyện mới
Hình 5.15 Giao diện danh sách truyện
Hình 5.16 Giao diện sửa truyện
Hình 5.17 Giao diện quản lý cộng tác viên và quản lý chương truyện
5.2.2 Giao diện quản lý người dùng
Hình 5.18 Giao diện quản lý người dùng
Hình 5.19 Giao diện sửa thông tin người dùng
5.2.3 Giao diện quản lý bình luận
Hình 5.20 Giao diện liệt kê bình luận theo truyện
Hình 5.21 Giao diện quản lý bình luận theo truyện
5.2.4 Giao diện quản lý thông báo
Hình 5.22 Giao diện thêm thông báo
Hình 5.23 Thông báo đã được thêm thành công
Hình 5.24 Người dùng nhận được thông báo đã thêm
Hình 5.25 Quản lý thông báo đã chọn