Bối cảnh và vấn đề nghiên cứu

Âm nhạc là một loại hình nghệ thuật gắn liền với đời sống thường nhật và được xem như một kho lưu trữ thông tin, phương thức biểu đạt và bảo tồn bản sắc của mỗi nền văn hóa. Trong kỷ nguyên toàn cầu hóa, sự thâm nhập mạnh mẽ của các sản phẩm văn hóa ngoại nhập – điển hình là làn sóng Hallyu (Hàn Quốc) qua phim ảnh và âm nhạc – đã tạo ra những tác động rõ nét đến thị hiếu của giới trẻ tại Đông Á và Đông Nam Á, bao gồm Việt Nam. Đề tài trích dẫn số liệu khảo sát năm 2012 của TS. Phan Thị Thu Hiền trên 1.114 sinh viên, cho thấy có đến 59% phản hồi tích cực với phim truyền hình Hàn Quốc (K-movie) và 50% đối với âm nhạc Hàn Quốc (K-pop).

Dưới góc nhìn của lý thuyết chủ nghĩa đế quốc văn hóa (cultural imperialism framework), dòng chảy sản phẩm văn hóa một chiều từ các quốc gia phát triển sang các nước đang phát triển có nguy cơ làm suy giảm tính đa dạng và bản sắc âm nhạc bản địa. Bên cạnh đó, môi trường mạng hiện nay còn thiếu các nền tảng khách quan, phi thương mại phục vụ việc khám phá, nghiên cứu âm nhạc cổ điển và nhạc xưa (vintage aesthetic music) cũng như các dữ liệu lịch sử - văn hóa liên quan.

Trước thực trạng đó, đề tài khóa luận tốt nghiệp ngành Công nghệ Thông tin tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (niên khóa 2018–2022) của nhóm sinh viên Nguyễn Long Vũ, Nguyễn Chí Thông và Bùi Quang Hồ Minh Vương, dưới sự hướng dẫn của ThS. Mai Anh Thơ, đã đặt ra các mục tiêu và nhiệm vụ cụ thể:

  1. Thiết kế và phát triển một ứng dụng web mạng xã hội ngách (niche social network) hỗ trợ cộng đồng người dùng yêu thích âm nhạc cổ điển, nhạc xưa giao lưu và chia sẻ nội dung.
  2. Tích hợp giải pháp phát thanh trực tuyến (internet radio) với nhiều kênh stream audio nhằm tạo không gian nghe nhạc hoài niệm và kết nối người nghe.
  3. Ứng dụng mô hình kiến trúc hiện đại dựa trên nền tảng Remix framework và Strapi Headless CMS nhằm tối ưu hóa trải nghiệm người dùng và hiệu suất xử lý dữ liệu.

Phạm vi nghiên cứu tập trung vào việc mô hình hóa yêu cầu, thiết kế kiến trúc phần mềm, xây dựng các module chức năng (xác thực, microblogging, real-time chat, internet radio) và đánh giá kiểm thử phần mềm trên môi trường web.


Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và mô hình tiếp cận

  • Lý thuyết chủ nghĩa đế quốc văn hóa (Cultural Imperialism): Được sử dụng để phân tích hiện trạng tiếp nhận văn hóa ngoại nhập và khẳng định tính cấp thiết của việc bảo tồn, quảng bá các giá trị âm nhạc truyền thống và cổ điển.
  • Mô hình kiến trúc ba tầng (Three-tier Architecture): Áp dụng để phân tách rõ ràng giữa tầng giao diện người dùng (Presentation Tier), tầng xử lý nghiệp vụ (Application/Logic Tier) và tầng dữ liệu (Data Tier).

Phương pháp nghiên cứu và đối sánh hiện trạng

Nhóm tác giả tiến hành khảo sát và đánh giá ba hệ thống thực tế theo các tiêu chí: Tính dễ hiểu (Understandability), Tính dễ học (Learnability) và Khả năng tương tác liên thông (Interoperability):

Nền tảng khảo sát Mục tiêu & Định vị Đặc điểm giao diện & Học tập Khả năng tích hợp & Kết nối
LoudUp Xây dựng cộng đồng cho nghệ sĩ và người yêu nhạc nói chung. Giao diện đơn giản, tích hợp thanh tìm kiếm bài hát/nghệ sĩ. Đăng nhập qua Facebook/Twitter; tính năng "Hear With Me" và gửi tin nhắn trực tiếp.
Fishbrain Mạng xã hội ngách dành cho cộng đồng câu cá. Giao diện trực quan, cung cấp biểu đồ phân tích dữ liệu cá và mùa vụ. Xác thực qua Google, Facebook, Email; hoạt động theo dạng blog cộng đồng.
SoundCloud Nền tảng chia sẻ và nghe nhạc mở cho mọi thể loại. Giao diện tinh gọn, thao tác nghe và tải nhạc trực tiếp nhanh chóng. Liên kết tốt với các mạng xã hội bên ngoài và nhà cung cấp dịch vụ xác thực lớn.

Phương pháp phân tích, thiết kế và kiểm thử

  • Phân tích và thiết kế hướng đối tượng (OOAD): Sử dụng ngôn ngữ mô hình hóa UML để xây dựng biểu đồ ca sử dụng (Use Case Diagram), biểu đồ lớp (Class Diagram), biểu đồ trình tự (Sequence Diagram) và biểu đồ quan hệ thực thể (ERD).
  • Phương pháp kiểm thử chức năng (Functional Testing): Thiết kế kịch bản kiểm thử chi tiết (Test Cases) cho các luồng nghiệp vụ cốt lõi như đăng ký, đăng nhập, đọc bài viết, nhắn tin và nghe luồng radio.

Thiết kế kiến trúc và công nghệ triển khai

Hệ thống được thiết kế theo mô hình kiến trúc phân tầng kết hợp với các dịch vụ chuyên dụng:

[ Remix Framework (Frontend UI / Edge Engine) ]
[ Strapi Headless CMS (Core Business Logic / API Gateway) ]

Ngăn xếp công nghệ (Technology Stack)

  • Remix: Full-stack web framework tập trung vào tối ưu hóa giao diện người dùng, xử lý logic tải dữ liệu nhanh và hỗ trợ triển khai trên nhiều môi trường Node.js hoặc Edge server.
  • Strapi: Headless CMS mã nguồn mở giúp xây dựng và quản lý RESTful API linh hoạt, giảm thiểu thời gian thiết lập cơ sở dữ liệu và quản trị nội dung.
  • Icecast & Liquidsoap: Giải pháp truyền phát âm thanh trực tuyến, quản lý các kênh radio và luồng stream MP3.
  • CometChat: Dịch vụ tích hợp tính năng trò chuyện trực tiếp (chat 1-1, chat theo kênh) theo thời gian thực.
  • Cloudinary: Quản lý lưu trữ hình ảnh và tài nguyên tệp của bài viết.
  • Meilisearch: Động cơ tìm kiếm mã nguồn mở tốc độ cao phục vụ tính năng tìm kiếm bài viết và nội dung nhanh chóng.
  • Google Cloud Platform: Môi trường lưu trữ và triển khai hệ thống, hỗ trợ thiết lập quy trình CI/CD.

Phân công trách nhiệm phát triển phần mềm

Thành viên Mã số sinh viên Nhiệm vụ đảm nhiệm trong dự án
Nguyễn Chí Thông 18110051 Nghiên cứu Remix, Strapi, Google Cloud, Icecast, Liquidsoap; Mô hình hóa cơ sở dữ liệu; Thiết kế chức năng sản phẩm; Hiện thực hóa module Microblogging và Radio; Triển khai hệ thống (Deployment).
Nguyễn Long Vũ 18110069 Nghiên cứu Remix, CometChat, Cloudinary; Quản lý dự án; Thiết kế và hiện thực hóa giao diện người dùng (UI); Hiện thực hóa module Xác thực (Authentication) và Giao tiếp thời gian thực; Thiết lập CI/CD.
Bùi Quang Hồ Minh Vương 18110070 Nghiên cứu Remix, Strapi, Cloudinary, Meilisearch; Mô hình hóa cơ sở dữ liệu; Thiết kế chức năng; Kết nối giao diện người dùng với Core API (Strapi); Hiện thực hóa module Microblogging.

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

Chương 1. Tổng quan dự án (Project Overview)

Chương này phân tích lý do phát triển mạng xã hội ngách dành cho âm nhạc cổ điển, luận giải việc lựa chọn ngăn xếp công nghệ Strapi và Remix, đồng thời xác lập hệ thống yêu cầu phần mềm:

  • Yêu cầu chức năng (Functional Requirements):
    • ID 1 - Authentication: Xác thực người dùng thông qua tài khoản và mật khẩu định danh duy nhất trước khi sử dụng các dịch vụ.
    • ID 2 - Real-time chatting: Cung cấp chức năng nhắn tin phản hồi tức thì giữa các thành viên.
    • ID 3 - Manage contacts: Hỗ trợ thêm hoặc xóa người dùng khác vào danh bạ cá nhân.
    • ID 4 - Internet radio: Cho phép người dùng nghe trực tuyến các luồng âm thanh qua trình phát tích hợp (MP3 player).
    • ID 5 - Microblogging: Cung cấp công cụ soạn thảo, đăng bài viết và chia sẻ suy nghĩ kèm hình ảnh.
  • Yêu cầu phi chức năng (Non-functional Requirements):
    • ID 6 - Encouragement: Thiết kế tạo động lực sử dụng, mang tính cá nhân hóa cao.
    • ID 7 - Intuition: Sử dụng biểu tượng, hình ảnh và từ khóa ngắn gọn, trực quan, thân thiện cho mọi độ tuổi.
    • ID 8 - No need for prior knowledge: Giao diện đơn giản, không đòi hỏi kiến thức chuyên môn phức tạp từ người dùng mới.
    • ID 9 - Informality and Friendliness: Phong cách trình bày nội dung gần gũi, thoải mái, không mang tính trang trọng gò bó.
  • Mô hình dữ liệu: Xây dựng biểu đồ quan hệ thực thể (ERD) hoàn chỉnh mô tả các bảng người dùng, bài viết, bình luận, thẻ tag, danh bạ, luồng radio và báo cáo.

Chương 2. Phân tích và thiết kế hệ thống (System Analysis and Design)

Chương 2 mô hình hóa chi tiết cấu trúc tĩnh và động của hệ thống phần mềm với 5 nhóm tác nhân (Guest, User, Author, Editor, Admin) cùng 38 ca sử dụng (Use Cases):

Nhóm chức năng Mã Use Case Tên Use Case & Mô tả tóm tắt Tác nhân chính
Hệ thống & Xác thực UC_01 - UC_04 Đăng ký tài khoản mới; Đăng nhập hệ thống; Đăng xuất phiên làm việc. Guest, User, Editor, Admin
Phân quyền UC_05, UC_33 Yêu cầu nâng cấp tài khoản Editor/Author; Quản trị viên xét duyệt yêu cầu. User, Admin, Editor
Quản lý Thẻ (Tags) UC_06 - UC_09 Xem danh sách tag; Tạo mới; Chỉnh sửa; Xóa tag nội dung. User, Editor, Admin
Tiểu blog (Posts) UC_10 - UC_13 Đọc bài viết; Tạo bài viết mới; Chỉnh sửa bài viết; Xóa bài viết. User, Editor, Admin, Author
Tương tác bài viết UC_14, UC_30, UC_31, UC_32, UC_34, UC_35 Bình chọn (Vote); Bình luận; Tìm kiếm bài viết; Đánh dấu (Bookmark); Lọc bài theo tag; Chia sẻ lên mạng xã hội (Facebook, Twitter, Pinterest). User
Quản lý Kết nối UC_15 - UC_17 Thêm bạn bè vào danh bạ; Lấy danh sách bạn bè; Xóa bạn bè. User
Tin nhắn Real-time UC_18, UC_19, UC_36 Gửi tin nhắn cho người dùng ngẫu nhiên; Gửi tin nhắn cho bạn bè; Gửi tin nhắn cho người theo dõi kênh. User
Phát thanh (Radio) UC_24 - UC_29 Đọc luồng stream; Tạo/Sửa/Xóa kênh stream; Nghe kênh radio; Đăng ký (Subscribe) kênh. User, Editor, Admin
Kiểm duyệt & Báo cáo UC_20 - UC_23, UC_37, UC_38 Trả lời bình luận; Báo cáo bình luận/bài viết vi phạm; Duyệt báo cáo và khóa nội dung vi phạm; Xuất bản/Ẩn bài viết. User, Editor, Admin

Chương này cũng trình bày chi tiết các biểu đồ tuần tự (Sequence Diagrams) cho các tương tác trọng yếu: Đăng ký tài khoản, Đăng nhập, Truy cập nghe kênh âm nhạc, Thao tác kết bạn, Gửi tin nhắn thời gian thực và Bình chọn bài viết. Đồng thời, thiết kế giao diện đồ họa được thể hiện thông qua các trang chính: Trang chủ (Index page), Trang bài viết đơn (Single Post page) và Trang đăng nhập (Login page).


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

Kết quả triển khai thực tế

  • Xây dựng thành công ứng dụng web mạng xã hội ngách hoàn chỉnh, tích hợp tính năng microblogging chuyên sâu về chủ đề âm nhạc cổ điển và hệ thống radio trực tuyến.
  • Hiện thực hóa thành công các luồng nghiệp vụ tương tác xã hội: kết nối bạn bè, trò chuyện ngẫu nhiên (random chat) và trò chuyện theo danh bạ thông qua CometChat API.
  • Tích hợp máy chủ phát nhạc Icecast và Liquidsoap, cho phép người dùng truy cập, nghe trực tiếp và đăng ký theo dõi các kênh stream âm thanh hoài niệm.
  • Thiết lập hệ thống quản trị nội dung với 5 cấp phân quyền rõ ràng, hỗ trợ quy trình kiểm duyệt bài viết và xử lý báo cáo vi phạm nội dung tự động/bán tự động.
  • Hoàn thành bộ kịch bản kiểm thử phần mềm (Test Cases) xác minh hoạt động chính xác của các chức năng: Đăng ký, Đăng nhập, Đọc bài viết, Nhắn tin ngẫu nhiên, Nhắn tin danh bạ và Nghe luồng radio.

Đóng góp của đề tài

  1. Đưa ra giải pháp kỹ thuật cụ thể kết hợp giữa nền tảng Remix (Full-stack UI) và Strapi (Headless CMS Core API), chứng minh tính hiệu quả của mô hình này trong việc phát triển nhanh ứng dụng mạng xã hội hướng nghiệp vụ.
  2. Đóng góp một nền tảng chuyên biệt phục vụ việc lưu trữ, trao đổi và lan tỏa các giá trị âm nhạc xưa, tạo không gian kết nối cho cộng đồng có cùng gu thẩm mỹ văn hóa hoài cổ.

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

Dựa trên phần tự đánh giá của nhóm tác giả trong báo cáo ("What worked well" và "What did not work well"):

Hạn chế

  • Quá trình kết nối và đồng bộ dữ liệu giữa giao diện Remix với Core API Strapi cùng các dịch vụ bên thứ ba (CometChat, Cloudinary, Meilisearch) đôi lúc còn gặp độ trễ nhất định.
  • Tính năng ghép nối người dùng ngẫu nhiên để nhắn tin trực tiếp cần thêm các thuật toán lọc sở thích nâng cao để tối ưu hóa sự tương thích giữa các thành viên.
  • Khả năng xử lý khi có nhiều luồng phát radio trực tuyến đồng thời cần được tối ưu sâu hơn ở tầng máy chủ truyền thông (Media Server).

Hướng phát triển

  • Tối ưu hóa hiệu năng của bộ máy tìm kiếm Meilisearch và cơ chế nạp trước (prefetching/caching) của Remix.
  • Mở rộng các tính năng phân tích thói quen nghe nhạc của người dùng để đề xuất các kênh radio và bài viết phù hợp hơn.
  • Phát triển phiên bản ứng dụng di động đa nền tảng để tăng tính tiện lợi cho người dùng khi nghe radio trên các thiết bị cầm tay.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Là tài liệu mẫu về quy trình phân tích thiết kế hệ thống thông tin hướng đối tượng (OOAD), cách viết đặc tả use case chi tiết và thiết kế kịch bản kiểm thử phần mềm cho đồ án tốt nghiệp.
  • Lập trình viên phát triển Web: Tham khảo kiến trúc tích hợp thực tế giữa Remix framework và Strapi Headless CMS, cách tích hợp các dịch vụ bên ngoài như CometChat (Real-time Chat), Cloudinary (Media Storage), Meilisearch (Search Engine) và Icecast/Liquidsoap (Audio Streaming).

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

1. Lý do chính khiến nhóm tác giả xây dựng nền tảng mạng xã hội chuyên biệt cho nhạc xưa là gì?

Nhóm tác giả chỉ ra ba lý do chính: (1) Âm nhạc là cốt lõi văn hóa lưu giữ các giá trị lịch sử; (2) Sự lấn át của các dòng nhạc ngoại nhập trong thời kỳ toàn cầu hóa (như K-pop) làm chậm sự phát triển và tính độc bản của âm nhạc bản địa; (3) Môi trường mạng còn thiếu các nền tảng khách quan, chuyên biệt để người dùng tìm hiểu, nghiên cứu và thưởng thức âm nhạc hoài cổ.

2. Vì sao nhóm nghiên cứu lại chọn kết hợp giữa Strapi và Remix?

Strapi là Headless CMS mã nguồn mở cho phép xây dựng API nhanh chóng, quản lý nội dung linh hoạt và tiết kiệm thời gian phát triển backend. Trong khi đó, Remix là web framework full-stack tối ưu hóa giao diện người dùng, xử lý logic tải trang mượt mà và có thể triển khai linh hoạt trên các máy chủ Node.js lẫn môi trường Edge. Sự kết hợp này giúp nhóm tập trung tối đa vào việc hiện thực hóa giá trị nghiệp vụ của sản phẩm.

3. Hệ thống phân chia quyền hạn của người dùng như thế nào?

Hệ thống thiết lập 5 nhóm tác nhân (Actors) chính bao gồm: Guest (khách vãng lai, chỉ có thể xem trang index và đăng ký/đăng nhập), User (thành viên thông thường có quyền viết bài, bình luận, vote, kết bạn, nhắn tin, nghe radio), Author (tác giả nội dung), Editor (biên tập viên có quyền quản lý thẻ, duyệt và xuất bản bài viết, quản lý kênh stream), và Admin (quản trị viên toàn quyền hệ thống và xét duyệt cấp quyền tài khoản).

4. Chức năng phát thanh trực tuyến (Internet Radio) được hiện thực bằng công nghệ nào?

Chức năng Internet Radio của ứng dụng được xây dựng dựa trên sự phối hợp giữa máy chủ phát trực tuyến Icecast và ngôn ngữ kịch bản luồng âm thanh Liquidsoap, kết hợp với component trình phát nhạc MP3 ở giao diện người dùng Remix để truyền tải âm thanh trực tiếp từ máy chủ đến trình duyệt.


Kết luận

Khóa luận tốt nghiệp "Creating a social network web application for discovering old music and entertainment" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết trọn vẹn bài toán xây dựng một mạng xã hội ngách phục vụ cộng đồng yêu âm nhạc hoài cổ. Hệ thống được mô hình hóa bài bản qua 38 ca sử dụng, áp dụng kiến trúc ba tầng hiện đại dựa trên sự kết hợp giữa Strapi và Remix, đồng thời tích hợp thành công các module đa phương tiện như truyền phát radio và trò chuyện thời gian thực. Đồ án đáp ứng đầy đủ các tiêu chuẩn kỹ thuật của một khóa luận tốt nghiệp kỹ sư CNTT và mang lại giá trị ứng dụng thực tiễn trong việc bảo tồn bản sắc văn hóa âm nhạc.