Bối cảnh và vấn đề nghiên cứu
Trong xu thế đẩy mạnh chuyển đổi số tại các cơ quan, tổ chức giáo dục và nghiên cứu khoa học trên cả nước, việc ứng dụng công nghệ thông tin vào công tác quản trị, vận hành tòa soạn giúp tiết kiệm thời gian, nhân lực và chi phí lưu trữ. Đối với Tạp chí Khoa học Sức khỏe trực thuộc Trường Đại học Y Dược Hải Phòng, quy trình xuất bản trước đây chủ yếu thực hiện thủ công theo phương thức truyền thống. Đơn vị chưa có website riêng biệt; các nghiệp vụ tiếp nhận bài báo, gửi bản thảo, trao đổi phản biện đều thực hiện qua bản in giấy hoặc thư điện tử cá nhân. Dữ liệu bài đăng số hóa được lưu trữ phân tán trên Google Drive hoặc ổ cứng máy tính cá nhân của cán bộ, dẫn đến nhiều bất cập trong khâu quản lý, tra cứu và lưu trữ lâu dài. Bên cạnh đó, các tác giả khi có nhu cầu nộp bài hoặc tải dữ liệu công trình đã công bố để làm minh chứng học thuật gặp nhiều khó khăn do thiếu cổng thông tin trực tuyến tập trung.
Xuất phát từ thực trạng trên, đồ án tốt nghiệp đại học ngành Công nghệ Thông tin tại Trường Đại học Quản lý và Công nghệ Hải Phòng (HPU) của sinh viên Lưu Thanh Hoàng, dưới sự hướng dẫn của TS. Lương Thanh Nhạn (Trường Đại học Y Dược Hải Phòng), thực hiện đề tài "Xây dựng website Tạp chí Khoa học Sức khỏe trường Đại học Y Dược Hải Phòng".
Mục tiêu của đề tài là xây dựng một trang thông tin điện tử chuyên biệt phục vụ công tác quản lý, số hóa, công bố các công trình nghiên cứu và cung cấp thông tin kịp thời trên môi trường mạng Internet. Nhiệm vụ nghiên cứu được giao bao gồm 4 nội dung cụ thể:
- Tìm hiểu về bài toán xây dựng website Tạp chí Khoa học Sức khoẻ của trường Đại học Y Dược Hải Phòng.
- Phân tích, thiết kế cơ sở dữ liệu và hệ thống thông tin.
- Thiết kế website Tạp chí Khoa học Sức khoẻ của trường Đại học Y Dược Hải Phòng.
- Nhận xét, đánh giá và kết luận về kết quả thực hiện.
Đối tượng nghiên cứu của đồ án bao gồm:
- Quy trình nghiệp vụ xuất bản, thông báo, quản lý và lưu trữ bài đăng của Tạp chí Khoa học Sức khỏe trường Đại học Y Dược Hải Phòng.
- Nhóm người dùng tham gia tương tác với hệ thống (độc giả quan tâm đến thông tin y tế, cán bộ quản trị hệ thống và thư ký ban biên tập).
Phạm vi nghiên cứu:
- Không gian và bối cảnh ứng dụng: Website được phát triển để giải quyết các khâu nghiệp vụ thông báo, lưu trữ, tra cứu và tải bài đăng trực tuyến của Tạp chí Khoa học Sức khỏe - Trường Đại học Y Dược Hải Phòng. Giao diện được định hướng sử dụng tông màu chủ đạo là xanh dương và trắng nhằm đồng bộ nhận diện với cổng thông tin chính của nhà trường.
- Thời gian thực hiện: Đề tài được giao ngày 17/03/2023, hoàn thành và nghiệm thu vào tháng 06/2023.
Cơ sở lý thuyết và phương pháp
Đề tài kết hợp giữa lý thuyết phân tích thiết kế hệ thống thông tin và kỹ thuật phát triển ứng dụng web hiện đại. Khung kiến trúc và mô hình lý thuyết được áp dụng gồm:
- Mô hình kiến trúc phần mềm Client - Server phân tách giữa giao diện phía máy khách và dịch vụ xử lý dữ liệu phía máy chủ.
- Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language), áp dụng để xây dựng biểu đồ ca sử dụng (Use Case), biểu đồ tiến trình nghiệp vụ, biểu đồ tuần tự (Sequence Diagram), biểu đồ cộng tác (Collaboration Diagram) và biểu đồ lớp (Class Diagram).
- Mô hình thực thể liên kết mở rộng (EER) và mô hình cơ sở dữ liệu quan hệ (Relational Database) để tổ chức dữ liệu chuẩn hóa.
Phương pháp nghiên cứu thực tế gồm:
- Phương pháp tổng hợp, nghiên cứu tài liệu: Thu thập và nghiên cứu các tài liệu chuyên ngành về hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình web, các tiêu chuẩn phân tích thiết kế hệ thống và quy định quản lý tạp chí khoa học.
- Phương pháp khảo sát nghiệp vụ: Khảo sát thực tế nhu cầu của người dùng và thu thập thông tin về quy trình biên tập, xử lý bản thảo tại Ban biên tập Tạp chí Khoa học Sức khỏe.
- Phương pháp phân tích và mô hình hóa: Xác định các luồng công việc chính, đặc tả các ca sử dụng, ánh xạ sang biểu đồ tương tác và thiết kế cấu trúc dữ liệu.
- Phương pháp lập trình và tích hợp:
- Phát triển giao diện người dùng (Frontend) bằng thư viện ReactJS của ngôn ngữ JavaScript kết hợp với Tailwind CSS.
- Thiết kế và quản trị cơ sở dữ liệu quan hệ PostgreSQL thông qua công cụ pgAdmin.
- Ứng dụng công cụ Hasura để tự động phát sinh GraphQL API, cung cấp cơ chế truy vấn dữ liệu linh hoạt, hỗ trợ cập nhật thời gian thực (Real-time updates qua GraphQL Subscriptions) và phân quyền kiểm soát truy cập dựa trên vai trò (Role-based access control - RBAC).
- Tìm hiểu nền tảng Supabase nhằm hỗ trợ mở rộng cơ chế xác thực người dùng (Authentication/Authorization) và lưu trữ tệp (Storage).
- Sử dụng môi trường phát triển tích hợp Visual Studio Code để lập trình và gỡ lỗi.
Nguồn dữ liệu của đề tài bao gồm thông tin giới thiệu, lịch sử phát triển, cơ cấu tổ chức và các chương trình đào tạo của Trường Đại học Y Dược Hải Phòng; quy định quốc tế về cách đánh số tập (Volume) và số phát hành (Issue); cùng dữ liệu bài báo khoa học thực nghiệm trong lĩnh vực y dược (như nghiên cứu chẩn đoán di truyền trước làm tổ, phác đồ điều trị ung thư phổi tế bào nhỏ).
Thiết kế và triển khai
Hệ thống được xây dựng theo kiến trúc hướng dữ liệu, kết nối giữa giao diện ReactJS với hệ quản trị cơ sở dữ liệu PostgreSQL thông qua GraphQL Engine của Hasura.
Cơ sở dữ liệu của hệ thống được chuẩn hóa qua 10 bảng thực thể và danh mục, đáp ứng đầy đủ yêu cầu quản lý bài báo khoa học, nhân sự tòa soạn và phân quyền:
| Tên bảng CSDL |
Tên gọi thực thể |
Các trường dữ liệu chính |
Chức năng lưu trữ và quản trị |
users |
Tài khoản người dùng |
id_user, id_role, name, id_academic_rank, id_academic_degree, id_nationality, id_position_school, id_position_newspaper, gmail, agency_name, phone_number, job, created_at, updated_at |
Quản lý thông tin định danh, học hàm, học vị, chức vụ công tác tại trường và tại tòa soạn của người dùng. |
posts |
Thông tin bài đăng |
id_news, doi, title_en, title_vn, author_name, summary_en, summary_vn, reference_material, key_word, publication_date, start_page, end_page, views_count, view_pdf, pdf, episode_number, publication_number, id_creator, created_at, updated_at |
Lưu trữ toàn bộ dữ liệu chi tiết của bài báo khoa học, mã định danh số (DOI), phân loại theo tập/số, số trang, tệp PDF và thống kê lượt truy cập. |
notifies |
Thông báo |
id, img, id_user, title_vn, title_en, content_vn, content_en, created_at, updated_at |
Lưu trữ các tin tức, thông báo song ngữ Việt - Anh từ ban biên tập gửi tới độc giả. |
newspaper_infomation |
Thông tin tờ báo |
title_vn, title_en, img_cover, img_backcover, id_editor_chief, id_deputy_editor, editorial_secretary, id_updater, address, phone_number, gmail, created_at, updated_at |
Quản lý thông tin chung của tạp chí, cơ quan chủ quản, ảnh bìa trước/sau và chỉ định các vị trí lãnh đạo tòa soạn. |
academic_degree |
Danh mục học vị |
id_academic_degree, academic_degree_vn, academic_degree_en, created_at, updated_at |
Quản lý danh mục học vị song ngữ (Tiến sĩ, Thạc sĩ, Bác sĩ, Cử nhân). |
academic_rank |
Danh mục học hàm |
id_academic_rank, academic_rank_vn, academic_rank_en, created_at, updated_at |
Quản lý danh mục học hàm song ngữ (Giáo sư, Phó Giáo sư). |
nationalities |
Danh mục quốc tịch |
id_nationality, nationality_name_vn, nationality_name_en, nationality_code, created_at, updated_at |
Quản lý danh mục quốc tịch phục vụ việc ghi nhận xuất xứ của tác giả và chuyên gia. |
position_newspaper |
Vị trí tại tờ báo |
id_position, position_name_vn, position_name_en, created_at, updated_at |
Quản lý các chức danh trong tòa soạn (Tổng biên tập, Phó tổng biên tập, Quản lý biên tập, Thư ký biên tập). |
position_school |
Chức danh tại trường |
id_position_school, position_name_vn, position_name_en, created_at, updated_at |
Quản lý chức vụ hành chính, giảng dạy của nhân sự tại Trường Đại học Y Dược Hải Phòng. |
roles |
Danh mục quyền |
id_role, role_name, created_at, updated_at |
Xác định các nhóm quyền truy cập hệ thống (Quản trị viên, Thư ký biên tập, Độc giả). |
Về hạ tầng triển khai, hệ thống được cấu hình và xuất bản thử nghiệm thông qua nền tảng Vercel. Nền tảng này hỗ trợ triển khai ứng dụng web tĩnh và các hàm serverless, kết nối trực tiếp với kho mã nguồn Git/GitHub, tự động hóa quy trình tích hợp và phân phối (CI/CD), đồng thời tận dụng mạng lưới phân phối nội dung (CDN) toàn cầu để tối ưu hóa tốc độ tải trang.
Nội dung chính theo từng chương
Chương 1. Tổng quan về đề tài
Chương 1 giới thiệu khái quát về lịch sử hình thành, năng lực đào tạo và cơ sở vật chất của Trường Đại học Y Dược Hải Phòng (thành lập từ năm 1979, trải qua 35 năm phát triển tính đến các mốc tư liệu văn bản trích dẫn). Trường đào tạo đại học đa ngành (Bác sĩ Đa khoa, Bác sĩ Y học dự phòng, Bác sĩ Răng Hàm Mặt, Dược sĩ đại học, Cử nhân Điều dưỡng, Kỹ thuật y học) và các bậc sau đại học (Tiến sĩ, Thạc sĩ, Bác sĩ Chuyên khoa I, Bác sĩ Chuyên khoa II, Bác sĩ nội trú). Về cơ sở vật chất, trường sở hữu khu nhà giảng đường, khu thực hành và Bệnh viện thực hành quy mô 150 giường bệnh.
Từ tình hình thực tế, chương này phát biểu bài toán xây dựng website cho Tạp chí Khoa học Sức khỏe. Trong đó, tác giả nêu rõ quy ước đánh số ấn phẩm: mỗi năm chỉ sử dụng một ký hiệu Tập (Volume) gồm 3 chữ số (số đầu tiên ký hiệu giai đoạn phát triển, hai số cuối là số năm xuất bản); các Số (Issue) trong mỗi tập được đánh thứ tự tăng dần từ 01. Chương 1 cũng trình bày các yêu cầu chức năng chính gồm: hiển thị trang chủ, quản trị tin tức, tối ưu hóa máy tìm kiếm (SEO), quản lý bài đăng, quản lý tài khoản - phân quyền, cùng phần tổng quan về các công cụ kỹ thuật (Hasura, Supabase, pgAdmin, Visual Studio Code).
Chương 2. Phân tích thiết kế hệ thống
Nội dung Chương 2 tập trung khảo sát và mô hình hóa chi tiết hệ thống phần mềm:
- Phân tích yêu cầu chức năng: Hệ thống cung cấp các chức năng trình bày nội dung khối hộp tại trang chủ, hệ quản trị nội dung hỗ trợ chèn đa phương tiện (Media), tối ưu tiêu đề/mô tả tự động cho SEO, quản lý bài đăng phân cấp theo tập/số, tìm kiếm theo tên bài/tác giả/từ khóa, thống kê truy cập và quản lý tài khoản người dùng.
- Quy trình nghiệp vụ: Xây dựng sơ đồ tiến trình nghiệp vụ tổng quát và 8 quy trình chi tiết gồm: Đăng ký tài khoản, Đăng nhập, Quên mật khẩu, Đăng bài, Sửa/xóa bài đăng, Đăng thông báo, Sửa/xóa thông báo, Thêm tài khoản và Sửa/xóa tài khoản.
- Biểu đồ Use Case và đặc tả: Phân định rõ 3 tác nhân tương tác (Người dùng, Thư ký biên tập, Quản trị viên - Admin). Tác giả cung cấp biểu đồ Use Case tổng quát, chi tiết và hoàn thành bảng đặc tả cho từng Use Case (điều kiện trước, điều kiện sau, luồng sự kiện chính và luồng ngoại lệ).
- Mô hình động: Xây dựng 8 biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram) tương ứng, thể hiện sự tương tác theo thời gian giữa người dùng, giao diện nhập liệu (Form), lớp điều khiển (Control) và cơ sở dữ liệu (CSDL).
- Thiết kế lớp và cơ sở dữ liệu: Xây dựng biểu đồ lớp phân tích (
Users, Posts, Notifies, Newspaper_infomation), phân tách các lớp thô sang mô hình EER, chuyển đổi mô hình EER sang mô hình quan hệ và chi tiết hóa 10 bảng dữ liệu với đầy đủ kiểu dữ liệu, ràng buộc khóa và giá trị mặc định.
Chương 3. Cài đặt chương trình và thử nghiệm
Chương 3 trình bày việc hiện thực hóa phần mềm và triển khai thử nghiệm trên môi trường điện toán đám mây Vercel. Tác giả giới thiệu các giao diện hoàn chỉnh đã xây dựng:
- Giao diện Trang chủ: Hiển thị logo, tiêu đề song ngữ "Tạp chí Khoa học Sức khỏe / Journal of Health Sciences", thanh điều hướng (Ban biên tập, Lưu trữ, Quy trình xuất bản), thông tin lãnh đạo tòa soạn, địa chỉ liên hệ và danh sách các bài báo mới nhất.
- Giao diện Ban biên tập: Trình bày danh sách thành viên Hội đồng biên tập với đầy đủ học hàm, học vị, chức danh làm việc tại trường và vị trí phụ trách tại tòa soạn (Tổng biên tập, Phó tổng biên tập, Quản lý biên tập, Thành viên biên tập, Thư ký biên tập).
- Giao diện Lưu trữ: Cho phép tra cứu phân chia theo từng Tập và Số xuất bản, giao diện xem chi tiết danh sách bài báo trong một số và giao diện xem toàn bộ ấn phẩm đã phát hành.
- Giao diện Chi tiết bài báo: Cung cấp đầy đủ thông tin bài báo gồm tiêu đề song ngữ, tác giả, ngày xuất bản, số tập, số phát hành, khoảng trang, mã DOI, tóm tắt công trình, từ khóa, danh mục tài liệu tham khảo, số lượt xem tóm tắt, số lượt xem DOI và liên kết tải tệp PDF.
- Giao diện Quản lý dành cho Ban biên tập: Các biểu mẫu Đăng bài mới và biểu mẫu Sửa/xóa bài đăng với chức năng tìm kiếm, hiệu chỉnh các trường dữ liệu siêu văn bản của bài báo khoa học.
Kết quả và đóng góp
Về kết quả cụ thể:
- Đồ án đã phân tích và thiết kế hoàn chỉnh hệ thống phần mềm quản lý tạp chí khoa học chuyên ngành y dược, mô hình hóa đầy đủ từ quy trình nghiệp vụ đến cấu trúc dữ liệu theo chuẩn UML và EER.
- Xây dựng thành công cơ sở dữ liệu quan hệ gồm 10 bảng trên PostgreSQL, phân định rành mạch các danh mục quản lý học thuật (học hàm, học vị, chức vụ trường, chức vụ báo, quốc tịch, bài đăng).
- Hoàn thiện giao diện ứng dụng web chạy trên nền tảng ReactJS và Tailwind CSS, tích hợp API quản lý thông qua Hasura và triển khai thử nghiệm ổn định trên nền tảng Vercel.
- Cài đặt và thử nghiệm thành công 7 phân hệ giao diện: Trang chủ, Trang lưu trữ bài báo, Trang lưu bài báo mới nhất, Trang ban biên tập, Trang quy trình xuất bản, Trang Đăng bài và Trang Sửa/xóa bài đăng.
Về đóng góp so với phương thức cũ:
- Đồ án đã giải quyết bài toán chuyển đổi phương thức quản lý xuất bản từ thủ công (trao đổi văn bản giấy, thư điện tử cá nhân, lưu bài trên Google Drive và ổ cứng cục bộ) sang phương thức quản lý tập trung trên môi trường web.
- Chuẩn hóa quy cách xuất bản điện tử của Tạp chí Khoa học Sức khỏe theo thông lệ quốc tế (định dạng mã Volume 3 chữ số, số Issue tăng dần, tích hợp mã định danh số DOI và quản lý khoảng trang).
- Cung cấp kênh tra cứu, đọc và tải tài liệu trực tuyến minh bạch, hỗ trợ giảng viên, sinh viên và các nhà nghiên cứu tiếp cận nhanh chóng các công trình khoa học sức khỏe.
Hạn chế và hướng nghiên cứu tiếp
Theo phiếu nhận xét của giảng viên hướng dẫn (TS. Lương Thanh Nhạn), sinh viên đã vận dụng tốt kiến thức để giải quyết bài toán thực tế, phần lý thuyết đáp ứng yêu cầu và chương trình thử nghiệm thể hiện được khả năng ứng dụng. Tuy nhiên, đồ án còn một số điểm tồn tại:
- Quá trình hoàn thành quyển báo cáo còn chậm so với tiến độ quy định, một số nội dung trong báo cáo cần được chỉnh sửa, hoàn thiện thêm.
- Các chức năng mới dừng lại ở mức độ thử nghiệm trên nền tảng Vercel, chưa tích hợp quy trình nhận bài và phản biện trực tuyến khép kín giữa tác giả và chuyên gia phản biện độc lập.
Về định hướng phát triển trong thời gian tới, tác giả đề xuất hai nội dung trọng tâm:
- Cải thiện và tối ưu hóa giao diện người dùng để tăng tính tiện dụng và thân thiện.
- Tối ưu hóa hệ thống phần mềm và hoàn thiện các chức năng nâng cao nhằm sớm đưa chương trình vào vận hành chính thức tại Trường Đại học Y Dược Hải Phòng.
Giá trị tham khảo
Tài liệu đồ án này có giá trị tham khảo thiết thực đối với:
- Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin hoặc Kỹ thuật phần mềm đang chuẩn bị thực hiện đồ án tốt nghiệp liên quan đến đề tài xây dựng cổng thông tin tòa soạn, hệ thống quản lý xuất bản học thuật hoặc website tin tức chuyên ngành.
- Các lập trình viên quan tâm đến kiến trúc kết hợp giữa ReactJS, Tailwind CSS với cơ sở dữ liệu PostgreSQL thông qua GraphQL Engine của Hasura và triển khai serverless trên Vercel.
- Các phần đáng tham khảo nhất trong đồ án gồm:
- Chương 2: Phương pháp mô hình hóa tiến trình nghiệp vụ, hệ thống biểu đồ tuần tự/cộng tác chi tiết và cách thiết kế cấu trúc cơ sở dữ liệu quan hệ gồm 10 bảng phân tách danh mục học thuật chuẩn xác cho cơ sở giáo dục đại học khối ngành y dược.
- Chương 1: Quy tắc chuẩn hóa cách đánh số Tập (Volume) và Số (Issue) cho tạp chí khoa học theo tiêu chuẩn quốc tế.
Câu hỏi thường gặp
1. Quy tắc đánh số Tập (Volume) và Số (Issue) của tạp chí được hệ thống quy định như thế nào?
Mỗi năm xuất bản chỉ sử dụng một (01) ký hiệu Tập gồm 3 chữ số: chữ số đầu tiên biểu thị giai đoạn phát triển của tạp chí (giai đoạn đầu tiên bắt đầu từ số 1), hai chữ số sau là số thứ tự năm đã xuất bản tạp chí. Các Số (Issue) trong mỗi Tập được đánh số thứ tự tăng dần, bắt đầu từ số 01.
2. Hệ thống sử dụng những công nghệ và công cụ nào để quản trị dữ liệu và kết nối API?
Hệ thống sử dụng hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL, quản lý thông qua công cụ đồ họa pgAdmin. Để kết nối API, đồ án sử dụng Hasura GraphQL Engine nhằm tự động phát sinh các điểm cuối truy vấn dữ liệu từ PostgreSQL, hỗ trợ kiểm soát quyền truy cập RBAC và cơ chế cập nhật thời gian thực.
3. Cơ sở dữ liệu của đồ án gồm bao nhiêu bảng và bảng bài đăng (posts) quản lý những thông tin gì?
Cơ sở dữ liệu bao gồm 10 bảng. Trong đó, bảng posts quản lý: mã bài báo (id_news), mã định danh số (doi), tiêu đề song ngữ (title_vn, title_en), tên tác giả (author_name), tóm tắt song ngữ (summary_vn, summary_en), tài liệu tham khảo (reference_material), từ khóa (key_word), ngày xuất bản (publication_date), khoảng trang (start_page, end_page), tập xuất bản (episode_number), số xuất bản (publication_number), đường dẫn tệp (pdf), số lượt xem (views_count, view_pdf) và người đăng (id_creator).
4. Hệ thống phân chia quyền hạn cho những nhóm người dùng nào?
Hệ thống phân chia 3 nhóm tác nhân chính:
- Người dùng (Độc giả): Xem thông báo, tra cứu, đọc tóm tắt và tải tệp bài báo khoa học.
- Thư ký biên tập: Thực hiện đăng bài báo mới, sửa/xóa bài đăng, đăng và chỉnh sửa thông báo.
- Quản trị viên (Admin): Thực hiện phân quyền, thêm mới, sửa hoặc xóa tài khoản người dùng, đồng thời quản lý các thông tin chung của tờ báo.
5. Ứng dụng được triển khai trên môi trường nào và có những trang giao diện chính nào?
Ứng dụng được triển khai trên nền tảng Vercel hỗ trợ web tĩnh và serverless. Các giao diện chính đã hoàn thành gồm: Trang chủ, Trang Ban biên tập, Trang Lưu trữ (theo tập/số, chi tiết số và xem tất cả), Trang Chi tiết bài báo, Trang Đăng bài và Trang Sửa/xóa bài đăng.
Kết luận
Đồ án "Xây dựng website Tạp chí Khoa học Sức khỏe trường Đại học Y Dược Hải Phòng" của sinh viên Lưu Thanh Hoàng đã giải quyết thành công yêu cầu số hóa công tác lưu trữ và công bố ấn phẩm học thuật cho nhà trường. Thông qua việc phân tích thiết kế hệ thống bằng UML và xây dựng cơ sở dữ liệu 10 bảng trên PostgreSQL kết hợp ReactJS và Hasura, tác giả đã hiện thực hóa một ứng dụng web hoàn chỉnh, có khả năng quản lý bài đăng theo tập số và cung cấp thông tin khoa học sức khỏe trực tuyến. Kết quả thử nghiệm trên Vercel đáp ứng các chức năng cốt lõi đặt ra, tạo nền tảng kỹ thuật vững chắc để tiếp tục hoàn thiện và đưa vào vận hành thực tế tại Trường Đại học Y Dược Hải Phòng.