Bối cảnh và vấn đề nghiên cứu
Trong các thập niên trước đây, phương thức tiếp cận truyện tranh truyền thống của độc giả chủ yếu thông qua việc mua ấn bản in tại các hiệu sách và lưu trữ thủ công. Cùng với sự chuyển dịch của công nghệ thông tin và mạng Internet, thói quen của người dùng đã có sự thay đổi rõ rệt: nhu cầu đọc trực tuyến tại nhà, khả năng theo dõi liên tục các chương truyện mới phát hành từ tác giả, cũng như nhu cầu tương tác cộng đồng giữa những độc giả có cùng sở thích ngày càng gia tăng. Xuất phát từ thực tiễn đó, đồ án "Xây dựng website đọc truyện tranh" của tác giả Lâm Gia Bảo (ngành Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh, dưới sự hướng dẫn của ThS. Trần Thị Hồng Yến, năm 2023) được thực hiện nhằm xây dựng một nền tảng truyện tranh trực tuyến phục vụ nhu cầu giải trí và kết nối cộng đồng.
Văn bản xác định 5 mục tiêu nghiên cứu cụ thể như sau:
- Cung cấp cho độc giả một nền tảng để chọn và đọc trực tuyến bộ truyện mình thích.
- Giúp người dịch có thể đăng tải chương truyện mình đã dịch cho mọi người xem và quản lý những chương truyện đó.
- Cho phép người dùng biết được mức độ yêu thích của từng bộ truyện.
- Cho phép độc giả tìm truyện theo thể loại yêu thích.
- Cung cấp một trải nghiệm trực tuyến tốt hơn cho người dùng.
Đối tượng nghiên cứu của đồ án bao gồm:
- Các website đọc truyện tranh hiện có trên thị trường.
- Thói quen của người dùng khi đọc truyện tranh và những khó khăn họ gặp phải khi sử dụng các nền tảng đọc truyện khác.
- Các yêu cầu kỹ thuật và công nghệ cần thiết để xây dựng một website đọc truyện tranh hoàn chỉnh.
Phạm vi nghiên cứu được giới hạn trong các nội dung:
- Giải quyết bài toán tìm kiếm và quản lý nội dung số.
- Thiết kế và xây dựng giao diện người dùng dựa trên công nghệ ReactJS và thư viện Ant Design.
- Xây dựng tầng phía sau (Backend) và hệ thống lưu trữ thông tin, phiên đăng nhập dựa trên nền tảng Supabase.
- Thiết lập hệ thống tài khoản và phân quyền người dùng.
- Thiết lập cơ sở dữ liệu quan hệ trên nền tảng PostgreSQL và lưu trữ tệp hình ảnh truyện bằng Supabase Storage.
Cơ sở lý thuyết và phương pháp
Đồ án ứng dụng khung lý thuyết công nghệ web hiện đại kết hợp mô hình Backend-as-a-Service (BaaS) và các công cụ mô hình hóa phần mềm chuẩn hóa:
| Thành phần công nghệ / Công cụ |
Phân loại |
Vai trò kỹ thuật theo tài liệu |
| TypeScript |
Ngôn ngữ lập trình |
Hỗ trợ kiểu dữ liệu tĩnh (static typing), lập trình hướng đối tượng (OOP), kiểu Union, Intersection và Generics; giúp phát hiện lỗi tại thời điểm biên dịch. |
| ReactJS |
Thư viện giao diện (Frontend) |
Xây dựng giao diện hướng thành phần (Component-based), sử dụng cú pháp JSX, cơ chế DOM ảo (Virtual DOM) và luồng dữ liệu một chiều (One-way data binding qua Props và State). |
| Ant Design |
Thư viện UI Component |
Cung cấp hệ thống component dựng sẵn, chuẩn hóa nguyên tắc thiết kế responsive, hỗ trợ tùy biến giao diện (theming) và đa ngôn ngữ. |
| Supabase |
Nền tảng Backend-as-a-Service |
Cung cấp cơ sở dữ liệu PostgreSQL đầy đủ chức năng, dịch vụ xác thực (Authentication), phân quyền (Authorization), Realtime Database, API tự động (RESTful, GraphQL) và Serverless Functions. |
| PostgreSQL |
Hệ quản trị cơ sở dữ liệu |
Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS), hỗ trợ đầy đủ các tính chất ACID, cơ chế trigger, rules và quản lý dữ liệu lớn. |
| Supabase Storage |
Dịch vụ lưu trữ tệp |
Lưu trữ và phân phối tài nguyên tệp đa phương tiện, cụ thể là các tệp hình ảnh của các chương truyện tranh. |
| PlantUML |
Công cụ mô hình hóa |
Sử dụng mã để tự động tạo các biểu đồ chuẩn UML (Use-case diagram, Sequence diagram...). |
| Figma & Wondershare EdrawMax |
Công cụ thiết kế & biểu đồ |
Thiết kế wireframe, giao diện người dùng (UI/UX) và vẽ sơ đồ hệ thống. |
| GitHub & ChatGPT |
Quản lý mã nguồn & hỗ trợ |
Quản lý phiên bản mã nguồn phân tán (Git VCS) và hỗ trợ tra cứu kỹ thuật lập trình. |
Phương pháp nghiên cứu thực tế được tác giả triển khai bao gồm:
- Phương pháp khảo sát và phân tích sản phẩm tương tự: Khảo sát các nền tảng đọc truyện phổ biến trên thị trường gồm MangaDex, MangaRaw và Mangakakalot nhằm phân tích ưu điểm, nhược điểm trong luồng thao tác và trải nghiệm người dùng.
- Phương pháp thu thập và đặc tả yêu cầu: Xác định các tác nhân (actor), trích xuất danh mục chức năng và chi tiết hóa luồng sự kiện (main flow, alternative flow, exception).
- Phương pháp thiết kế và phát triển thực nghiệm: Thiết kế mẫu giao diện trên Figma, mô hình hóa hệ thống bằng PlantUML, sau đó tiến hành lập trình giao diện với ReactJS/TypeScript, tích hợp dịch vụ Supabase và tiến hành kiểm thử chức năng.
- Phương pháp tham vấn chuyên gia: Lấy ý kiến định hướng và phản biện từ giảng viên hướng dẫn (ThS. Trần Thị Hồng Yến) để điều chỉnh thiết kế hệ thống và sửa đổi lỗi phát sinh.
Nguồn dữ liệu trong đồ án là dữ liệu số hóa truyện tranh, dữ liệu thông tin tác phẩm (tác giả, họa sĩ, thể loại, chương), dữ liệu tài khoản và số liệu điểm thưởng/lượt xem được quản trị trực tiếp trên cơ sở dữ liệu PostgreSQL do Supabase quản lý.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc ứng dụng web hiện đại tách biệt giữa tầng hiển thị Client-side và hạ tầng dịch vụ Backend:
- Tầng Client: Ứng dụng Single Page Application (SPA) phát triển bằng TypeScript kết hợp thư viện ReactJS và bộ component Ant Design. Tầng này đảm nhận việc định tuyến, render giao diện thông qua Virtual DOM và xử lý tương tác của người dùng.
- Tầng Backend & Lưu trữ: Thay vì xây dựng máy chủ truyền thống từ đầu, tác giả sử dụng giải pháp Supabase làm trung tâm dịch vụ. Hệ thống tận dụng dịch vụ Supabase Auth để quản lý danh tính và phiên làm việc của người dùng (hỗ trợ cả tài khoản nội bộ và xác thực qua Google), kết nối trực tiếp qua RESTful API đến cơ sở dữ liệu PostgreSQL và phân phối hình ảnh chương truyện qua Supabase Storage.
Hệ thống phân định quyền hạn thông qua 3 tác nhân chính (Actor):
| STT |
Tên Actor |
Ý nghĩa vai trò trong hệ thống |
| 1 |
Reader |
Người đọc truyện trực tuyến của ứng dụng, sử dụng các tính năng tra cứu, xem và tương tác. |
| 2 |
Translator/Editor |
Người dịch hoặc người chỉnh sửa nội dung truyện; chịu trách nhiệm đăng tải và quản lý các chương truyện. |
| 3 |
Admin |
Quản trị viên quản lý danh sách tài khoản người dùng và kiểm soát trạng thái hoạt động của hệ thống. |
| * |
User |
Tác nhân khái quát đại diện cho người dùng đã đăng ký/đăng nhập (áp dụng cho Reader, Translator/Editor và Admin khi thực hiện các tác vụ tài khoản chung). |
Hệ thống thiết kế 14 chức năng chính được đánh mã use-case chuẩn hóa:
| Mã Use-case |
Tên chức năng |
Actor thực hiện |
Mục tiêu nghiệp vụ |
| UC_01 |
Đăng ký |
User |
Đăng ký tài khoản mới vào hệ thống |
| UC_02 |
Đăng nhập |
User |
Đăng nhập vào hệ thống bằng tài khoản web hoặc Google/Gmail |
| UC_03 |
Quên mật khẩu |
User |
Đổi mật khẩu mới khi quên thông qua email xác nhận |
| UC_04 |
Xem danh sách truyện |
Reader |
Xem danh sách các bộ truyện mới được cập nhật trên trang chủ |
| UC_05 |
Tìm kiếm và lọc |
Reader |
Tìm kiếm theo tên hoặc lọc nâng cao theo tác giả, họa sĩ, thể loại, sắp xếp |
| UC_06 |
Xem chi tiết truyện |
Reader |
Xem thông tin số chương, nội dung, thể loại, tác giả, lượt xem, đánh giá |
| UC_07 |
Đọc truyện |
Reader |
Đọc hình ảnh các chương truyện và chuyển tiếp chương linh hoạt |
| UC_08 |
Thêm vào danh sách theo dõi |
Reader |
Đánh dấu hoặc hủy bỏ đánh dấu truyện vào danh sách cá nhân |
| UC_90 |
Thích truyện |
Reader |
Tăng hoặc giảm số lượt yêu thích cho bộ truyện |
| UC_91 |
Bình luận truyện |
Reader |
Gửi và hiển thị nội dung bình luận tại trang chi tiết truyện |
| UC_92 |
Đánh giá truyện |
Reader |
Đánh giá xếp hạng truyện theo số sao và cập nhật điểm trung bình |
| UC_10 |
Truyện phổ biến |
Reader |
Hiển thị danh sách top 10 bộ truyện có lượt xem nhiều nhất |
| UC_11 |
Quản lý tài khoản |
User |
Cập nhật thông tin hồ sơ cá nhân và đổi mật khẩu |
| UC_12 |
Quản lý truyện đã đăng |
Translator/Editor |
Thêm mới bộ truyện, quản lý/thêm/sửa/xóa các chương truyện đã đăng |
| UC_13 |
Nhận tiền dựa vào lượt xem |
Translator/Editor |
Quy đổi số điểm thưởng tích lũy từ lượt xem thành tiền mặt rút về ngân hàng |
| UC_14 |
Cấm người dùng |
Admin |
Khóa tài khoản hoặc hủy cấm tài khoản người dùng vi phạm thông qua mã ID |
Quy trình triển khai và kiểm thử hệ thống được thực hiện bằng cách đối chiếu trực tiếp giữa các ca đặc tả use-case và giao diện vận hành thực tế. Tác giả đã kiểm thử các luồng ngoại lệ (exception) như: xử lý dữ liệu nhập không hợp lệ, bình luận trống, sai mã xác nhận, không đủ điểm quy đổi tiền mặt, hoặc thiếu thông tin tài khoản ngân hàng.
Nội dung chính theo từng chương
Chương 1. Giới thiệu chung
Chương này đặt nền móng cho toàn bộ đồ án, nêu rõ lý do chọn đề tài dựa trên sự dịch chuyển xu hướng giải trí từ truyện in sang nền tảng số. Tác giả xác định 5 mục tiêu nghiên cứu, chỉ rõ đối tượng nghiên cứu (thói quen độc giả và các website đối sánh MangaDex, MangaRaw, Mangakakalot), đồng thời vạch rõ phạm vi nghiên cứu bao gồm thiết kế giao diện ReactJS, cơ sở dữ liệu Supabase, xác thực tài khoản và lưu trữ ảnh truyện. Chương này cũng liệt kê danh mục công nghệ cốt lõi và các bước tiếp cận phương pháp luận từ khảo sát, thiết kế wireframe đến lập trình hoàn thiện.
Chương 2. Công nghệ sử dụng
Tác giả dành toàn bộ chương 2 để trình bày chi tiết về mặt lý thuyết và vai trò kỹ thuật của từng công nghệ trong dự án:
- PlantUML: Giới thiệu cơ chế vẽ biểu đồ bằng văn bản mã hóa XML, cho phép xuất các định dạng PNG, SVG, PDF, giúp giảm thiểu sai sót so với vẽ thủ công.
- Figma: Phân tích các đặc tính trực tuyến, đa nền tảng, khả năng hợp tác theo thời gian thực, quản lý thư viện component và hệ thống API tích hợp.
- Ant Design: Trình bày nguyên lý thiết kế giao diện xuất phát từ Ant Financial, cấu trúc component đa dạng (từ ô nhập liệu cơ bản đến DatePicker, Carousel), tính chất responsive và khả năng tùy biến chủ đề.
- Supabase: Làm rõ bản chất Database-as-a-Service xây dựng trên PostgreSQL, tính năng cập nhật cơ sở dữ liệu thời gian thực (Realtime), bộ giải pháp Authentication/Authorization, lưu trữ tệp (Storage) và cơ chế hàm Serverless.
- TypeScript & ReactJS: Làm rõ các khái niệm kiểu dữ liệu tĩnh, hướng đối tượng (OOP), Generics trong TypeScript; đồng thời giải thích cơ chế Virtual DOM, cú pháp JSX, kiến trúc Component, Props (bất biến) và State (trạng thái động) của ReactJS.
- PostgreSQL, GitHub và ChatGPT: Khái quát các tiêu chuẩn SQL-92/99/2003, tính chất ACID, cơ chế tối ưu hóa truy vấn của PostgreSQL; quy trình quản lý nhánh, pull request trên GitHub; cùng với vai trò của mô hình Transformer trong ChatGPT đối với việc hỗ trợ viết mã nguồn.
Chương 3. Thiết kế và triển khai hệ thống
Chương 3 tập trung vào khâu phân tích và mô hình hóa chi tiết hệ thống phần mềm:
- Xây dựng sơ đồ Use-case tổng quan và phân loại 3 nhóm actor (Reader, Translator/Editor, Admin).
- Trình bày bảng danh mục chức năng gồm 14 ca sử dụng chính.
- Chi tiết hóa 16 bảng đặc tả ca sử dụng (từ Bảng 3.3 đến Bảng 3.18). Mỗi ca sử dụng đều được tác giả cấu trúc chặt chẽ gồm: Mã ca sử dụng (ID), Tên ca sử dụng, Mục tiêu (Goal), Tác nhân (Actor), Điều kiện tiên quyết (Pre-condition), Luồng sự kiện chính (Main flow), Luồng sự kiện thay thế (Alternative flow), Điều kiện sau khi thực hiện (Post-condition) và các Luồng ngoại lệ (Exception). Đáng chú ý có ca sử dụng UC_13 quy định điều kiện rút tiền phải liên kết tài khoản ngân hàng và kiểm tra số dư điểm thưởng, cùng ca sử dụng UC_14 quy định thao tác cấm/hủy cấm người dùng dựa trên việc nhập ID tài khoản.
Chương 4. Xây dựng và phát triển ứng dụng
Chương này trình bày kết quả hiện thực hóa thiết kế thành sản phẩm phần mềm thực tế, bao gồm thiết kế cơ sở dữ liệu và hiện thực giao diện qua 18 màn hình chức năng:
- Màn hình yêu cầu đăng nhập, Đăng nhập, Đăng ký và Quên mật khẩu: Cung cấp biểu mẫu xác thực 4 trường dữ liệu, cơ chế xác nhận mật khẩu để hạn chế sai sót, tích hợp đăng nhập qua tài khoản Google và gửi mã khôi phục qua email.
- Màn hình trang chủ và Slidebar menu: Hiển thị danh mục truyện mới cập nhật; menu dạng thanh trượt ba gạch có hiệu ứng làm mờ các thành phần nền để tăng tính tập trung khi điều hướng.
- Màn hình nội dung truyện và Màn hình đọc truyện: Cung cấp thông tin chi tiết tác phẩm (số chương, thể loại, tác giả, lượt xem, bình luận), hiển thị ảnh các chương truyện và hỗ trợ nút mũi tên điều hướng nhanh giữa các chương kế tiếp.
- Màn hình tìm kiếm nâng cao và Kết quả tìm kiếm: Cho phép người dùng lọc truyện đa tiêu chí theo tên tác giả, tên họa sĩ, danh mục thể loại và tùy chọn thứ tự sắp xếp kết quả.
- Màn hình quản lý người dùng và cá nhân hóa: Gồm màn hình thông tin người dùng, đổi mật khẩu và quản lý danh sách truyện đang theo dõi.
- Màn hình nghiệp vụ dịch giả: Gồm màn hình danh sách truyện đã đăng, thêm mới truyện, quản lý chương, thêm mới chương và màn hình theo dõi điểm dịch truyện (quy đổi từ lượt xem).
Kết luận và hướng phát triển
Chương kết thúc tóm tắt các kết quả đạt được sau quá trình nghiên cứu và thực hiện đồ án, phân tích các ưu điểm và nhược điểm còn tồn tại của hệ thống, đồng thời đề ra các hướng mở rộng kỹ thuật cho các phiên bản tiếp theo.
Kết quả và đóng góp
Đồ án đã hiện thực hóa thành công sản phẩm phần mềm website đọc truyện tranh trực tuyến với các kết quả cụ thể:
- Hoàn thành đầy đủ 14 nhóm chức năng nghiệp vụ tương ứng với 16 kịch bản đặc tả use-case chi tiết, bao quát toàn bộ quy trình từ phía độc giả, nhóm dịch thuật đến quản trị hệ thống.
- Xây dựng hoàn chỉnh hệ thống 18 màn hình giao diện người dùng có tính tương tác cao, bố cục rõ ràng, hỗ trợ đầy đủ từ khâu tìm kiếm nâng cao đến đọc nội dung và quản trị bài đăng.
- Thiết lập cơ chế tạo động lực cho cộng đồng dịch thuật thông qua tính năng tính điểm thưởng dựa trên lượt xem của chương truyện và hỗ trợ luồng quy đổi rút tiền về tài khoản ngân hàng.
- Xây dựng cơ chế tương tác đa chiều cho độc giả bao gồm: theo dõi truyện, chấm điểm đánh giá theo sao, bình luận theo chương/bộ truyện và danh mục xếp hạng top 10 truyện phổ biến nhất trên trang chủ.
Về mặt đóng góp giải pháp kỹ thuật, đồ án đã chứng minh tính khả thi và hiệu quả của việc áp dụng mô hình kiến trúc Backend-as-a-Service (cụ thể là Supabase) kết hợp với thư viện ReactJS, ngôn ngữ TypeScript và Ant Design. Mô hình này giúp loại bỏ sự phức tạp trong việc tự vận hành hạ tầng máy chủ cơ sở dữ liệu độc lập, đồng thời vẫn bảo đảm khả năng mở rộng dữ liệu, tính toàn vẹn quan hệ (ACID) của PostgreSQL và năng lực lưu trữ tệp hình ảnh khối lượng lớn thông qua Supabase Storage.
Hạn chế và hướng nghiên cứu tiếp
Theo đánh giá và nội dung trình bày tại chương kết luận của đồ án, sản phẩm vẫn tồn tại một số điểm hạn chế:
- Hệ thống cơ chế rút tiền và trả thưởng cho dịch giả dựa trên lượt xem (UC_13) mới dừng lại ở mức mô hình hóa luồng xử lý và trừ điểm trên hệ thống nội bộ, chưa tích hợp cổng thanh toán trực tuyến hoặc API ngân hàng tự động.
- Hệ thống quản lý và kiểm duyệt nội dung truyện đăng tải còn mang tính thủ công, phụ thuộc vào tác vụ cấm tài khoản thông qua ID của Admin (UC_14) mà chưa có cơ chế lọc từ ngữ độc hại hoặc kiểm duyệt hình ảnh tự động.
- Đồ án được thực hiện bởi một sinh viên duy nhất trong khuôn khổ môn học Đồ án 1, do đó phạm vi kiểm thử hiệu năng chịu tải đồng thời (concurrency) và tối ưu hóa nén bộ nhớ đệm (caching) hình ảnh truyện tranh chưa được triển khai sâu.
Hướng nghiên cứu và phát triển tiếp theo được đề ra gồm:
- Tối ưu hóa hiệu năng tải trang và xử lý hình ảnh dung lượng lớn của các chương truyện nhằm nâng cao trải nghiệm đọc trên thiết bị di động.
- Nghiên cứu tích hợp các giải pháp thanh toán tự động phục vụ nhu cầu rút tiền thưởng của nhóm dịch thuật.
- Bổ sung các thuật toán gợi ý nội dung truyện tranh cá nhân hóa dựa trên lịch sử đọc và danh sách theo dõi của từng độc giả.
Giá trị tham khảo
Báo cáo đồ án này là tài liệu tham khảo hữu ích cho:
- Sinh viên ngành Công nghệ phần mềm, Kỹ thuật phần mềm và Công nghệ thông tin: Đặc biệt là những sinh viên đang thực hiện đồ án môn học, đồ án chuyên ngành hoặc khóa luận tốt nghiệp có định hướng xây dựng ứng dụng web phân tầng hoặc ứng dụng SPA.
- Người học phát triển ứng dụng Fullstack hiện đại: Cung cấp tài liệu mẫu về cách thức tích hợp một ứng dụng Frontend (ReactJS, TypeScript, Ant Design) với dịch vụ Backend-as-a-Service (Supabase) thay thế cho việc viết máy chủ NodeJS/Express truyền thống.
- Các phần đáng tham khảo nhất trong văn bản:
- Cấu trúc 16 bảng đặc tả use-case chi tiết tại Chương 3 (từ Bảng 3.3 đến Bảng 3.18) với đầy đủ luồng chính, luồng phụ và luồng ngoại lệ, là mẫu tài liệu phân tích thiết kế phần mềm chuẩn mực.
- Cách thức tổ chức và thiết kế giao diện luồng làm việc người dùng (18 màn hình tại Chương 4), đặc biệt là phân hệ quản trị dành cho nhóm dịch thuật (thêm mới truyện, quản lý chương, tích điểm xem).
Câu hỏi thường gặp
1. Đồ án sử dụng công nghệ nào để giải quyết bài toán lưu trữ và quản lý dữ liệu hình ảnh truyện tranh?
Tác giả sử dụng dịch vụ Supabase Storage kết hợp với hệ quản trị cơ sở dữ liệu PostgreSQL của Supabase. Supabase Storage đảm nhận việc lưu trữ các tệp hình ảnh đa phương tiện của từng chương truyện, trong khi cơ sở dữ liệu quan hệ PostgreSQL quản lý đường dẫn liên kết, thông tin tác phẩm, tác giả, họa sĩ và phân quyền người dùng.
2. Hệ thống website đọc truyện tranh này phân định bao nhiêu nhóm tác nhân (Actor) và quyền hạn của từng nhóm là gì?
Hệ thống xác định 3 nhóm tác nhân chính:
- Reader (Người đọc): Xem danh sách truyện, tìm kiếm/lọc nâng cao, đọc truyện, thích, bình luận, đánh giá số sao, theo dõi truyện và xem top 10 truyện phổ biến.
- Translator/Editor (Dịch giả): Đăng tải truyện mới, quản lý/thêm/sửa/xóa các chương truyện đã đăng, và theo dõi điểm thưởng dựa trên lượt xem để thực hiện yêu cầu rút tiền.
- Admin (Quản trị viên): Quản lý tài khoản người dùng và thực hiện thao tác cấm hoặc hủy cấm các tài khoản vi phạm thông qua mã ID.
3. Cơ chế tìm kiếm nâng cao của website cho phép người đọc lọc truyện dựa trên các tiêu chí nào?
Theo đặc tả Use-case UC_05 và giao diện màn hình 4.9, người dùng có thể tra cứu nâng cao bằng cách kết hợp nhiều tiêu chí: tên bộ truyện, tên tác giả, tên họa sĩ, lựa chọn thể loại truyện muốn tìm và thiết lập thứ tự sắp xếp kết quả trả về.
4. Dịch giả nhận tiền từ lượt xem chương truyện như thế nào theo thiết kế của tác giả?
Theo đặc tả Use-case UC_13, dịch giả đăng nhập vào hệ thống, truy cập trang "Điểm thưởng của tôi" để xem số điểm nhận được quy đổi từ lượt xem. Điều kiện tiên quyết là tài khoản phải được cung cấp thông tin tài khoản ngân hàng. Sau đó dịch giả chọn "Rút tiền", hệ thống sẽ kiểm tra số dư điểm thưởng, thực hiện trừ điểm và ghi nhận lệnh chuyển tiền. Nếu điểm thưởng không đủ hoặc chưa cập nhật số tài khoản, hệ thống sẽ phát sinh thông báo ngoại lệ.
5. Quản trị viên xử lý trường hợp tài khoản người dùng vi phạm quy định bằng cách nào?
Theo đặc tả Use-case UC_14, quản trị viên truy cập vào trang quản lý tài khoản, nhập trực tiếp mã ID của tài khoản vi phạm và chọn "Xác nhận" để hệ thống cập nhật trạng thái cấm người dùng đó. Ngoài ra, quản trị viên cũng có thể truy cập "Danh sách người dùng bị cấm" và chọn lệnh "Hủy cấm" để khôi phục trạng thái hoạt động bình thường cho tài khoản.
Kết luận
Đồ án "Xây dựng website đọc truyện tranh" của sinh viên Lâm Gia Bảo là một nghiên cứu thực nghiệm phần mềm hoàn chỉnh, giải quyết bài toán chuyển đổi số trong lĩnh vực đọc và phát hành truyện tranh trực tuyến. Bằng việc kết hợp hiệu quả giữa thư viện ReactJS, ngôn ngữ TypeScript và nền tảng Supabase, tác giả đã xây dựng thành công một hệ thống 14 chức năng với 18 màn hình giao diện, đáp ứng đầy đủ nhu cầu của độc giả, nhóm dịch thuật và quản trị viên. Công trình thể hiện tính thực tiễn cao, quy trình phân tích ca sử dụng chuẩn hóa và là tài liệu tham khảo có giá trị cho việc phát triển các ứng dụng web hiện đại.