Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
1,72 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN XÂY DỰNG WEBSITE NGHE NHẠC VỚI TÍNH NĂNG ĐỀ XUẤT BÀI HÁT Giảng viên hướng dẫn : ThS Trần Anh Dũng Sinh viên thực : Lương Mạnh Hùng - 19520098 Lớp SE122.N11 : TP HCM, tháng 12 năm 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN XÂY DỰNG WEBSITE NGHE NHẠC VỚI TÍNH NĂNG ĐỀ XUẤT BÀI HÁT Giảng viên hướng dẫn : ThS Trần Anh Dũng Sinh viên thực : Lương Mạnh Hùng - 19520098 Lớp SE122.N11 : TP HCM, tháng 12 năm 2022 TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CÔNG NGHỆ PHẦN MỀM Độc lập – Tự – Hạnh phúc ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: XÂY DỰNG WEBSITE NGHE NHẠC VỚI TÍNH NĂNG ĐỀ XUẤT BÀI HÁT Tên đề tài tiếng Anh: BUILDING AN MUSIC WEBSITE WITH RECOMMENDATION Cán hướng dẫn: ThS Trần Anh Dũng Thời gian thực hiện: Từ ngày 5/9/2022 đến ngày 31/12/2022 Sinh viên thực hiện: Lương Mạnh Hùng – 19520098 Nội dung đề tài: Giới thiệu: - Hiện nay, phát triển xã hội, nhu cầu giải trí người ngày tăng mạnh Theo thống kê Việt Nam có khoảng 75% người nghe nhạc ngày, có khoảng 20% người nghe nhiều - Với nhu cầu ấy, em mong muốn tạo website đáp ứng nhu cầu nghe nhạc người, đồng thời chia sẻ sở thích âm nhạc cá nhân trị chuyện tán gẫu với nghe nhạc Đó lí em chọn đề tài “Xây dựng website nghe nhạc chung online kết hợp voice chat đề xuất” Mục tiêu: - Xây dựng website nghe nhạc đáp ứng tiêu chí: o Giao diện thân thiện, dễ sử dụng o Đáp ứng tính cần có website nghe nhạc o Có hệ thống đề xuất nhạc tương đồng với hát hay danh sách yêu thích người dùng Phạm vi: • Phạm vi môi trường: o Triển khai sản phẩm đề tài mơi trường web • Phạm vi chức năng: o Có chức trình phát nhạc tạo danh sách phát, lặp bài, trộn bài, next, back, chỉnh âm lượng, tua thời gian… o Tìm kiếm hát, ca sĩ… o Quản lý danh sách phát, danh sách yêu thích o Nhận đề xuất hát tương tự phát o Nhận đề xuất hát tương tự với danh sách yêu thích o Lọc danh sách hát theo thể loại, ca sĩ, ngày phát hành, lượt nghe… o Quản lý, cập nhật thông tin tài khoản o Quản lý danh sách tài khoản, hát… (Dành cho quản trị viên) Đối tượng: - Người dùng muốn thưởng thức âm nhạc Phương pháp thực hiện: - Trải nghiệm website nghe nhạc có, từ phân tích, xác định tính cần triển khai - Lập kế hoạch, phân chia công việc theo mốc thời gian - Tìm hiểu cơng nghệ sử dụng - Triển khai xây dựng website theo kế hoạch đề - Kiểm thử, phát sửa lỗi (nếu có) - Báo cáo đồ án Cơng nghệ: - Sử dụng mơ hình MERN Stack để triển khai ứng dụng: MongoDB, ExpressJS, ReactJS, NodeJS - Sử dụng ngôn ngữ Python để xử lý liệu thực tính đề xuất Kết mong đợi - Tạo website với giao diện đại, đẹp mắt, thân thiện dễ sử dụng - Giúp người dùng có trải nghiệm mượt mà, ổn định - Bổ sung thêm số tính hữu ích - Tính đề xuất đạt mức độ xác tốt - Có tính tiến hố: phát triển, mở rộng thêm tính tương lai - Quá trình thực đạt tiến độ môn học Hướng phát triển đề tài - Thêm tiện ích trình phát nhạc, danh sách phát - Thêm tính nghe nhạc chung, chat, kết bạn - Phát triển thành mạng xã hội âm nhạc - Tăng độ bảo mật ứng dụng Kế hoạch thực hiện: Thời gian Từ 05/09/2022 đến 17/09/2022 Công việc thực - Tìm hiểu yêu cầu nghiệp vụ Từ 18/09/2022 đến - Tìm hiểu cơng nghệ sử dụng: MongoDB, ExpressJS, ReactJS, 18/10/2022 NodeJS Từ 19/10/2022 đến - Xây dựng vẽ giao diện 31/10/2022 - Xây dựng sở liệu Từ 01/11/2022 đến 25/11/2022 Front-end: triển khai giao diện bản, tạo trình phát nhạc Back-end: thiết lập sở liệu, thực chức upload nhạc, truyền nhạc Front-end Từ 26/11/2022 đến 10/12/2022 Từ 11/12/2022 đến 24/12/2022 Từ 25/12/2022 đến 31/12/2022 Front-end: tạo giao diện trang khác danh sách hát, thể loại ca sĩ… Back-end: thực chức quản liên quan đến việc quản lý Tìm hiểu nghiên cứu thực chức gợi ý nhạc Hoàn thiện, sửa lỗi viết báo cáo MỤC LỤC ĐỀ CƯƠNG CHI TIẾT MỤC LỤC DANH MỤC HÌNH ẢNH 10 DANH MỤC BẢNG BIỂU 11 Chương GIỚI THIỆU ĐỀ TÀI 14 1.1 Tên đề tài 14 1.2 Lí chọn đề tài 14 1.3 Mô tả sản phẩm 14 1.4 Chức 14 1.5 Công nghệ sử dụng 14 1.6 Thông tin người thực đề tài 15 Chương CƠ SỞ LÝ THUYẾT 16 2.1 HTML 16 2.2 CSS 17 2.3 JavaScript 17 2.4 Thư viện ReactJS 19 2.5 NodeJS 21 2.6 ExpressJS 22 2.7 MongoDB 23 2.8 Python 23 Chương PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 25 3.1 Mơ hình hệ thống 25 3.2 Sơ đồ Use-case 26 3.3 Danh sách use-case 27 3.4 Đặc tả use-case 27 3.4.1 Use-case “Đăng nhập” 27 3.4.2 Use-case “Đăng ký” 28 3.4.3 Use-case “Đăng xuất” 29 3.4.4 Use-case “Đổi mật khẩu” 30 3.4.5 Use-case “Quản lý thông tin cá nhân” 30 3.4.6 Use-case “Quản lý danh sách phát” 31 3.4.7 Use-case “Tìm kiếm hát, ca sĩ” 32 3.4.8 Use-case “Quản lý danh sách yêu thích” 32 3.4.9 Use-case “Nghe nhạc” 33 3.4.10 Use-case “Nhận danh sách nhạc đề xuất” 34 3.4.11 Use-case “Nhận đề xuất theo hát tại” 35 3.4.12 Use-case “Quản lý danh sách tài khoản, hát, ca sĩ” 36 Chương THIẾT KẾ DỮ LIỆU 37 4.1 Sơ đồ logic 37 4.1.1 Bảng “Account” 37 4.1.2 Bảng “Song” 38 4.1.3 Bảng “Artist” 39 4.1.4 Bảng “Genre” 39 4.1.5 Bảng “Playlist” 39 Chương THIẾT KẾ GIAO DIỆN 40 5.1 Danh sách hình 40 5.2 Chi tiết hình 42 5.2.1 Màn hình “Đăng nhập” 42 5.2.2 Màn hình “Đăng ký” 43 5.2.3 Màn hình “Trang chủ” 44 5.2.4 Màn hình “Bài hát” 45 5.2.5 Màn hình “Thể loại” 46 5.2.6 Màn hình “Ca sĩ” 46 5.2.7 Màn hình “Chi tiết ca sĩ” 47 5.2.8 Màn hình “Thơng tin cá nhân” 47 5.2.9 Màn hình “Chi tiết kết tìm kiếm” 48 5.2.10 Màn hình “Quản lý” 48 5.2.11 Màn hình “Trình phát nhạc” 49 5.2.12 Màn hình “Danh sách phát tại” 50 5.2.13 Màn hình “Nhạc dành cho bạn” 51 Chương TÍNH NĂNG ĐỀ XUẤT BÀI HÁT 52 6.1 Giới thiệu tính đề xuất 52 6.1.1 Tổng quan 52 6.1.2 Phương pháp thực 52 Chương KẾT LUẬN 55 7.1 Ưu điểm 55 7.2 Hạn chế 55 7.3 Hướng phát triển 55 Chương TÀI LIỆU THAM KHẢO 56 DANH MỤC HÌNH ẢNH Hình 2.1 Ngơn ngữ HTML 16 Hình 2.2 Cấu trúc CSS 17 Hình 2.3 Phương thức hoạt động JavaScript 18 Hình 2.4 Một đoạn code trong ứng dụng sử dụng React 19 Hình 2.5 Một vài file components ứng dụng 20 Hình 2.6 Một đoạn code gọi router từ tệp định tuyến định nghĩa 22 Hình 2.7 Một đoạn code sử dụng phương thức định tuyến 22 Hình 2.8 Một đoạn code đối tượng tài khoản sở liệu 23 Hình 2.9 Một đoạn code gọi hàm xử lý sở liệu 23 Hình 3.1 Mơ hình hệ thống 25 Hình 3.2 Sơ đồ use-case tổng quát 26 Hình 4.1 Sơ đồ logic liệu 37 Hình 5.1 Hình ảnh hình “Đăng nhập” 42 Hình 5.2 Hình ảnh hình “Đăng ký” 43 Hình 5.3 Hình ảnh hình “Trang chủ” 44 Hình 5.4 Hình ảnh hình “Bài hát” 45 Hình 5.5 Hình ảnh hình “Thể loại” 46 Hình 5.6 Hình ảnh hình “Ca sĩ” 46 Hình 5.7 Hình ảnh hình “Chi tiết ca sĩ” 47 Hình 5.8 Hình ảnh hình “Thơng tin cá nhân” 47 Hình 5.9 Hình ảnh hình “Chi tiết kết tìm kiếm” 48 Hình 5.10 Hình ảnh hình “Quản lý” 48 Hình 5.11 Hình ảnh hình “Trình phát nhạc” 49 Hình 5.12 Hình ảnh hình “Danh sách phát tại” 50 Hình 5.13 Hình ảnh hình “Nhạc dành cho bạn” 51 Hình 6.1 Hình ảnh file liệu 53 Hình 6.2 Hình ảnh ma trận TF-IDF 54 Hình 6.3 Hình ảnh ma trận độ tương đồng 54 Hình 6.4 Hình ảnh kết trả truy vấn đề xuất 55 10 5.2 Chi tiết màn hình 5.2.1 Màn hình “Đăng nhập” Hình 5.1 Hình ảnh màn hình “Đăng nhập” Màn hình dùng để đăng nhập vào hệ thống, với thành phần trang đăng nhập thường thấy: ❖ Ô text để nhập E-mail ❖ Ô password để nhập Mật ❖ Nút Đăng nhập Khi bấm nút có ba trường hợp xảy ra: o Nếu thông tin để trống hệ thống hiển thị thông báo nhập đầy đủ thông tin o Nếu thông tin Email sai, hệ thống thông báo tài khoản không tồn 42 o Nếu thông tin mật sai, hệ thống thông báo sai mật ❖ Nút Tạo tài khoản: hệ thống điều hướng đến trang Đăng ký người dùng bấm vào nút ❖ Ô nhớ tên đăng nhập: để lưu tên tài khoản cho lần sau ❖ Ô quên mật khẩu: dùng để lấy lại mật 5.2.2 Màn hình “Đăng ký” Hình 5.2 Hình ảnh màn hình “Đăng ký” Màn hình dùng để đăng ký tài khoản mới, với thành phần trang đăng ký thường thấy: 43 ❖ Ô text để nhập thông tin: email ❖ Các ô password để nhập Mật nhập lại để xác nhận ❖ Nút Đăng ký Khi bấm nút có hai trường hợp xảy ra: o Nếu thông tin để trống không đúng, hệ thống báo lỗi đăng ký không thành công, mật không khớp o Nếu thông tin đầy đủ mật khớp, hệ thống tự động đăng nhập chuyển đến trang đăng nhập ❖ Nút Đăng nhập: hệ thống điều hướng đến trang Đăng nhập người dùng bấm vào nút 5.2.3 Màn hình “Trang chủ” Hình 5.3 Hình ảnh màn hình “Trang chủ” Phía phần header website, bao gồm thành phần: ❖ Thanh tìm kiếm: để người dùng nhập từ khố để tìm kiếm ❖ Trang chủ : nhấn vào điều hướng đến Trang chủ trang khác ❖ Bài hát: đến trang danh sách hát ❖ Thể loại: đến trang thể loại ❖ Ca sĩ: đển trang ca sĩ ❖ Hình đại diện tài khoản: nhấn vào để mở menu tuỳ chọn 44 Di chuyển chuột vào hát để hiển thị tuỳ chọn thêm vào danh sách phát, thêm vào danh sách yêu thích, phát hát 5.2.4 Màn hình “Bài hát” Hình 5.4 Hình ảnh màn hình “Bài hát” Màn hình danh sách Bài hát lọc theo tuỳ chọn Màn hình bao gồm phần chính: ❖ Danh sách hát hiển thị theo lọc ❖ Bộ lọc tìm kiếm theo lượt nghe, ngày phát hành Di chuyển trỏ chuột vào hát để phát, thêm vào danh sách phát… 45 5.2.5 Màn hình “Thể loại” Hình 5.5 Hình ảnh màn hình “Thể loại” Phần hiển thị danh sách thể loại, nhấn vào để chọn thể loại mong muốn để lọc Có tuỳ chọn bỏ chọn tất thể loại 5.2.6 Màn hình “Ca sĩ” Hình 5.6 Hình ảnh màn hình “Ca sĩ” Màn hình hiển thị danh sách ca sĩ với tên hình ảnh Nhấn vào để đến trang hát ca sĩ 46 5.2.7 Màn hình “Chi tiết ca sĩ” Hình 5.7 Hình ảnh màn hình “Chi tiết ca sĩ” Phần hình hình ảnh tên ca sĩ, phần danh sách hát ca sĩ 5.2.8 Màn hình “Thông tin cá nhân” Hình 5.8 Hình ảnh màn hình “Thơng tin cá nhân” Màn hình bao gồm hai mục đổi thơng tin đổi mật Đối với thơng tin có hai mục đổi là: ❖ Ảnh đại diện: click vào ảnh để chọn file cần đổi ❖ Tên hiển thị: click vào nhập tên cần đổi 47 ❖ Bấm nút “Lưu thay đổi” để xác nhận đổi Đổi mật khẩu: ❖ Nhập vào ô tương ứng ❖ Bấm nút “Đổi mật khẩu” để xác nhận đổi 5.2.9 Màn hình “Chi tiết kết tìm kiếm” Hình 5.9 Hình ảnh màn hình “Chi tiết kết quả tìm kiếm” Màn hình “Chi tiết kết tìm kiếm” hiển thị người dùng nhấn Enter thực tìm kiếm tìm kiếm Màn hình hiển thị danh sách hát, ca sĩ phù hợp với từ khố tìm kiếm 5.2.10 Màn hình “Quản lý” Hình 5.10 Hình ảnh màn hình “Quản lý” 48 Màn hình “Quản lý hát” giúp quản trị viên thêm, xoá, chỉnh sửa danh sách hát hệ thơng Màn hình bao gồm thành phần: ❖ Phía bên trái checkbox lựa chọn hát cho việc xoá hàng loại ❖ Kế bên thơng tin hát ❖ Phía bên phải tuỳ chọn sửa, xoá hát ❖ Nút hình nốt nhạc để tuỳ chọn thêm hát vào hệ thống Màn hình quản lý ca sĩ tài khoản tương tự 5.2.11 Màn hình “Trình phát nhạc” Hình 5.11 Hình ảnh màn hình “Trình phát nhạc” Màn hình “Trình phát nhạc” ln hiển thị phần website với phần: ❖ Phía bên trái thơng tin hát phát ❖ Phần nút điều khiển: Trộn danh sách phát, quay lại, dừng/phát nhạc, tiếp theo, lặp Có hiển thị thời gian phát nhạc đo tiến trình, nhấn vào để tua đến đoạn mong muốn ❖ Tiếp theo âm lượng: Bấm vào biếu tượng loa để tắt/bật tiếng Bấm vào đo để tăng/giảm âm lượng ❖ Cuối nút bấm để mở/đóng danh sách phát 49 5.2.12 Màn hình “Danh sách phát tại” Hình 5.12 Hình ảnh màn hình “Danh sách phát hiện tại” Màn hình “Danh sách phát tại” gồm ba phần chính: ❖ Phần danh sách phát với màu tối, xanh để phân biệt 50 ❖ Phần danh sách phát ❖ Phần danh sách hát đề xuất dựa theo nhạc phát Di chuyển chuột vào hát để hiển thị tuỳ chọn như: Thêm vào/xoá khỏi danh sách phát, thêm vào/xoá khỏi danh sách yêu thích 5.2.13 Màn hình “Nhạc dành cho bạn” Hình 5.13 Hình ảnh màn hình “Nhạc dành cho bạn” Tương tự với hình hiển thị khác, hình “Nhạc dành cho bạn” hiển thị hát lọc dựa vào danh sách yêu thích người dùng 51 Chương TÍNH NĂNG ĐỀ XUẤT BÀI HÁT 6.1 Giới thiệu tính đề xuất 6.1.1 Tổng quan Với phát triển nhanh chóng người công nghệ nay, hàng loại sản phẩm tạo với cạnh tranh gay gắt việc mang đến trải nghiệm người dùng tốt yếu tố quan trọng việc phát triển ứng dụng Từ hệ thống đề xuất, gợi ý (Recommendation System) phát triển rộng rãi Hệ thống đề xuất gồm có loại chính: ❖ Collaborative filtering: Ý tưởng phương pháp sử dụng liệu từ thói quen, sở thích người dùng để gợi ý cho người dùng khác Từ hình thành mối quan hệ người dùng hình thành nên hệ thống ❖ Content-based systems: Phương pháp dùng liệu từ sản phẩm thay dùng liệu từ người, hệ thống cần biết vài nhãn hay từ khố mà người dùng tương tác trước để tiến hành đề xuất sản phẩm tương tự Phương pháp em sử dụng đề tài Content-based systems dựa nội dung thể loại, ca sĩ để tiến hành đề xuất hát tương tự cho người dùng 6.1.2 Phương pháp thực Với hát đăng tải lên website, có thơng tin tên hát, danh sách thể loại, danh sách ca sĩ Với ba yếu tố ta tiến hành tổng hợp vào file liệu csv có cấu trúc sau 52 Hình 6.1 Hình ảnh file liệu Sau có file liệu, ta tiến hành xây dựng ma trận TF-IDF với công thức ❖ TF (Term Frequency): tần suất xuất từ đoạn văn Với đoạn văn có độ dài khác nhau, có từ xuất nhiều đoạn văn dài thay đoạn văn ngắn Vì thế, tần suất thường chia cho độ dài đoạn văn phương thức chuẩn hóa (normalization) TF tính cơng thức: (với t từ đoạn văn bản; f(t,d) tần suất xuất t đoạn văn d; T tổng số từ đoạn văn đó) Ứng với file liệu t thể loại/ca sĩ, d hát, T file liệu ❖ IDF (Inverse Document Frequency): tính tốn độ quan trọng từ Khi tính tốn TF, từ quan trọng nhau, có số từ tiếng Anh "is", "of", "that", xuất nhiều lại quan trọng Vì vậy, cần phương thức bù trừ từ xuất nhiều lần tăng độ quan trọng từ xuất có ý nghĩa đặc biệt cho số đoạn văn cách tính IDF: 53 ❖ ❖ (trong N tổng số đoạn văn bản; tập |{t \in D : t \in d}| số văn chứa từ t) ❖ TF-IDF tính bởi: Sau lập ma trận hàm TfidfVectorizer Python ta có trọng số thể loại, ca sĩ sau: Hình 6.2 Hình ảnh ma trận TF-IDF Tiếp theo, ta sử dụng phương pháp tính tốn độ tương đồng vector ma trận hàm cosine_similarity, từ đưa danh sách đề xuất Hình 6.3 Hình ảnh ma trận độ tương đồng Tiến hành thử đưa vào hàt để nhận danh sách hát tương tự 54 Hình 6.4 Hình ảnh kết quả trả truy vấn đề xuất Chương KẾT ḶN 7.1 Ưu điểm ❖ Vì cơng nghệ sử dụng để xây dựng giao diện ReactJS, nên ứng dụng SPA (Single Page Application) Cũng nên hạn chế việc tải lại trang, giúp nâng cao tốc độ phản hồi trải nghiệm người dùng ❖ Giao diện tối giản, thân thiện dễ sử dụng ❖ Thiết kế tương đối đẹp mắt ❖ Đáp ứng chức website nghe nhạc ❖ Hệ thống chia tách riêng biệt Client Server, dễ dàng phát triển, bảo trì nâng cấp 7.2 Hạn chế ❖ Bởi lần tìm hiểu sử dụng Python, ReactJS nên em nhiều thời gian để học hỏi tìm khắc phục lỗi xảy trình xây dựng Thuật tốn đề xuất cịn sơ sài ❖ Hiện website có trải nghiệm tốt thiết bị máy tính, chưa tương thích giao diện với hình nhỏ ❖ Website cịn đơn giản 7.3 Hướng phát triển Trong tương lai, em mong muốn phát triển tiếp sản phẩm đồ án này: ➢ Cải thiện hệ thống đề xuất ➢ Thêm tính nghe nhạc chung, voice chat, text chat ➢ Phát triển thành mạng xã hội âm nhạc, … ➢ Nâng cao bảo mật cho trang web 55 Chương TÀI LIỆU THAM KHẢO [1] HTML – CSS từ Zero tới Hero https://www.youtube.com/watch?v=R6plN3FvzFY&list=PL_VfJajZj0U9nEXa4qyfB4U5ZIYCMPlz [2] Khoá học JavaScript https://www.youtube.com/watch?v=0SJE9dYdpps&list=PL_VfJajZj0VgpFpEVFzS5Z-lkXtBe-x5 [3] Hướng dẫn xây dựng ứng dụng full stack sử dụng MERN Stack – Henry Web Dev - https://www.youtube.com/watch?v=rgFd17fyM4A [4] ReactJS 2022 https://www.youtube.com/watch?v=x0fSBAgBrOQ&list=PL_- VfJajZj0UXjlKfBwFX73usByw3Ph9Q [5] Building a movie content based recommender using tf-idf https://towardsdatascience.com/content-based-recommender-systems-28a1dbd858f5 [6] Tài liệu ReactJS – ReactJS.org - https://reactjs.org/docs/getting-started.html [7] Kho thư viện NodeJS - https://www.npmjs.com/ [8] Học lập trình Python https://toidicode.com/python-co-ban [8] Th.S Trần Anh Dũng – Chuỗi slide giảng Công nghệ Web ứng dụng - Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin 56 ... ƠN Đồ án ? ?Xây dựng website nghe nhạc với tính đề xuất hát? ?? đồ án thứ hai em triển khai môi trường web, dựa kinh nghiệm từ môn đồ án I Qua q 11 trình cố gắng tìm tịi, học hỏi kiến thức làm đồ án, ... chat đề xuất? ?? Mục tiêu: - Xây dựng website nghe nhạc đáp ứng tiêu chí: o Giao diện thân thiện, dễ sử dụng o Đáp ứng tính cần có website nghe nhạc o Có hệ thống đề xuất nhạc tương đồng với hát. .. Hạnh phúc ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: XÂY DỰNG WEBSITE NGHE NHẠC VỚI TÍNH NĂNG ĐỀ XUẤT BÀI HÁT Tên đề tài tiếng Anh: BUILDING AN MUSIC WEBSITE WITH RECOMMENDATION Cán hướng dẫn: ThS