Bối cảnh và vấn đề nghiên cứu
Đồ án môn học Lập trình Web với đề tài "Xây dựng website quản lý cung cấp dịch vụ nghe nhạc trực tuyến Audio Atlas" được thực hiện bởi sinh viên Hồ Nguyễn Như (mã số sinh viên: 2021010239, lớp học phần: 2602) dưới sự hướng dẫn của ThS. Trương Xuân Hương tại Khoa Công nghệ Thông tin, Trường Đại học Tài chính - Marketing vào tháng 04 năm 2023.
Về bối cảnh thực tiễn, tác giả chỉ ra rằng trong thời đại công nghệ số, phương thức giải trí nghe nhạc truyền thống qua radio hoặc băng đĩa đã suy giảm độ phổ biến. Thay vào đó, người dùng chuyển dịch mạnh mẽ sang hình thức nghe nhạc trực tuyến thông qua ứng dụng và trang web nhờ tính tiện lợi, cho phép truy cập âm nhạc mọi lúc, mọi nơi có kết nối Internet. Dẫn chứng báo cáo từ Liên đoàn Công nghiệp ghi âm Quốc tế (IFPI) năm 2020, thị trường âm nhạc kỹ thuật số đã tăng trưởng đáng kể và chiếm 56,1% thị phần âm nhạc toàn cầu. Dù các dịch vụ quốc tế và trong nước như Spotify, Apple Music, Amazon Music, YouTube Music, Zing MP3 và NhacCuaTui (NCT) phát triển mạnh, tác giả nhận định chúng vẫn tồn tại một số điểm hạn chế: chi phí thuê bao cao đối với một bộ phận người dùng (Spotify, Apple Music); việc thiếu hụt nhạc của các nghệ sĩ độc lập hoặc thiếu đồng bộ (YouTube Music); tính năng tìm kiếm, chia sẻ và tạo danh sách phát chưa tối ưu (Zing MP3); hoặc giao diện còn đơn giản, chưa tối ưu trải nghiệm (NCT). Từ đó, đề tài xây dựng website Audio Atlas được hình thành nhằm đáp ứng nhu cầu thưởng thức âm nhạc cá nhân hóa với mức giá hợp lý.
Mục tiêu nghiên cứu được tác giả xác định cụ thể gồm 4 nội dung:
- Xây dựng một Website với giao diện dễ dùng và phù hợp với nhiều đối tượng sử dụng.
- Cung cấp cho người dùng một nền tảng trực tuyến tiện lợi để truy cập và tận hưởng các bản nhạc yêu thích từ nhiều thể loại âm nhạc khác nhau.
- Tạo ra trải nghiệm nghe nhạc trực tuyến tốt cho người dùng bằng cách cung cấp các tính năng và công nghệ tương tác.
- Tối ưu hóa trang web để đáp ứng nhu cầu, sở thích của người dùng, nâng cao trải nghiệm và duy trì sự gắn kết của người dùng.
Nhiệm vụ nghiên cứu bao gồm 8 nội dung chính: thiết kế giao diện web; phát triển tương thích đa thiết bị; thiết kế cơ sở dữ liệu quản lý bài hát, danh sách phát và người dùng; xây dựng chức năng phân loại và tìm kiếm; phát triển tính năng tương tác người dùng; tích hợp hệ thống quản lý thanh toán gói dịch vụ; đảm bảo an toàn, bảo mật thông tin tài khoản; và quản lý cập nhật nội dung số.
Đối tượng nghiên cứu của đề tài là việc xây dựng hệ thống website cung cấp dịch vụ nghe nhạc trực tuyến mang tên Audio Atlas. Phạm vi nghiên cứu tập trung vào quy trình quản lý và vận hành website Audio Atlas trên mạng máy tính, bao gồm việc thực thi các chức năng nghe nhạc, quản lý danh sách phát và quản lý quy trình giao dịch khi người dùng đăng ký gói dịch vụ trả phí. Về mặt quản trị, phạm vi hệ thống bao quát 5 module: quản lý tài khoản, quản lý sản phẩm âm nhạc, quản lý đơn hàng/giao dịch thanh toán, quản lý giao diện website và quản lý dịch vụ.
Cơ sở lý thuyết và công nghệ phát triển
Hệ thống Audio Atlas được xây dựng dựa trên mô hình phát triển ứng dụng mạng (Client - Server) với các nền tảng công nghệ và công cụ lập trình cụ thể:
-
Bộ ba công nghệ phía máy khách (Client-side):
- HTML (Hypertext Markup Language): Sử dụng hệ thống thẻ và thuộc tính để cấu trúc hóa các thành phần trên giao diện trang web như văn bản, hình ảnh, siêu liên kết và biểu mẫu.
- CSS (Cascading Style Sheets): Thiết lập định dạng trực quan cho giao diện, quản lý bố cục, phông chữ, khoảng cách và hệ màu sắc gam trầm tối giản theo định hướng thiết kế của website.
- JavaScript: Ngôn ngữ kịch bản thông dịch phía máy khách, chịu trách nhiệm xử lý các hành vi động, kiểm soát tương tác người dùng và truyền nhận dữ liệu bất đồng bộ với máy chủ.
-
Ngôn ngữ lập trình phía máy chủ (Server-side):
- PHP (Hypertext Preprocessor): Ngôn ngữ kịch bản chạy trên máy chủ để xây dựng các ứng dụng web động. Trong hệ thống, PHP đóng vai trò xử lý các yêu cầu HTTP, kiểm tra và xử lý dữ liệu đầu vào từ biểu mẫu HTML, tương tác với hệ quản trị cơ sở dữ liệu, quản lý phiên làm việc, xử lý tệp tin âm thanh, xử lý hình ảnh thu nhỏ (thumbnail) và điều khiển luồng nghiệp vụ.
-
Hệ quản trị cơ sở dữ liệu (DBMS):
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở sử dụng ngôn ngữ truy vấn SQL. MySQL được lựa chọn nhằm tổ chức cấu trúc bảng, thiết lập các ràng buộc toàn vẹn dữ liệu, lưu trữ thông tin đối tượng và thực thi các thao tác truy vấn dữ liệu với hiệu năng cao và cơ chế phục hồi dữ liệu tin cậy.
-
Môi trường phát triển và công cụ bổ trợ:
- Apache NetBeans IDE 12.3: Môi trường phát triển tích hợp mã nguồn mở cung cấp giao diện lập trình, công cụ gỡ lỗi, kiểm tra cú pháp tự động và hỗ trợ các công cụ quản lý dự án, biên dịch (Git, SVN, Maven, JDK).
- Gói giải pháp XAMPP: Bản phân phối tích hợp máy chủ web Apache HTTP Server, hệ quản trị cơ sở dữ liệu MySQL, trình thông dịch PHP/Perl cùng các tiện ích hỗ trợ quản trị gồm phpMyAdmin, FileZilla FTP Server và Mercury Mail Transport System trên máy tính phát triển cục bộ.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo phương pháp phân tích chức năng kết hợp mô hình hóa dòng dữ liệu và cơ sở dữ liệu quan hệ.
1. Phân tích chức năng và dòng dữ liệu
Hệ thống phân cấp chức năng (BFD) của Audio Atlas được tổ chức thành 6 nhóm nghiệp vụ chính:
- Quản lý tài khoản người dùng: Thực hiện đăng ký, đăng nhập, cập nhật thông tin cá nhân, kiểm soát khóa/xóa tài khoản theo điều khoản quy định và đổi mật khẩu.
- Quản lý danh sách phát: Cho phép tạo mới, sửa, xóa danh sách phát cá nhân và chia sẻ liên kết danh sách phát.
- Chức năng tìm kiếm: Truy vấn bài hát theo tên, ca sĩ, thể loại và tìm kiếm danh sách phát công khai của người dùng khác.
- Chức năng phát nhạc: Phát nhạc trực tuyến theo bài hát lẻ hoặc playlist, tích hợp cơ chế tự động chuyển bài khi kết thúc phát.
- Chức năng đề xuất bài hát: Gợi ý nội dung dựa trên điểm tương đồng về nghệ sĩ trình bày và thể loại của bài hát đang nghe.
- Chức năng thanh toán và quản lý giao dịch: Xử lý quá trình đăng ký gói dịch vụ trả phí, lập và xác nhận thông tin thanh toán.
Mô hình dòng dữ liệu (DFD) phân định rõ hai tác nhân ngoài:
- Người dùng: Tìm kiếm, nghe nhạc, tạo playlist cá nhân, tương tác bình luận, gửi yêu cầu đăng ký gói tài khoản và cung cấp thông tin thanh toán thẻ tín dụng.
- Người quản trị: Nắm giữ quyền hạn cao nhất trong hệ thống, thực hiện quản trị toàn bộ dữ liệu người dùng, nghệ sĩ, thể loại, bài hát, thiết lập gói dịch vụ và duyệt/lập phiếu thu cho các giao dịch đăng ký.
Mô hình DFD được chi tiết hóa qua DFD mức 0 (tổng quát), DFD mức 1 và 3 sơ đồ DFD mức 2 tương ứng với ba phân hệ cốt lõi: Quản lý tài khoản người dùng; Quản lý chức năng hoạt động sử dụng Website; Quản lý thanh toán và giao dịch.
2. Thiết kế cơ sở dữ liệu quan hệ
Cơ sở dữ liệu của hệ thống gồm 12 thực thể, được thiết kế chuẩn hóa và mô hình hóa quan hệ (ERD). Cấu trúc các bảng dữ liệu được quy định cụ thể như sau:
| Tên bảng |
Ý nghĩa thực thể |
Khóa chính (PK) |
Khóa ngoại (FK) |
Các thuộc tính khác |
NguoiDung |
Tài khoản người dùng |
MaND (Char 10) |
MaGDV (Char 10) |
TenND, DiaChi, Email, SDT, GioiTinh, NgaySinh, MatKhau |
NguoiQuanTri |
Tài khoản quản trị |
MaNQT (Char 10) |
Không |
TenNQT, DiaChi, Email, SDT, GioiTinh, NgaySinh, MatKhau |
DMBH |
Danh mục bài hát |
MaBH (Char 10) |
MaNS, MaTL (Char 10) |
TenBH, NgayCN, Lyrics |
DMDSP |
Danh mục danh sách phát |
MaDSP (Char 10) |
MaND (Char 10) |
TenDSP |
CTDSP |
Chi tiết danh sách phát |
MaDSP, MaBH (Char 10) |
MaDSP, MaBH |
ThoiLuong (Time) |
DMNS |
Danh mục nghệ sĩ |
MaNS (Char 10) |
Không |
TenNS, DiaChi, Email, SDT, GioiTinh, NgaySinh, MatKhau |
DMTL |
Danh mục thể loại |
MaTL (Char 10) |
Không |
TenTL |
DMGDV |
Danh mục gói dịch vụ |
MaGDV (Char 10) |
Không |
TenGDV, Gia (Float) |
PDK |
Phiếu đăng ký gói |
MaPDK (Char 10) |
MaND, MaNQT (Char 10) |
TongTien (Float) |
CTPDK |
Chi tiết phiếu đăng ký |
MaPDK, MaGDV (Char 10) |
MaPDK, MaGDV |
SoTTD, NgayHetHan, MaBaoMat, NgayDK |
PhieuThu |
Phiếu thu thanh toán |
MaPT (Char 10) |
MaND, MaNQT (Char 10) |
TongTien (Float) |
CTPhieuThu |
Chi tiết phiếu thu |
MaPT, MaGDV (Char 10) |
MaPT, MaGDV |
NgayLap, NoiDung |
3. Ràng buộc toàn vẹn và bảng tầm ảnh hưởng
Hệ thống thiết lập hệ thống quy tắc ràng buộc toàn vẹn (RBTV) chặt chẽ từ RBTV1.1 đến RBTV12.2 nhằm đảm bảo tính nhất quán của dữ liệu:
- Toàn vẹn thực thể: Các thuộc tính khóa chính như
MaND, MaNQT, MaBH, MaDSP, MaNS, MaTL, MaGDV, MaPDK, MaPT là duy nhất trên từng quan hệ.
- Toàn vẹn tham chiếu:
- Một người dùng chỉ thuộc tối đa một gói dịch vụ đang hoạt động tại một thời điểm (
NguoiDung.MaGDV tham chiếu DMGDV.MaGDV).
- Bài hát bắt buộc liên kết với một nghệ sĩ và một thể loại âm nhạc xác định (
DMBH.MaNS và DMBH.MaTL).
- Mỗi bản ghi
CTDSP liên kết hợp lệ giữa một danh sách phát và một bài hát tồn tại.
- Một phiếu đăng ký (
PDK) hoặc phiếu thu (PhieuThu) bắt buộc tham chiếu tới mã người dùng (MaND) lập phiếu và mã người quản trị (MaNQT) duyệt phiếu.
- Chi tiết phiếu đăng ký (
CTPDK) và chi tiết phiếu thu (CTPhieuThu) phải tham chiếu đến gói dịch vụ tồn tại trong DMGDV.
Bảng tầm ảnh hưởng của các ràng buộc toàn vẹn được tác giả phân tích chi tiết đối với 3 thao tác Thêm (+), Xóa (-), Sửa (*) để phục vụ việc kiểm soát dữ liệu trong quá trình lập trình backend.
Nội dung chính theo từng chương
Chương 1: Tổng quan về đề tài
Chương mở đầu tập trung giới thiệu ý tưởng hình thành website Audio Atlas, xác lập bối cảnh chuyển dịch xu hướng giải trí sang nền tảng số. Tác giả nêu rõ 4 mục tiêu nghiên cứu, liệt kê 8 nội dung công việc kỹ thuật cần triển khai, đồng thời phân định đối tượng nghiên cứu là website nghe nhạc Audio Atlas và phạm vi giới hạn trong các phân hệ quản lý thông tin nhạc số, tương tác người dùng, xử lý giao dịch dịch vụ cùng 5 chức năng quản trị hệ thống.
Chương 2: Cơ sở lý thuyết
Nội dung chương 2 tổng thuật lý thuyết và công nghệ sử dụng để xây dựng hệ thống. Tác giả trình bày nguyên lý hoạt động, cú pháp và vai trò của các ngôn ngữ lập trình web bao gồm HTML, CSS, JavaScript ở client-side và PHP ở server-side. Phần cơ sở dữ liệu mô tả các đặc tính kỹ thuật của hệ quản trị MySQL (tính an toàn, khả năng mở rộng ngang, độ tin cậy và xử lý đa luồng). Đồng thời, chương này giới thiệu bộ công cụ phát triển Apache NetBeans IDE 12.3 và bộ phần mềm giải pháp môi trường máy chủ cục bộ XAMPP.
Chương 3: Phân tích thiết kế hệ thống thông tin
Đây là chương nội dung kỹ thuật trọng tâm của đồ án:
- Trình bày kết quả khảo sát hiện trạng thị trường dựa trên số liệu IFPI 2020 và khảo sát so sánh 6 dịch vụ thực tế (Spotify, Apple Music, YouTube Music, Amazon Music, Zing MP3, NCT), từ đó rút ra các yêu cầu chức năng và phi chức năng của người dùng.
- Xây dựng mô hình phân cấp chức năng BFD với 6 nhóm nghiệp vụ chính.
- Thiết kế hệ thống mô hình dòng dữ liệu DFD từ mức 0, mức 1 đến mức 2 cho các tiến trình tài khoản, hoạt động website và giao dịch thanh toán.
- Thiết kế cơ sở dữ liệu logic và vật lý: mô tả chi tiết 12 thực thể, vẽ mô hình quan hệ thực thể ERD, thiết lập hệ thống 12 quy tắc ràng buộc toàn vẹn kèm bảng tầm ảnh hưởng, chuyển đổi sang mô hình quan hệ và cài đặt cấu trúc bảng trong MySQL.
Chương 4: Thiết kế chương trình ứng dụng
Chương 4 mô tả đặc tả giao diện và hiện thực hóa các chức năng trên website:
- Đặc tả chi tiết các sơ đồ ca sử dụng và luồng thao tác của chức năng quản lý tài khoản, chức năng tìm kiếm và chức năng thanh toán giao dịch.
- Trình bày kết quả xây dựng giao diện thực tế thông qua hệ thống biểu mẫu và trang web: trang đăng ký, trang đăng nhập, trang tổng hợp danh mục, chức năng quên và đổi mật khẩu.
- Giao diện phân hệ quản trị (Admin): danh sách và biểu mẫu tìm kiếm/thêm/xóa/sửa người dùng, quản lý nghệ sĩ, quản lý danh mục gói dịch vụ và module lập/quản lý phiếu thu giao dịch.
Chương 5: Kết luận và hướng phát triển
Chương cuối cùng tổng kết các kết quả mà đề tài đã đạt được sau quá trình nghiên cứu, phân tích và lập trình hoàn thiện website. Đồng thời, tác giả chỉ ra các hạn chế còn tồn đọng trong quá trình vận hành thử nghiệm và đề ra hai nhóm định hướng phát triển gồm: hướng khắc phục các mặt hạn chế kỹ thuật hiện tại và hướng mở rộng chức năng hệ thống trong tương lai.
Kết quả và đóng góp
Hạn chế và hướng nghiên cứu tiếp
Giá trị tham khảo
Đồ án là tài liệu tham khảo phù hợp cho sinh viên ngành Công nghệ thông tin, Hệ thống thông tin quản lý hoặc Kỹ thuật phần mềm đang thực hiện đồ án môn học Lập trình Web, Phân tích thiết kế hệ thống thông tin hoặc khóa luận tốt nghiệp.
Giá trị tham khảo cốt lõi của tài liệu nằm ở Chương 3. Đây là phần tài liệu cung cấp mẫu phân tích thiết kế hệ thống hoàn chỉnh và chuẩn mực: từ việc mô hình hóa phân cấp chức năng (BFD), triển khai chi tiết dòng dữ liệu (DFD mức 0, 1, 2) cho đến việc thiết kế cấu trúc bảng cơ sở dữ liệu, xác định chi tiết kiểu dữ liệu, chiều dài, khóa chính, khóa ngoại và xây dựng bảng tầm ảnh hưởng cho từng ràng buộc toàn vẹn.
Câu hỏi thường gặp
1. Hệ thống cơ sở dữ liệu của Audio Atlas gồm bao nhiêu thực thể và những bảng nào phục vụ nghiệp vụ thu phí dịch vụ?
Cơ sở dữ liệu của Audio Atlas gồm 12 thực thể bảng. Nghiệp vụ đăng ký và thu phí dịch vụ được quản lý qua 5 bảng liên kết: DMGDV (Danh mục gói dịch vụ lưu trữ tên gói và giá), PDK (Phiếu đăng ký gói dịch vụ lưu thông tin người dùng và tổng tiền), CTPDK (Chi tiết phiếu đăng ký lưu số thẻ tín dụng, ngày hết hạn, mã bảo mật, ngày đăng ký), PhieuThu (Phiếu thu ghi nhận việc duyệt giao dịch bởi quản trị viên) và CTPhieuThu (Chi tiết phiếu thu ghi nhận ngày lập và nội dung thanh toán).
2. Sơ đồ phân cấp chức năng (BFD) của hệ thống Audio Atlas được phân bổ thành các nhóm nghiệp vụ nào?
Sơ đồ BFD của hệ thống phân chia thành 6 phân hệ chức năng: Quản lý tài khoản người dùng, Quản lý danh sách phát, Chức năng tìm kiếm, Chức năng phát nhạc, Chức năng đề xuất bài hát, và Chức năng thanh toán và quản lý giao dịch.
3. Ràng buộc toàn vẹn giữa người dùng và gói dịch vụ được tác giả thiết lập như thế nào?
Theo quy tắc RBTV1.2 trong tài liệu, mỗi người dùng chỉ được lựa chọn một gói dịch vụ duy nhất cho mỗi lần đăng ký trên website. Ràng buộc này được thể hiện qua trường khóa ngoại MaGDV trong bảng NguoiDung tham chiếu đến bảng DMGDV, với bảng tầm ảnh hưởng kiểm soát nghiêm ngặt thao tác Thêm, Sửa trên bảng NguoiDung và thao tác Xóa trên bảng DMGDV.
4. Đề tài sử dụng những công nghệ và phần mềm nào để phục vụ việc lập trình và kiểm thử hệ thống?
Tác giả sử dụng bộ ba ngôn ngữ HTML, CSS, JavaScript cho phía giao diện (Client-side), ngôn ngữ PHP cho phía xử lý máy chủ (Server-side), và hệ quản trị cơ sở dữ liệu MySQL. Môi trường phát triển tích hợp được sử dụng là Apache NetBeans IDE 12.3 và môi trường máy chủ chạy thử nghiệm cục bộ là phần mềm XAMPP (bao gồm Apache, MySQL, PHP, phpMyAdmin).
5. Cơ sở dữ liệu của đề tài quản lý mối quan hệ giữa bài hát, nghệ sĩ và danh sách phát ra sao?
Mối quan hệ được thiết kế chuẩn hóa: một bài hát (DMBH) chỉ thuộc về một nghệ sĩ (DMNS) và một thể loại (DMTL). Người dùng (NguoiDung) có thể tạo nhiều danh sách phát (DMDSP), nhưng mỗi danh sách phát chỉ thuộc một người dùng. Mối quan hệ nhiều - nhiều giữa danh sách phát và bài hát được giải quyết thông qua bảng trung gian CTDSP (Chi tiết danh sách phát) với khóa chính kết hợp gồm MaDSP và MaBH.
Kết luận
Đồ án môn học "Xây dựng website quản lý cung cấp dịch vụ nghe nhạc trực tuyến Audio Atlas" của sinh viên Hồ Nguyễn Như đã hoàn thành việc mô hình hóa và xây dựng một nền tảng phân phối âm nhạc số hoàn chỉnh bằng ngôn ngữ PHP và hệ quản trị MySQL. Toàn bộ quy trình từ khảo sát thực tế, phân tích luồng dữ liệu DFD, chuẩn hóa 12 bảng cơ sở dữ liệu đến thiết kế giao diện người dùng và quản trị đã được văn bản tài liệu hóa rõ ràng, mạch lạc. Đây là tài liệu học thuật có cấu trúc thiết kế hệ thống chặt chẽ, đáp ứng tốt yêu cầu kỹ thuật của đồ án chuyên ngành Công nghệ thông tin.