Tải bản đầy đủ (.docx) (38 trang)

Website nghe nhạc trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 38 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG
TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1
ĐỀ TÀI: WEBSITE NGHE NHẠC TRỰC TUYẾN

Lớp: SE121.N21.PMCL
Giảng viên hướng dẫn: Ths Trần Thị Hồng Yến
Nhóm sinh viên thực hiện:
Đặng Hải Hoàng Sơn 19522131
Trần Đức Tâm

19522166


Tp.HCM, ngày 1 tháng 7 năm
2023

LỜI CẢM ƠN
Trước hết, nhóm chúng em xin gửi lời cảm ơn đến Trường Đại
học Công nghệ thông tin – ĐHQGTPHCM và đến cô Trần Thị
Hồng Yến là giảng viên hướng dẫn trực tiếp đã tạo điều kiện để
nhóm chúng em hồn thành đồ án 1 - Chủ đề website nghe
nhạc trực tuyến.
Trong khoảng thời gian thực hiện đồ án, nhóm chúng em đã
học hỏi thêm được nhiều kiến thức, kinh nghiệm, biết được
thêm về nhiều cơng nghệ mới. Nhóm chúng em đã vận dụng
những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc
học hỏi và nghiên cứu những kiến thức mới. Từ đó vận dụng tối


đa những gì đã học hỏi được để hoàn thành báo cáo đồ án này.
Mặc dù nhóm chúng em đã cố gắng hồn thành song báo cáo
của nhóm chúng em chắc chắn khơng chắn khỏi những thiếu
xót, chúng em rất mong nhận được sự thơng cảm và góp ý
chân thành tùy q thầy cơ. Nhóm chúng em xin chân thành
cảm ơn.
Nhóm sinh viên thực hiện
Đặng Hải Hoàng Sơn - Trần Đức Tâm


Mục lục
CHƯƠNG 1: GIỚI THIỆU........................................................................................................................5
1.1 Đặt vấn đề...................................................................................................................................5
1.2 Giải pháp.....................................................................................................................................5
1.3 Mục tiêu đề tài............................................................................................................................5
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.............................................................................................................7
1.

HTML.........................................................................................................................................7

2.

CSS.............................................................................................................................................8

3.

Tailwind.....................................................................................................................................9

4.


Typescript................................................................................................................................10

5.

PHP..........................................................................................................................................11

6.

Laravel Framework.................................................................................................................12

7.

Remix.......................................................................................................................................13

CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU..........................................................................................14
3.1 Class diagram............................................................................................................................14
3.2 Danh sách người dùng..............................................................................................................14
3.3 Danh sách các Usecase..............................................................................................................15
3.3.1 User (khách hàng)..............................................................................................................15
3.3.2 Đặc tả Use-case..................................................................................................................16
CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU................................................................................................21
4.1 Danh sách các quan hệ..............................................................................................................21
4.1.1 Bảng user............................................................................................................................21
4.1.2 Bảng playlist.......................................................................................................................21
4.1.3 Bảng artist..........................................................................................................................22
4.1.4

Bảng song....................................................................................................................22

4.1.5 Bảng comment...................................................................................................................23

4.1.6 Bảng history.......................................................................................................................23
4.1.7 Bảng notification................................................................................................................23
4.2 Kiến trúc hệ thống.....................................................................................................................24
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN.......................................................................................................25
5.1 Đăng nhập.................................................................................................................................25
5.2 Màn hình chính.........................................................................................................................26
5.3 Màn hình một danh sách bài hát..............................................................................................27
5.4 Màn hình một bài hát...............................................................................................................28
5.5 Tìm kiếm....................................................................................................................................29


5.6 Upload bài hát...........................................................................................................................30
5.7 Tạo danh sách bài hát...............................................................................................................31
5.8 Màn hình thơng tin bản thân....................................................................................................32
5.9 Màn hình sửa thơng tin............................................................................................................33
CHƯƠNG 6: KẾT LUẬN........................................................................................................................34
6.1 Tổng kết........................................................................................................................................34
6.2 Khó khăn...................................................................................................................................34
6.3 Hạn chế......................................................................................................................................34
6.4 Hướng phát triển......................................................................................................................34
TÀI LIỆU THAM KHẢO.........................................................................................................................35


CHƯƠNG 1: GIỚI THIỆU
1.1 Đặt vấn đề
Âm nhạc là một trong những ngành công nghiệp lớn nhất trên thế giới, và
hàng triệu người trên khắp thế giới đều yêu thích và nghe nhạc hàng ngày. Vì
vậy, nghiên cứu về hệ hỗ trợ quyết định là rất cần thiết và có tính ứng dụng cao
trong thực tế.
Việc xây dựng một hệ thống gợi ý bài hát sẽ giúp người dùng có thể tìm

thấy những bài hát mới, phù hợp với sở thích của họ. Ngồi ra hệ thống có thể
cung cấp cho người dùng danh sách các bài hát mà họ có thể thích dựa trên các
yếu tố như sở thích âm nhạc, lịch sử nghe nhạc, thời gian nghe nhạc, v.v.
1.2 Giải pháp
Để giải quyết vấn đề trên thì nhóm tụi em đã phát triển
một website nghe nhạc trực tuyến. Website này sẽ cung cấp
cho người dùng một nền tảng trực tuyến, tiện lợi, hiệu quả, giúp
người dùng

có thể nghe nhạc một cách dễ dàng và nhanh

chóng.
1.3 Mục tiêu đề tài
1.3.1 Lý thuyết
 Tìm hiểu và nghiên cứu về Lavarel, PHP, Tailwind, Remix
React.
 Nắm rõ các thao tác trên công cụ lập trình Visual studio
code.
 Nghiên cứu các webiste nghe nhạc hiện có trên thị trường.
1.3.2 Mục tiêu
 Thiết kế giao diện đẹp mắt, bắt mắt và dễ sử dụng.
 Đảm bảo tính năng an tồn và bảo mật.
 Tối ưu hóa cơng cụ tìm kiếm.


 Người dùng dễ dàng nghe nhạc.
 Người dung có thể đăng bài hát mà mình thích hoặc mình
sáng tác.
 Cập nhật các bài hát mới.
1.3.3 Phạm vi, quy mô

- Phạm vi môi trường: Triển khai ứng dụng trên webite
- Đối tượng sử dụng: Tất cả các đối tượng có nhu cầu nghe
nhạc.
- Phạm vi chức năng:
 Người dùng nghe được nhạc.
 Người dùng có thể sao chép link nhạc.
 Có thể upload các bài nhạc mình thích/sáng tác.
1.3.4 Phương pháp nghiên cứu:
- Phương pháp làm việc: Làm việc nhóm 2 thành viên thơng qua
2 hình thức offline và online dưới sự hướng dẫn của giảng viên.
- Phương pháp nghiên cứu:
 Khảo sát và nghiên cứu nhu cầu nghe nhạc của mọi người.
 Nghiên cứu các tài liệu và công nghệ liên quan.
 Kiểm tra, tham khào các website nghe nhạc như
soundcloud, spotify,… để tối ưu hóa trang web.
- Phương pháp cơng nghệ:
 Tìm hiểu các ngơn ngữ và framework liên quan đến đề tài
 Xây dựng giao diện web để tương tác người dùng và nhận
phản hồi, sửa chữa nếu cần thiết.
 Tìm hiểu các thư viện hỗ trợ cho dự án.





CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1. HTML
HTML là viết tắt của cụm từ Hypertext Markup
Language (tạm dịch là Ngôn ngữ đánh dấu siêu văn bản).
HTML được sử dụng để tạo và cấu trúc các thành phần trong

trang web hoặc ứng dụng, phân chia các đoạn văn, heading,
titles, blockquotes… và HTML khơng phải là ngơn ngữ lập
trình.
Một tài liệu HTML được hình thành bởi các phần tử HTML
(HTML Elements) được quy định bằng các cặp thẻ (tag và
attributes). Các cặp thẻ này được bao bọc bởi một dấu ngoặc
ngọn (ví dụ <html>) và thường là sẽ được khai báo thành
một cặp, bao gồm thẻ mở và thẻ đóng. Ví dụ, chúng ta có
thể tạo một đoạn văn bằng cách đặt văn bản vào trong cặp
tag mở và đóng văn bản



Ưu điểm:


o Được sử dụng rộng rãi, có rất nhiều nguồn tài nguyên
hỗ trợ và cộng đồng sử dụng lớn.
o Học đơn giản và dễ hiểu.
o Mã nguồn mở và hoàn tồn miễn phí.
o Markup gọn gàng và đồng nhất.
o Tiêu chuẩn thế giới được vận hành bởi World Wide
Web Consortium (W3C).
o Dễ dàng tích hợp với các ngơn ngữ backend như PHP,
Python…
Khuyết điểm:
o Được dùng chủ yếu cho web tĩnh. Đối với các tính
năng động như update hay realtime thời gian thực,
bạn cần sử dụng JavaScript hoặc ngôn ngữ backend
bên thứ 3 như PHP.
o Một số trình duyệt chậm hỗ trợ tính năng mới.


2. CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một
ngơn ngữ được sử dụng để tìm và định dạng lại các phần tử
được tạo ra bởi các ngơn ngữ đánh dấu (HTML). Nói ngắn gọn
hơn là ngôn ngữ tạo phong cách cho trang web.


Mối tương quan giữa HTML và CSS rất mật thiết. HTML là
ngôn ngữ markup (nền tảng của site) và CSS định hình
phong cách (tất cả những gì tạo nên giao diện website),
chúng là không thể tách rời.

3. Tailwind
Tailwind là một utility-first CSS framework giúp cho bạn
xây dựng giao diện người dùng một cách nhanh nhất.
Tailwind CSS được phát hành lần đầu tiên vào tháng 10/2019
được phát triển bởi Adam Wathan. Nếu so sánh với các nền
tảng

lập

trình

CSS

khác

như

Bootstrap,


Materialize,

Foundation, Material Design… thì giữa chúng có điểm chung
với nhau.


Ưu điểm:


Xây dựng giao diện chỉ cần khai báo class trên file html



Chỉ xuất ra những file css chứa những class đã sử dụng
trong giao diện.



Dễ dàng thiết lập Responsive ngay trên file html



Hỗ trợ tương tác hover, focus… ngay trên class html



Tối ưu những cấu trúc html css có tính lặp lại




Định nghĩa thêm class mới được phối hợp bởi các class có
sẵn trong tailwind



Hỗ trợ chế độ tối Dark Mode



Dễ dàng mở rộng, chỉnh sửa và biến đổi



Tăng tốc độ code với Extension thông minh trên VS Code.

4. Typescript
Typescript Là một ngôn ngữ được Microsoft tặng free cho
chúng ta, nền tảng của TypeScript ít nhiều cũng có sự liên
quan đến JavaScript vì nó là một ngơn ngữ mã nguồn mở của
JavaScript. Vai trò của TypeScript là dùng để thiết kế và xây
dựng các dự án ứng dụng quy mơ lớn mang tính chất phức
tạp.


TypeScript được xem là một phiên bản nâng cao hơn của
JavaScript vì nó được thiết kế thêm nhiều chức năng tiện lợi
hơn, cải tiến hơn từ những điểm yếu của JavaScript như các
lớp hướng đối tượng và Static Structural typing, bên cạnh đó
TypeScript cịn có thể hoạt động rộng rãi cho các ứng dụng

của ngôn ngữ Angular2 và Nodejs.

Ưu điểm:
 Thuận tiện và hồn tồn miễn phí
 Thao tác nhanh chóng và đơn giản
 Tái cấu trúc
 Giảm tỷ lệ mắc lỗi trong hệ thống
 Hợp nhất mã đơn giản

Nhược điểm:
 Bắt buộc dùng biên dịch
 Bước thiết lập cồng kềnh
 Chỉ là phần ngôn ngữ mở rộng hỗ trợ.

5. PHP


Ngôn ngữ PHP là từ viết tắt của Personal Home Page nay
đã chuyển thành Hypertext Preprocessor. Thuật ngữ này là
một dạng mã lệnh hoặc một chuỗi ngôn ngữ kịch bản được
dùng để phát triển các ứng dụng web chạy trên máy chủ. Ki
các lập trình viên PHP viết chương trình, chuỗi lệnh sẽ được
xử lý trên server sau đó sinh ra mã HTML trên client. Dựa vào
đó, các ứng dụng trên website sẽ hoạt động một cách dễ
dàng.

Ưu điểm:
- PHP là một mã nguồn mở nên rất dễ dàng cài đặt.
- Là một ngôn ngữ dễ học.
- Khả năng bảo mật cao.


6. Laravel Framework
Laravel là một trong những PHP Web Framework phổ biến
nhất theo mẫu MVC (Model-View- Controller). Được tạo bởi
Taylor Otwell, Laravel framework là nguồn mở và miễn phí


giúp bạn đưa ra các sản phẩm chất lượng cao. Các code sẽ
được giảm thiểu đi, nhưng vẫn đạt tiêu chuẩn ngành, giúp
bạn tiết kiệm được hàng trăm giờ đồng hồ dành cho việc
phát triển.

Ưu điểm:
 Sử dụng các tính năng mới nhất của PHP
 Tài liệu tuyệt vời
 Tích hợp với dịch vụ mail
 Hỗ trợ cache backend phổ biến
 Cơng cụ tích hợp cho dịng lệnh - Artisan
 Gói và nguồn lực sẵn có
 Giảm chu kỳ phát triển sản phẩm
 Container IoC
 Reverse Routing
 Eloquent ORM
Nhược điểm:
 Khơng hỗ trợ tính năng thanh tốn
 Thiếu sự liên tục giữa các phiên bản
 Một số nâng cấp có thể có vấn đề


 Thường không cung cấp sự phong phú cho ứng dụng

di động
7. Remix
Remix là một framework full-stack dựa trên React và Node
mang đến cho bạn khả năng phát triển web hiện đại mà
không bỏ qua các nguyên tắc cơ bản. Remix cung cấp bộ nhớ
đệm HTTP có sẵn, hỗ trợ thẻ meta và hiển thị máy chủ với
trạng thái code thích hợp. Nó cũng cung cấp cho bạn các
nested route và một cách dễ dàng để load data.


CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ U CẦU
3.1 Class diagram

Hình 3.1: Bản vẽ sơ đồ lớp của dự án
3.2 Danh sách người dùng
Bảng 3.1: Bảng danh sách người dùng
#
1

Người dùng
Khách hàng

Mơ tả
Khách hàng có thể đăng ký, đăng nhập,
xem album, bài hát, nghe nhạc, tìm
kiếm bài hát, theo dõi,…


3.3 Danh sách các Usecase
3.3.1 User (khách hàng)

Bảng 3.2: Bảng chức năng của khánh hàng
#

Chức năng

Mô tả

1

Đăng ký

Dành cho người mới, cho phép tự
đăng ký tài khoản

2

Đăng nhập

3

Tìm kiếm sản
phẩm

Dành cho người dùng đã có tài
khoản, cho phép người dùng đăng
nhập vào website.
Chức năng cho phép nguồi dùng
tìm kiếm bài hát theo tên

3


Thêm bài hát

Chức năng cho phép người dùng
thêm bài hát

4

Thêm playlist

Cho phép người dùng tạo danh
sách bài hát mới

5

Nghe nhạc

Cho phép người dùng nghe nhạc.

6

Bình luận

Cho phép người dùng bình luận.


3.3.2 Đặc tả Use-case
Bảng 3.3: Đặc tả Use-case nghe nhạc
Mã Use-case


UC-1

Tên Use-case

Nghe nhạc

Tác nhân

Người dùng

Mơ tả tóm tắt

Người dùng ấn vào nút nghe nhạc

Điều kiện trước

Truy cập vào website.

Điều kiện sau

N/A

Dịng sự kiện
chính

Người dùng ấn nút nghe nhạc thì nhạc sẽ
được phát.
Và khi ấn nút lần nữa thì nhạc sẽ dừng.

Dòng sự kiện

phụ
Bảng 3.4: đặc tả Use-case thêm bài hát mới
Mã Use-case

UC-2

Tên Use-case

Thêm bài hát mới

Tác nhân

Người dùng

Mơ tả tóm tắt

Người dùng tiến hành upload bài hát

Điều kiện trước

Truy cập vào website.

Điều kiện sau

N/A

Dịng sự kiện
chính

- Người dùng ấn nút vào phần ‘upload’ trên

header
- Người dùng thêm các thông tin/file nhạc
mong muốn.
- Xác nhận thêm bài hát mới


Dòng sự kiện
phụ

Bảng 3.5: Đặc tả Use-case thêm danh sách bài hát mới
Mã Use-case

UC-3

Tên Use-case

Thêm danh sách bài hát mới

Tác nhân

Người dùng

Mơ tả tóm tắt

Người dùng tiến hành upload bài hát

Điều kiện trước

Truy cập vào website.


Điều kiện sau

N/A

Dịng sự kiện
chính

- Người dùng ấn nút vào phần ‘create
playlist’ trên header
- Người dùng thêm file ảnh đại diện cho
playlist.
- Người dùng thêm thể loại cho playlist.
- Người dùng thêm tên cho playlist.
- Xác nhận tạo playlist mới.

Dòng sự kiện
phụ


Bảng 3.6: Đặc tả Use-case bình luận
Mã Use-case

UC-4

Tên Use-case

Bình luận

Tác nhân


Người dùng

Mơ tả tóm tắt

Người dùng viết bình luận về một bài hát

Điều kiện trước

- Truy cập vào website.
- Truy cập vào page bài hát.

Điều kiện sau

N/A

Dịng sự kiện
chính

- Người dùng ấn nút vào thanh bình luận
phía dưới phần hình nền bài hát.
- Người dùng viết bình luận
- Xác nhận bình luận.

Dịng sự kiện
phụ

- Phần mình bình luận xuất hiện.




×