BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN MÃ SỐ 7480201 D A T N Đ H N G U Y Ễ N A N H T Ú X Â Y D Ự N G Ứ N G D Ụ N G C H IA S Ẻ T R ÍC H D Ẫ N H[.]
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT - -
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 7480201
Trang 2KHOA CÔNG NGHỆ THÔNG TIN -⁂ -
ĐỒ ÁN TỐT NGHIỆP
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH
ĐỀ TÀI
Xây dựng ứng dụng chia sẻ trích dẫn hay mỗi ngày
trên nền tảng Android
SINH VIÊN THỰC HIỆN
NGUYỄN ANH TÚ
MÃ SINH VIÊN: 1621050292 LỚP: DCCTKH61A
HÀ NỘI - 2021
CÁN BỘ HƯỚNG DẪN
GV.ThS ĐẶNG VĂN NAM
BỘ MÔN KHOA HỌC MÁY TÍNH
LỚP: DCCTKH61A
Trang 3MỤC LỤC
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 4
DANH MỤC BẢNG BIỂU 6
LỜI CẢM ƠN 7
LỜI NÓI ĐẦU 8
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 9
1.1 Giới thiệu chung 9
1.2 Đặt vấn đề 9
1.3 Lý do chọn đề tài 10
1.4 Mục tiêu của đề tài 11
1.5 Nội dung nghiên cứu 11
1.6 Phạm vi của đề tài 11
CHƯƠNG 2: PHÂN TÍCH – THIẾT KẾ HỆ THỐNG 12
2.1 Mô tả hệ thống chia sẻ trích dẫn hay 12
2.2 Xác định đối tượng (tác nhân) tương tác với hệ thống 13
2.3 Xác định yêu cầu chức năng 14
2.3.1 Xác định các chức năng chi tiết và gom nhóm các chức năng 14
2.3.2 Xây dựng biểu đồ phân rã chức năng 16
2.4 Xây dựng các mô hình luồng dữ liệu 17
2.4.1 Ký hiệu sử dụng 17
Trang 42.6.1 Ký hiệu sử dụng 24
2.6.2 Lập biểu đồ quan hệ thực thể 24
2.6.3 Mối liên kết trong biểu đồ quan hệ thực thể 24
2.7 Xác định các yêu cầu phi chức năng 26
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 27
3.1 Hệ điều hành Android 27
3.1.1 Giới thiệu 27
3.1.2 Kiến trúc của hệ điều hành Android 28
3.1.3 Ưu nhược điểm của hệ điều hành Android 29
3.2 Ngôn ngữ lập trình Java 30
3.2.1 Lịch sử 30
3.2.2 Đặc điểm 30
3.3 Firebase 32
3.3.1 Firebase là gì? 32
3.3.2 Lịch sử phát triển 33
3.3.3 Cách thức hoạt động của Firebase 33
3.3.4 Ưu nhược điểm của Firebase 34
3.4 Android Studio 38
3.4.1 Giới thiệu chung 38
3.4.2 Những tính năng chính 38
CHƯƠNG 4: XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG 39
4.1 Thiết kế giao diện 39
4.2 Firebase Realtime Database 40
4.3 Thiết kế giao diện ứng dụng 46
4.3.1 Giao diện đăng ký, đăng nhập 46
Trang 54.3.2 Giao diện trang chủ 49
4.3.3 Giao diện trang cá nhân 50
4.3.4 Giao diện các người dùng 51
4.3.5 Giao diện nhắn tin 52
4.3.6 Giao diện đăng bài viết 53
4.3.7 Giao diện sửa thông tin cá nhân 54
4.4 Kiểm thử và đánh giá hệ thống 55
4.4.1 Kiểm thử chức năng đăng ký, đăng nhập 55
4.4.2 Kiểm thử chức năng đăng bài viết 56
4.4.3 Kiểm thử chức năng sửa thông tin cá nhân 56
4.4.4 Kiểm thử chức năng tạo nhóm chat 57
4.4.5 Kiểm thử chức năng thích, bình luận, chia sẻ 57
ĐÁNH GIÁ – KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 60
Trang 6DANH MỤC HÌNH ẢNH
Hình 2 - 1 Sơ đồ phân rã chức năng 16
Hình 2 - 2 Ký hiệu sử dụng 17
Hình 2 - 3 Cách truy xuất dữ liệu 17
Hình 2 - 4 Biểu đồ luồng dữ liệu mức ngữ cảnh (mức 0) 17
Hình 2 - 5 Biểu đồ luồng dữ liệu mức đỉnh (mức 1) 18
Hình 2 - 6 Mức dưới đỉnh (mức 2) của chức năng Quản lý tài khoản 18
Hình 2 - 7 Mức dưới đỉnh (mức 2) của chức năng Quản lý bài viết chung 19
Hình 2 - 8 Mức dưới đỉnh (mức 2) của chức năng Quản lý bài viết cá nhân 19
Hình 2 - 9 Mức dưới đỉnh (mức 2) của chức năng Quản lý hồ sơ cá nhân 20
Hình 2 - 10 Mức dưới đỉnh (mức 2) của chức năng Quản lý tin nhắn 20
Hình 2 - 11 Mức dưới đỉnh (mức 2) của chức năng Quản lý tin nhắn nhóm 21
Hình 2 - 12 Ký hiệu sử dụng trong biểu đồ quan hệ thực thể 24
Hình 2 - 13 Lược đồ quan hệ thực thể 24
Hình 3 - 1 Biểu tượng của hệ điều hành Android 27
Hình 3 - 2 Kiến trúc của hệ điều hành Android 29
Hình 3 - 3 Quá trình biên dịch qua máy ảo JVM 31
Hình 3 - 4 Biểu tượng của Firebase 33
Hình 3 - 5 Minh họa sự kết hợp của Firebase và Google Cloud Platform 35
Hình 3 - 6 Biểu tượng API Cloud Vision của Google 37
Hình 4 - 1 Cơ sở dữ liệu dạng JSON 40
Hình 4 - 2 Các model ánh xạ tương ứng 40
Trang 7Hình 4 - 3 Dữ liệu của Các tin nhắn trong cơ sở dữ liệu 41
Hình 4 - 4 Dữ liệu của Danh sách nhóm tin nhắn trong cơ sở dữ liệu 41
Hình 4 - 5 Dữ liệu của Các bài viết trong cơ sở dữ liệu 42
Hình 4 - 6 Dữ liệu của Các người dùng trong cơ sở dữ liệu 42
Hình 4 - 7 Quản lý người dùng với Firebase Authentication 43
Hình 4 - 8 Quản lý tài nguyên với Firebase Storage 43
Hình 4 - 9 Lấy dữ liệu tất cả người dùng 44
Hình 4 - 10 Cập nhật bài viết không ảnh 44
Hình 4 - 11 Cấp quyền truy cập vào máy ảnh và kho lưu trữ 45
Hình 4 - 12 Xóa ảnh trong bài viết 45
Hình 4 - 13 Giao diện đăng ký, đăng nhập 46
Hình 4 - 14 Giao diện chức năng đăng ký 47
Hình 4 - 15 Giao diện chức năng đăng nhập 48
Hình 4 - 16 Giao diện trang chủ 49
Hình 4 - 17 Giao diện trang cá nhân 50
Hình 4 - 18 Giao diện Các người dùng 51
Hình 4 - 19 Giao diện nhắn tin 52
Hình 4 - 20 Giao diện đăng bài viết 53
Hình 4 - 21 Giao diện sửa thông tin cá nhân 54
Trang 8DANH MỤC BẢNG BIỂU
Bảng 2 - 1 Thiết kế cấu trúc bảng người dùng 21
Bảng 2 - 2 Thiết kế cấu trúc bảng bài viết 22
Bảng 2 - 3 Thiết kế cấu trúc bảng tin nhắn 22
Bảng 2 - 4 Thiết kế cấu trúc bảng danh sách nhắn tin 22
Bảng 2 - 5 Thiết kế cấu trúc bảng bình luận 23
Bảng 2 - 6 Thiết kế cấu trúc các nhóm nhắn tin 23
Bảng 2 - 7 Thiết kế cấu trúc bảng tin nhắn nhóm 23
Bảng 4 - 1 Kiểm thử chức năng đăng ký, đăng nhập 55
Bảng 4 - 2 Kiểm thử chức năng đăng bài viết 56
Bảng 4 - 3 Kiểm thử chức năng Sửa thông tin cá nhân 56
Bảng 4 - 4 Kiểm thử chức năng tạo nhóm nhắn tin 57
Bảng 4 - 5 Kiểm thử chức năng thích, bình luận, chia sẻ 57
Trang 9LỜI CẢM ƠN
Em xin chân thành cảm ơn trường Đại học Mỏ - Địa chất, khoa Công nghệ thông tin và bộ môn Khoa học máy tính đã tạo điều kiện cho em hoàn thành đồ án tốt nghiệp Nhờ đồ án tốt nghiệp này em đã có thêm rất nhiều kinh nghiệm quý báu Những kinh nghiệm đó sẽ giúp em nhiều trong công việc sau này
Em cũng xin cảm ơn các thầy, cô trong Bộ môn, trong Khoa và trong Trường đã tận tình giảng dạy và trang bị cho em những kiến thức cần thiết Những kiến thức này
đã hỗ trợ cho em rất nhiều trong việc hoàn thành đồ án tốt nghiệp
Hơn cả, em xin cảm ơn thầy giáo - Ths Đặng Văn Nam đã hướng dẫn, cung cấp một số tài liệu giúp em hoàn thành đồ án tốt nghiệp Những điều thầy chỉ dẫn giúp em
có được hướng đi trong công việc sắp tới
Vì thời gian có hạn và kinh nghiệm còn thiếu nên đồ án của em khó tránh khỏi những thiếu sót Em mong nhận được sự chỉ bảo, đóng góp ý kiến của thầy, cô để em
có thêm kinh nghiệm giúp hoàn thành tốt đề tài của mình hơn
Một lần nữa em xin chân thành cảm ơn
Sinh viên thực hiện NGUYỄN ANH TÚ
Trang 10LỜI NÓI ĐẦU
Trong thời đại hiện nay, mạng xã hội là một nơi gần như không thể tách rời đối với hầu hết mọi người và chúng phục vụ nhiều mục đích, nhu cầu khác nhau của mỗi người Chính vì mạng xã hội quá mở khiến cho nhiều người thường xuyên bị xao lãng vào những thứ không mang lại nhiều giá trị thiết thực cho cuộc sống của chính họ
Với mong muốn hưởng ứng sự kêu gọi, tuyên truyền, xây dựng thói quen đọc sách cho đại bộ phận người dân Việt Nam để đưa đất nước ta trở thành quốc gia khởi nghiệp trong những thập kỷ tiếp theo, bắt kịp với sự phát triển ngày càng nhanh của khoa học công nghệ và mức sống, mức thu nhập ngày càng tăng cao của xã hội
Khác với mạng xã hội tin tức hay mạng xã hội hình ảnh thì mạng xã hội sách là nơi tập trung giao lưu về chủ đề sách, những trải nghiệm thú vị học được khi đọc một cuốn sách nào đó hay một hành động cụ thể, kinh nghiệm thực tế từng trải qua để kể lại, chia sẻ lại cho mọi người để học hỏi và cùng nhau phát triển đi lên
Ngoài ra, mạng xã hội sách còn là nơi để mọi người review những cuốn hay, phân tích, bàn luận hay phản biện với nhau về những giá trị hiện tại mà cuốn sách mang lại cho người đọc, tập trung vào một hoặc một số thứ tích cực nhất định thật sự có ích lợi lớn cho những người sử dụng
Và ứng dụng chia sẻ trích dẫn nhỏ này là một phần trong những mong muốn xây dựng một cộng đồng mạng xã hội sách cho người Việt Nam
Nhờ vào những trích dẫn ngắn, nhỏ, tinh túy, tâm đắc cũng có thể khơi dậy sự hiếu kỳ, sự tò mò, ham muốn thèm đọc, mở lối cho những bế tắc, những bài toán mà cuộc sống đặt ra cần phải giải quyết của cá nhân mỗi người
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu chung
▪ Tên đề tài bằng tiếng việt: Xây dựng ứng dụng chia sẻ trích dẫn hay mỗi ngày trên nền tảng Android
▪ Tên đề tài bằng tiếng anh: Build apps to share good quotes every day on Android
▪ Thời gian thực hiện: 2 tháng (26/04/2021 – 27/06/2021)
▪ Môi trường phát triển: Android Studio phiên bản 4.4.1
▪ Ngôn ngữ lập trình: Java
▪ Lưu trữ Cơ sở dữ liệu: Firebase
▪ Nền tảng phát triển: Hệ điều hành Android 5.0 (Lollipop) API 21 trở lên
▪ Thiết bị điện tử được cài đặt: Điện thoại di động thông minh
▪ Đối tượng sử dụng: Bất kỳ ai
1.2 Đặt vấn đề
Với sự phát triển như vũ bão của nền công nghiệp hiện đại, đặc biệt là ngành công nghệ thông tin, truyền thông, giải trí, các phương tiện nghe, nhìn (điện thoại, máy tính bảng, laptop, …) tỏ ra vượt trội và tính năng tiện dụng, có sức hấp dẫn, lôi cuốn mạnh mẽ hơn so với các trang sách báo truyền thống
Nhiều người trẻ hiện nay thường không có thói quen đọc sách với rất nhiều lí do khác nhau nhưng lại luôn mất thời gian của mình vào những thói quen vô bổ như lướt mạng xã hội Facebook hay xem các video tiktok được sáng tạo nội dung để thu hút người dùng dành sự quan tâm vào đó mà quên đi những mục tiêu và ước muốn cá nhân
Trong thời đại tiêu dùng nhanh như hiện nay thì người trẻ thường xuyên bị sao lãng bởi các phương tiện truyền thông và tâm lý thích sự giản đơn, nhanh chóng và tiện lợi muốn nhanh chóng đạt được khiến việc đọc sách bị xem nhẹ
Cá nhân em nói riêng cũng thường cảm thấy ngại đọc nhiều chữ hay lấy lí do bận rộn với các vấn đề của tuổi trưởng thành (như tình yêu, công việc làm thêm, bài tập lớn,
Trang 12Những người luôn muốn thay đổi bản thân tiến bộ hơn thường dành thời gian đọc sách, cảm thấy được truyền cảm hứng, truyền lửa bởi những câu viết trong sách, những câu từ cá nhân họ tâm đắc có ý nghĩa với họ và khiến họ thay đổi
Thông thường mọi người sẽ đánh dấu vào sách những câu viết mà họ tâm đắc hoặc viết ra một cuốn sổ tay để đọc lại những khi cảm thấy thiếu sức mạnh ý chí Nhưng nhiều khi những ghi chú đó ít khi được đọc lại thường xuyên bởi vì những bộn bề của công việc và cuộc sống hối hả, tấp nập khiến ta quên mất đi những giá trị tinh túy của những cuốn sách ta đã đọc, những thức tỉnh của bản thân mỗi khi đọc được chúng
Ít khi đọc lại, lười ngại việc đọc lại nên không nhớ những bài học, lời khuyên nhỏ, châm ngôn sống, dòng tâm trạng, triết lý về cuộc sống để có thể ghi nhớ và vận dụng trong các tình huống, trường hợp cụ thể
Các ứng dụng trích dẫn đa phần là ứng dụng chỉnh sửa và đi kèm với ghép ảnh
1.3 Lý do chọn đề tài
Với ý muốn tận dụng sự phát triển, sự thuận tiện của khoa học công nghệ, kỹ thuật điện
tử như hiện nay để có thể:
▪ Tạo thói quen văn hóa đọc trong người trẻ nói riêng và mọi người dân nói chung
▪ Giúp tập trung sự chú ý vào những thứ tích cực hữu ích thay vì bị xao lãng một
▪ Dung nạp những suy nghĩ, ý niệm tích cực, lạc quan hàng ngày hàng giờ, cả trước khi đi vào giấc ngủ hay ngay sau khi thức dậy
▪ Và còn là nơi để tìm đến khi bế tắc cần động viên, khích lệ, an ủi, định hướng, trấn an tinh thần, cổ vũ ý chí, sức mạnh, sự tự tin, niềm hy vọng, sự dũng cảm
▪ Nhắc nhở bản thân sống tích cực, lạc quan, tự tin, mạnh mẽ hơn trong cuộc sống
▪ Tự đọc lên những câu chữ như đang tự mình nhắn nhủ chính mình
▪ Tạo sự tương tác với mọi người khác để thi đua với nhau, xếp hạng thành tích và thử thách giúp người dùng vượt lên chính mình, thay đổi để trở thành một con người tốt hơn
Chính vì những lý do trên mà em quyết định lựa chọn đề tài “Xây dựng ứng dụng chia sẻ trích dẫn hay mỗi ngày trên nền tảng Android” để làm đồ án tốt nghiệp
Trang 131.4 Mục tiêu của đề tài
Xây dựng được ứng dụng trên nền tảng Android cho phép kết nối mọi người cùng
sở thích vào một cộng đồng chung để chia sẻ nhưng câu nói, quyển sách, bài học ý nghĩa trong cuộc sống
Cụ thể, ứng dụng “Chia sẻ trích dẫn hay” này cung cấp cho người dùng những tính năng như:
▪ Ghi lại các câu trích dẫn tâm đắc
▪ Ghi lại các câu từ hay trong các cuốn sách đã đọc hay tóm tắt lại ý chính và viết lại để kích thích sự tò mò về cuốn sách đó để tìm đọc lại
▪ Được thông báo hàng ngày các câu trích dẫn ngắn ưa thích của cá nhân để cổ vũ tinh thần, tiếp thêm sức mạnh, động lực, sự tự tin, sức sống cho một ngày mới tràn đầy năng lượng
▪ Chia sẻ được những câu trích dẫn hay cho bạn bè, mọi người
▪ Ngoài ra còn có thông báo những câu trích dẫn mới mỗi ngày về những chủ đề, những tác giả, những cuốn sách, những trạng thái cảm xúc mà bạn quan tâm
▪ Và không chỉ là một ứng dụng đọc không mà còn là một ứng dụng để giải trí, duy trì thói quen đọc
1.5 Nội dung nghiên cứu
Để đạt được những mục tiêu ở trên em cần nghiên cứu, tìm hiểu những nội dung sau:
▪ Tìm hiểu về công cụ phát triển ứng dụng Android Studio
▪ Nghiên cứu về nền tảng Firebase
▪ Khảo sát, phân tích yêu cầu hệ thống
▪ Thiết kế, xây dựng cấu trúc dữ liệu
▪ Tìm kiếm các thư viện hỗ trợ
1.6 Phạm vi của đề tài
Phạm vi của đề tài này là tập trung xây dựng lên một ứng dụng với những chức
Trang 14CHƯƠNG 2: PHÂN TÍCH – THIẾT KẾ HỆ THỐNG
2.1 Mô tả hệ thống chia sẻ trích dẫn hay
Một nhóm người dùng muốn xây dựng một ứng dụng để phục vụ và giúp quản
lý các trích dẫn mà họ yêu thích và tâm đắc Người dùng thường xuyên ghi lại các trích dẫn và lời khuyên hữu ích để có thể đọc lại khi cần
Do vậy hệ thống cần phải cho phép ghi và lưu nhận các trích dẫn và thông báo lại các câu nói hay đó với người dùng
Hệ thống chia sẻ trích dẫn là chương trình phần mềm được sử dụng để ghi lại các phiên viết trích dẫn, lưu giữ và thông báo lại thường xuyên với người dùng, chủ yếu phục vụ những người dùng cá nhân
Hệ thống chia sẻ trích dẫn có một kho lưu trữ đám mây Firebase để lưu dữ liệu chung của mọi người dùng
Hệ thống của ứng dụng cho phép tất cả các trao đổi được thực hiện bởi một người dùng đã đăng ký tài khoản với tên đăng nhập là hòm thư điện tử (email) của họ với ứng dụng
Một người dùng được yêu cầu đăng ký tài khoản với email cá nhân và mật khẩu đăng nhập ứng dụng, email và mật khẩu mã hóa sẽ được gửi đến hệ thống lưu trữ thông tin (Firebase) để xác nhận
Hệ thống tự động gửi thư xác nhận đăng ký của người dùng Sau khi đã đăng ký thành công người dùng sẽ có thể sử dụng và thực hiện một hoặc nhiều sự trao đổi Sau khi đăng nhập thành công, tài khoản sẽ được duy trì đăng nhập tự động trên máy cho đến khi người dùng đăng xuất
Người dùng chỉ có thể sử dụng ứng dụng trên thiết bị điện thoại di động thông minh hệ điều hành Android
Một người dùng phải có khả năng xem lại các câu trích dẫn cá nhân của mình Người dùng được thông báo về các bài viết mới cũng như tin nhắn đến
Người dùng phải có khả năng chia sẻ bài viết của mình cho mọi người, bạn bè