MỞ ĐẦUNgày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là mộttrong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổchức, cũng như của các cô
Trang 1ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Giảng Viên Hướng Dẫn: TS Nguyễn Đức Hiển
Sinh Viên Thực Hiện: Trương Đình Vinh - 18IT2
Đà Nẵng, tháng 5 năm 2020
ĐẠI HỌC ĐÀ NẴNG
Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 2KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 3
Trang 3MỞ ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là mộttrong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổchức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ranhững bước đột phá mạnh mẽ
Việc tạo và phát triển các ứng dụng điện thoại để phục vụ cho các nhu cầu riêngcủa các tổ chức, công ty thậm chí các cá nhân, ngày nay, không lấy gì làm xa lạ.Với một vài thao tác đơn giản, một người bất kì có thể tải và cài đặt trên điệnthoại các ứng dụng liên quan đến lĩnh vực mà anh ta quan tâm, như là: về âmnhạc, video, mạng xã hội….v.v
Đối với các công ty, doanh nghiệp thì việc tạo và phát triển các ứng dụng trênđiện thoại thông minh là điều rất cần thiết để phát triển Thông qua những ứngdụng này, thông tin về họ cũng như các sản phẩm, dịch vụ mới của công ty sẽ đếnvới những người quan tâm, đến với khách hàng của họ một cách nhanh chóng kịpthời, tránh những phiền hà mà phương thức giao tiếp truyền thống thường gặpphải
Vì vậy em quyết định chọn đề tài: “XÂY DỰNG ỨNG DỤNG NGHE NHẠC” đềthực hiện đồ án cơ sở 3
Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 4Nhận Xét Của GVHD
………
………
………
………
………
………
………
………
………
Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 5MỤC LỤC
Trang
Chương 1 Giới thiệu 1
1.1 Tên dự án 1
1.2 Sinh viên thực hiện 1
1.3 Bối cảnh thực hiện: 1
1.4 Mục tiêu dự án 1
1.5 Phương pháp thực hiện: 1
1.6 Kế hoạch thực hiện: 2
Chương 2 Nghiên Cứu Thiết Kế 3
2.1 Ngôn ngữ và công cụ lập trình được sử dụng: 3
2.1.1 Android Studio: 3
2.1.2 Visual Studio Code (VS Code hay VSC): 3
2.1.3 XamPP: 3
2.1.4 Java (Android): 3
2.1.5 PHP (Hypertext Preprocessor): 4
2.1.6 Restful API: 4
2.2 Phân tích, tham khảo các ứng dụng, các mô hình mẫu: 5
2.2.1 Một số ứng dụng đã có: 5
2.2.2 Đúc kết: 6
2.3 Phân tích thiết kệ hệ thống website: 6
2.3.1 Các actor và phân tích chức năng: 6
2.3.2 Sơ đồ phân tích thiết kế hệ thống: 7
2.4 Cơ sở dữ liệu: 7
2.4.1 Mô tả một số bảng chính của hệ thống: 7
2.4.2 Cơ sở dữ liệu: 8 Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 6Chương 3 Xây dựng Back-end và Restful API 9
3.1 Xây dựng web back-end: 9
3.1.1 Mục đích: 9
3.1.2 Thiết kế trang web: 9
3.1.3 Một vài hình ảnh web back-end: 9
Chương 4 Xây dựng ứng dụng android 12
4.1 Mục tiêu và phân tích: 12
4.2 Xây dựng: 12
4.2.1 Sử dụng thư viện retrofit 2 của android: 12
4.2.2 Cấu trúc thư mục android: 12
4.3 Sản phẩm ứng dụng nghe nhạc 14
4.3.1 Giao diện màn hình Đăng nhập – Đăng ký: 14
4.3.2 Giao diện chính (Main Activity): 14
4.3.3 Giao diện tất cả album và tất cả playlist: 15
4.3.4 Giao diện các bài hát của album: 16
4.3.5 Giao diện các bài hát của playlist 17
4.3.6 Giao diện của phần nghe nhạc: 18
Kết luận 19 Danh mục tài liệu tham khảo 19
Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 7DANH MỤC HÌNH ẢNH
Trang
Hình 2-1 Giao diện của ứng dụng Zingmp3 5
Hình 2-3 Sơ đồ Use-case mô tả chức năng hệ thống 7
Hình 2-4 Cơ sở dữ liệu cho backend và ứng dụng 8
Hình 3-2 Giao diện trang quản lí người dùng 9
Hình 3-3 Trang quản lí bài hát 10
Hình 3-4 Trang quản lí playlist 10
Hình 3-5 Trang quản lí album 11
Hình 4-2 Android app - Giao diện đăng nhập đăng ký 14
Hình 4-3 Android app - Giao diện màn hình chính 15
Hình 4-4 Android app - Giao diện tất cả album và tất cả playlist 15
Hình 4-5 Android app - Giao diện các bài hát của album 16
Hình 4-6 Android app - Giao diện các bài hát của playlist 17
Hình 4-7 Android app - Giao diện của phần nghe nhạc 18
DANH MỤC CÁC BẢNG Trang Bảng 2-1 Cấu trúc bảng – Users 5
Bảng 2-2 Cấu trúc bảng - Song 5
Đồ án cơ sở 3 TS.Nguyễn Đức Hiển
Trang 8Chương 1 Giới thiệu
1.1 Tên dự án
Ứng dụng nghe nhạc cho điện thoại
1.2 Sinh viên thực hiện
Trương Đình Vinh - 18IT117
1.3 Bối cảnh thực hiện:
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng internet, công nghệthông tin đang ngày càng chinh phục các đỉnh cao Mạng internet là một trong những sảnphẩm có giá trị hết sức lớn lao và ngày càng trở nên là một công cụ không thể thiếu trongmọi lĩnh vực cuộc sống
Với internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn và chi phíthấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúc đầy sự khai sinh vàphát triển của thương mại điện tử và chính phủ điện từ trên khắp thể giới, làm biến đối đáng
kể bộ mặt văn hóa, nâng cao chẩt lượng cuộc sống con người
Trong những năm gần đây, do CNTT đang phát triển rất mạnh nên việc ứng dụng tin họcđời sống ngày càng được quan tâm hơn
Vì vậy em quyết định chọn đề tài: “XÂY DỰNG ỨNG DỤNG NGHE NHẠC” đề thựchiện đồ án cơ sở 3
1.4 Mục tiêu dự án
Xây dựng được back-end API service hoàn chỉnh
Xây dựng ứng dụng hoàn chỉnh sử dụng trên android từ phiên bản android 7.0 trở lên
1.5 Phương pháp thực hiện:
Tìm hiểu về các ứng dụng đã có sẵn (Zingmp3, nhaccuatui) Phân tích giao diện, chứcnăng nổi bật Từ đó, dựa vào những chức năng đã lên kế hoạch từ đầu, đúc kết, và đưa racác chức năng, yêu cầu hoàn chỉnh cho ứng dụng
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 1 | P a g e
Trang 9Sử dụng các công cụ như Visual Studio Code , Xampp, để tạo một web server back-end
kiểm thử trên localhost Sau khi hoàn chỉnh sẽ đưa lên internet
Sử dụng phần mềm Android Studio để tạo ứng dụng hoàn chỉnh chạy trên các thiết bị di
động dựa vào các API trả về từ back-end web server đã được đưa lên internet
Tuần thứ hai
(Từ ngày 18/5 đến
ngày 24/5 )
Xây dựng cơ sở dữ liệu cho back-end và ứng dụng
Phân tích thiết kế hệ thống
Các tuần còn lại Thực hiện báo cáo word, slide bằng tiếng anh, kiểm tra,
kiểm thử ứng dụng để phát hiện, sửa các lỗi…
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 2 | P a g e
Trang 10Chương 2 Nghiên Cứu Thiết Kế
2.1 Ngôn ngữ và công cụ lập trình được sử dụng:
2.1.1 Android Studio:
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát
triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại
smartphone, các tablet Android Studio được đóng gói với một bộ code editor, debugger,
các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lậpsimulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phépcác lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp
2.1.2 Visual Studio Code (VS Code hay VSC):
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS,
Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn
hảo giữa IDE và Code Editor
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự
hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, VisualStudio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác
2.1.3 XamPP:
Xampp là một mã nguồn mở máy chủ web đa nền được phát triển bởi Apache Friends,
bao gồm chủ yếu là Apache HTTP Server, MariaDB database, và interpreters dành chonhững đối tượng sử dụng ngôn ngữ PHP và Perl Xampp là viết tắt của Cross-Platform (đanền tảng-X), Apache (A), MariaDB (M), PHP (P) và Perl (P) Nó phân bố Apache nhẹ vàđơn giản, khiến các lập trình viên có thể dễ dàng tạo ra máy chủ web local để kiểm tra vàtriển khai trang web của mình Tất cả mọi thứ cần cho phát triển một trang web - Apache(ứng dụng máy chủ), Cơ sở dữ liệu (MariaDB) và ngôn ngữ lập trình (PHP) được gói gọntrong 1 tệp Xampp cũng là 1 đa nền tảng vì nó có thể chạy tốt trên cả Linux, Windows vàMac Hầu hết việc triển khai máy chủ web thực tế đều sử dụng cùng thành phần nhưXAMPP nên rất dễ dàng để chuyển từ máy chủ local sang máy chủ online
2.1.4 Java (Android):
Java là ngôn ngữ chính thức để phát triển Android Đây là ngôn ngữ có sự hỗ trợ nhiều
nhất từ Google Nó cũng là ngôn ngữ mà hầu hết các ứng dụng trên Play Store được xâydựng Nó cũng là ngôn ngữ chính thức của Android Hệ điều hành Android của Google sử
dụng Java như là cơ sở cho tất cả các ứng dụng Android.
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 3 | P a g e
Trang 112.1.5 PHP (Hypertext Preprocessor):
Thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã
lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùngcho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trangHTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C
và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữkhác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
2.1.6 Restful API:
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyênhệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng tháitài nguyên được định dạng và được truyền tải qua HTTP
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 4 | P a g e
Trang 122.2 Phân tích, tham khảo các ứng dụng, các mô hình mẫu:
Xem danh sách bài hát
Tìm kiếm bài hát theo tên bài hát, tên ca sĩ
Tương tác (yêu thích bài hát)
Trang 132.2.2 Đúc kết:
Về giao diện:
Phải đơn giản, ưa nhìn, bắt mắt, dễ sử dụng
Không quá nhiều thông tin trong một layout
Tương thích tốt với back-end api trả về
Chức năng cần có:
Danh sách bài hát
Tim kiếm bài hát theo tên bài hát
Người dùng có thể yêu thích bài hát (Like)
Nghe nhạc
Album ca sĩ
Playlist của bài hát
Quản trị viên có xem, thêm, sửa đổi, xóa bài hát (Admin)
2.3 Phân tích thiết kệ hệ thống website:
2.3.1 Các actor và phân tích chức năng:
Các actor và chức năng:
Administrator(admin):
Đăng nhập bằng quyền admin
Xem, thêm, sửa, xóa thông tin và các bài hát
Xem, sửa , xóa thông tin người dùng
Trang 142.3.2 Sơ đồ phân tích thiết kế hệ thống:
Hình 2-2 Sơ đồ Use-case mô tả chức năng hệ thống2.4 Cơ sở dữ liệu:
2.4.1 Mô tả một số bảng chính của hệ thống:
2.4.1.1 Bảng User:
iduser char 9 ID người dùng (User ID)Gmail varchar 50 Gmail của người dùngPassword varchar 30 Mặt khẩu của người dùngfullname varchar 30 Họ và tên của người dùng
Bảng 2-1 Cấu trúc bảng – Users
2.4.1.2 Bảng bài hát (Song):
Idbaihat Char 9 ID bài hát
Idalbum Char 100 ID album
Idplaylist Char 9 ID playlist
Hinhbaihat Varchar Ảnh bài hát
Tenbaihat Varchar Tên bài hát
Tencasi Varchar Tên ca sĩ
Linkbahat Varchar Link của bài hát
Luotthich int Lượt thích của bài hát
Bảng 2-2 Cấu trúc bảng bài hát- Song
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 7 | P a g e
Trang 152.4.2 Cơ sở dữ liệu:
Hình 2-3 Cơ sở dữ liệu cho backend và ứng dụng
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 8 | P a g e
Trang 16Chương 3 Xây dựng Back-end và Restful API
3.1 Xây dựng web back-end:
3.1.1 Mục đích:
Thiết kế giao diện dành cho quản trị viên (admin) với các chức năng
Thêm, sửa , xóa bài hát
Sửa thông tin, xóa người dùng
Quản lí album
Quản lí playlist
3.1.2 Thiết kế trang web:
Xây dựng các trang:
Quản lí danh sách người dùng
Sửa thông tin
3.1.3 Một vài hình ảnh web back-end:
Hình 3-4 Giao diện trang quản lí người dùng
Trang quản lí người dùng bao gồm:
- Nút sửa, cập nhập thông tin
- Form để thêm cũng như sửa thông tin người dùng
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 9 | P a g e
Trang 17Hình 3-5 Trang quản lí bài hát
Trang quản lí bài hát bao gồm:
- Bảng thống kê danh sách bài hát hiện có
- Form để upload bài hát
Hình 3-6 Trang quản lí playlist
Trang quản lí playlist bao gồm:
- Bảng thống kê danh sách playlist hiện có
- Form để upload playlist
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 10 | P a g e
Trang 18Hình 3-7 Trang quản lí album
Trang quản lí album bao gồm:
- Bảng thống kê danh sách album hiện có
- Form để upload album
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 11 | P a g e
Trang 19Chương 4 Xây dựng ứng dụng android
4.1 Mục tiêu và phân tích:
- Xây dựng sản phẩm ứng dụng android hoàn chỉnh cho người dùng
- Sản phẩm chỉ dành cho người dùng không dành cho quản trị viên thực hiện các thao tác quản lí hệ thống
- Ứng dụng có nhiều chức năng đa dạng dễ sử dụng
- Ứng dụng sẽ sử dụng restful api để thực hiện các tác vụ cũng như lấy thông tin từ cơ sở dữ liệu về
4.2 Xây dựng:
4.2.1 Sử dụng thư viện retrofit 2 của android:
Cài đặt Retrofit và Gson cho dự án (project) android:
- Đưa các implementation sau vào file build.gradle (app) của project:
- Các implementation trên bao gồm:
Thư viện Retrofit 2
Thư viện Gson
Thư viện okhttp3
4.2.2 Cấu trúc thư mục android:
4.2.2.1 Các Activity (7 Activities):
- Đăng nhập : LoginActivity.
- Đăng ký: RegisterActivity.
- Màn hình chính: MainActivity.
- Danh sách tất cả album: DanhsachtatcaalbumActivity.
- Danh sách tất cả playlist: DanhsachtatcaplaylistActivity.
- Danh sách bài hát: DanhsachbaihatActivity.
- Play nhạc: PlaynhacActivity.
4.2.2.2 Adapter package (11 Adapters):
- Chứa các lớp adapter (Adapter Class) của Recycler View:
- Bao gồm:
o AlbumAdapter – Danh sách album hằng ngày.
o AllAlbumAdapter - Danh sách tất cả các album.
o BaihathotAdapter – Danh sách các bài hát được yêu thích nhất.
o BannerAdapter – Quảng cáo.
o DanhsachbaihatAdapter – Danh sách các bài hát.
o DanhsahcacplaylistAdapter – Danh sách các playlist.
o MainviewpagerAdapter
o PlaylistAdapter – Danh sách các playlist hằng ngày.
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 12 | P a g e
Trang 20o PlaynhacAdapter – Danh sách các hát trong màn hình nghe nhạc.
o SearchAdapter – Tìm kiếm bài hát.
o ViewPagerplaylistnhac
4.2.2.3 Fragment package (9 Fragments):
- Các Fragment hỗ trợ cho thanh điều hướng dưới của MainActivity
(Fragment_trang_chu ,Fragment_tim_kiem và Fragment_canhan ).
- Các Fragment hỗ trợ cho PlaynhacActivity.(Fragment_play_danhsach_bai_hat và
Fragment_dia_nhac).
- Fragment hỗ trợ cho DanhsachtatcaalbumActivity: Fragment_album_hot.
- Fragment hỗ trợ cho DanhsachtatcaplaylistActivity:Fragmentplaylist
- Fragment hỗ trợ cho BannerAdapter:Fragment_Banner.
4.2.2.4 Model package (4 Models):
- Các model chịu trách nhiệm lưu trữ thông tin, xử lí thông tin trả về và đưa lên
- Một số các model chính như:
Album: Thông tin của album
Baihat:Thông tin của bài hát.
Playlist:Thông tin của playlist.
QuangCao:thông tin của quảng cáo
4.2.2.5 APIRetrofitclient package:
- Chứa đổi tượng Retrofit (RetrofitClient)
- Thực hiện các request đến serve
4.2.2.6 APIServices package (11 Services) :
4.2.2.7 Thư mục resources (res folder):
Chương 5 Anim folder: các animation (Hoạt hình động)
Chương 6 Drawble folder: hình ảnh, icon cho giao
diện.
Chương 7 Layout folder: các giao diện của các activity,
item của recycler view.
Chương 8 Menu folder: giao diện menu.
Chương 9 Values folder: các giá trị màu sắc, phong
cách và biến string lưu trữ.
Đồ án cơ sở 3 – Ứng dụng nghe nhạc cho điện thoại android 13 | P a g e