Đồ án 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

pdf 62 trang thiennha21 14/04/2022 6060
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án 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ải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_xay_dung_ung_dung_chia_se_trich_dan_hay_moi_ngay_tren.pdf

Nội dung text: Đồ án 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

  1. DATN BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT - ĐH  NGUY Ễ N ANH TÚ ANH N XÂY D XÂY Ự NG NG Ứ NG D NG Ụ NG CHIA S CHIA NG Ẻ TRÍCHD ĐỒ ÁN TỐT NGHIỆP Ẫ N HAY M HAY N NGÀNH CÔNG NGHỆ THÔNG TIN Ỗ MÃ SỐ: 7480201 I NGÀY TRÊN N TRÊN NGÀY I Ề N T N Ả NG ANDROID NG HÀ N HÀ Ộ I - 2021 HÀ NỘI - 2021
  2. TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT KHOA 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 CÁN BỘ HƯỚNG DẪN NGUYỄN ANH TÚ GV.ThS ĐẶNG VĂN NAM MÃ SINH VIÊN: 1621050292 BỘ MÔN KHOA HỌC MÁY TÍNH LỚP: DCCTKH61A LỚP: DCCTKH61A HÀ NỘI - 2021
  3. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính MỤ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 2.4.2 Lập sơ đồ luồng dữ liệu 17 2.5 Thiết kế các Bảng dữ liệu của hệ thống 21 2.6 Xây dựng biểu đồ quan hệ thực thể 24 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 1
  4. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 2.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 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 2
  5. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.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 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 3
  6. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính DANH 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 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 4
  7. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hì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 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 5
  8. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính DANH 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 Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 6
  9. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính LỜ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Ú Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 7
  10. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính LỜ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. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 8
  11. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính CHƯƠ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, ) mà ít khi dành thời gian cho việc đọc sách. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 9
  12. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Nhữ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. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 10
  13. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 1.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 năng cơ bản của một mạng xã hội nhỏ cho phép người dùng đăng bài viết, bình luận, bày tỏ cảm xúc và nhắn tin lẫn nhau trên các thiết bị di động thông minh hệ điều hành Android. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 11
  14. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính CHƯƠ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è. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 12
  15. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Người dùng phải có khả năng bày tỏ cảm xúc với bài viết của người dùng khác. Người dùng phải có thể bình luận với bài viết của người dùng khác. Người dùng phải có khả năng tìm kiếm các trích dẫn, các tác giả, các bạn bè. Người dùng có thể hủy bỏ bài viết bằng cách chạm ‘Hủy’. Nếu hệ thống Firebase xác định rằng mật khẩu của người dùng là không hợp lệ, người dùng sẽ được yêu cầu nhập lại mật khẩu. Nếu người dùng nhập quên mật khẩu thì có thể khôi phục thì hệ thống sẽ gửi thư xác nhận lại mật khẩu vào hòm thư email đã đăng ký tài khoản của người dùng. Hệ thống phải cung cấp cho người dùng danh sách các bài đã viết của cá nhân sau khi lưu thành công, gồm các thông tin ngày tháng, thời gian, chủ đề, lượt thích. Thông tin của mỗi người dùng được lưu trữ trong hệ thống gồm Mã người dùng, địa chỉ Email, một người dùng có chỉ có thể có một tài khoản cho một email, một tài khoản chỉ thuộc một người dùng. Hệ thống hiển thị tất cả các trích dẫn của mọi người về các lĩnh vực chủ đề. Hệ thống sẽ có thể hiển thị 2 ngôn ngữ chính là tiếng việt và tiếng anh. Người dùng có thể sửa đổi tên, mật khẩu, ảnh đại diện của mình. 2.2 Xác định đối tượng (tác nhân) tương tác với hệ thống Ứng dụng được phát triển hướng tới tất cả các đối tượng là cá nhân có nhu cầu phát triển hoàn thiện bản thân nhờ vào việc đọc các trích dẫn ngắn tâm đắc được thông báo nhắc nhớ, khơi dậy sự nhận thức, tỉnh ngộ về những giá trị sống quanh mình. Dựa vào bản mô tả hệ thống trên, ta xác định được đối tượng sau: • Firebase: Là hệ thống quản lý thông tin lưu giữ trên Firebase. • Người dùng (hay người đọc): Là những người sử dụng hệ thống để ghi chú và được thông báo nhắc về những gì đã ghi hoặc những trích dẫn hay khác do người khác đăng tải. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 13
  16. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 2.3 Xác định yêu cầu chức năng 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 Trên cơ sở khảo sát các bài toán thực tế, ứng dụng sẽ có các chức năng chính sau: Nhóm chức năng Quản lý tài khoản: • Đăng ký: Người dùng mới có thể tạo một tài khoản cho riêng mình để quản lý, theo dõi, cá nhân hóa nhu cầu sử dụng ứng dụng của mình. • Đăng nhập: Nếu người dùng đã có tài khoản thì có thể đăng nhập vào để sử dụng các chức năng khác nhau của ứng dụng. • Đăng xuất: Khi người dùng muốn đổi tài khoản đăng nhập khác hay đăng ký tài khoản mới hoặc chỉ là không muốn duy trì đăng nhập trên ứng dụng để bảo mật dữ liệu cá nhân. • Xem danh sách người dùng: Người dùng có thể xem danh sách những người đăng ký khác đang sử dụng ứng dụng và có thể nhắn tin trò chuyện, kết nối với nhau và tạo ra những nhóm chat nhỏ riêng. • Tìm kiếm chung: Cho phép người dùng tìm kiếm các người dùng, bài viết khác bằng tên hoặc email cá nhân. • Đổi mật khẩu: Cho phép người dùng thay đổi mật khẩu đăng nhập vào hệ thống. Nhóm chức năng Quản lý bài viết chung: • Xem bài viết chung: Người dùng có thể xem được tất cả các bài viết của những người dùng khác. • Bày tỏ cảm xúc: Người dùng có thể chạm vào nút thích để thêm số lượt thích cho bài viết mà mình ấn tượng. • Xem những người thích: Cho phép người dùng xem thông tin về những người đã thích bài viết. • Bình luận bài viết: Cho phép người dùng viết nhận xét, bày tỏ quan điểm, cảm nhận của mình về bài viết. • Xem bình luận: Cho phép người dùng xem, đọc các dòng viết nhận xét của người khác về bài viết đó. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 14
  17. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính • Chia sẻ bài viết: Cho phép người dùng chia sẻ bài viết sang các ứng dụng hay nền tảng khác như email, tin nhắn, Nhóm chức năng Quản lý bài viết cá nhân: • Xem bài viết cá nhân: Cho phép người dùng xem các bài mình đã viết • Tạo bài viết: Cho phép người dùng viết bài và đăng tải cho mọi người dùng khác đọc bài viết đó. • Xóa bài viết: Cho phép người dùng xóa những bài mình đã viết. • Sửa bài viết: Cho phép người dùng chỉnh sửa, thêm bớt chữ, hình ảnh đăng tải. Nhóm chức năng Quản lý hồ sơ cá nhân: • Đổi biệt danh hiển thị: Cho phép người dùng chỉnh sửa, thay đổi tên hiển thị của mình với những người dùng khác. • Đổi ảnh đại diện: Cho phép người dùng thay đổi hình ảnh nhận diện của cá nhân. • Đổi ảnh bìa: Cho phép người dùng chỉnh sửa ảnh nền cá nhân mình bắt mắt hơn. • Đổi số điện thoại: Cho phép người dùng thay đổi thông tin liên hệ trực tiếp. • Xem thông tin cá nhân: Cho phép người dùng xem lại những bài viết của mình, số lượt thích, lượt người bình luận về bài viết. Nhóm chức năng Quản lý tin nhắn (hay Quản lý chat): • Viết tin nhắn: Cho phép người viết tin nhắn riêng cho mỗi người hoặc nhắn chung cho tất cả mọi người trong nhóm. • Xem tin nhắn: Người dùng đọc được các tin nhắn gửi đến và đã gửi đi. • Xem danh sách nhắn tin: Người dùng có thể xem danh sách những người mình đã nhắn tin. • Xóa tin nhắn: Cho phép người dùng xóa đi tin mình đã gửi. • Khóa người dùng khác: Cho phép người dùng chặn tin nhắn từ những người dùng khác. Nhóm chức năng Quản lý nhóm tin nhắn: Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 15
  18. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính • Tạo nhóm chat: Người dùng có thể tạo một nhóm nhắn tin để trò chuyện chung với những thành viên trong nhóm. • Xem danh sách nhóm: Xem danh sách các nhóm người dùng đã lập ra hay được mời tham gia vào. • Xem danh sách thành viên: Cho phép người dùng xem được những người có mặt trong nhóm chat. • Thêm thành viên: Cho phép người dùng thêm các thành viên vào nhóm tin nhắn • Sửa nhóm: Cho phép người dùng sửa mô tả nhóm và tên nhóm. • Xóa nhóm: Cho phép người dùng xóa nhóm. • Rời nhóm: Người dùng có thể thoát khỏi nhóm và không nhận tin nhắn của nhóm. 2.3.2 Xây dựng biểu đồ phân rã chức năng Trên cơ sở các chức năng chi tiết đã xác định được bên trên em tiến hành xây dựng biểu đồ phân rã chức năng của hệ thống như hình sau đây: Hình 2 - 1 Sơ đồ phân rã chức năng. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 16
  19. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 2.4 Xây dựng các mô hình luồng dữ liệu 2.4.1 Ký hiệu sử dụng Hình 2 - 2 Ký hiệu sử dụng. Hình 2 - 3 Cách truy xuất dữ liệu. 2.4.2 Lập sơ đồ luồng dữ liệu Hình 2 - 4 Biểu đồ luồng dữ liệu mức ngữ cảnh (mức 0). Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 17
  20. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 2 - 5 Biểu đồ luồng dữ liệu mức đỉnh (mức 1). 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. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 18
  21. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 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. 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. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 19
  22. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 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. Hình 2 - 10 Mức dưới đỉnh (mức 2) của chức năng Quản lý tin nhắn. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 20
  23. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 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. 2.5 Thiết kế các Bảng dữ liệu của hệ thống ❖ Bảng người dùng: Lưu trữ thông tin của các người dùng trong hệ thống. Bảng 2 - 1 Thiết kế cấu trúc bảng người dùng. STT Thuộc tính Kiểu dữ liệu Mô tả 1 name String Tên biệt danh người dùng 2 email String Hòm thư điện tử đã đăng ký của người dùng 3 search String Tìm kiếm người dùng 4 phone String Số điện thoại người dùng 5 image String Ảnh đại diện người dùng 6 cover String Ảnh bìa người dùng 7 uid String Mã người dùng 8 onlineStatus String Trạng thái sử dụng 9 typingTo String Trạng thái nhập liệu 10 isBlocked Boolean Người dùng có bị chặn hay không Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 21
  24. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ❖ Bảng bài viết: Lưu trữ thông tin của các bài viết trong hệ thống. Bảng 2 - 2 Thiết kế cấu trúc bảng bài viết. STT Thuộc tính Kiểu dữ liệu Mô tả 1 pId String Mã bài viết 2 pTitle String Tiêu đề bài viết 3 pDescr String Mô tả bài viết 4 pLikes String Số lượt thích bài viết 5 pComments String Số lượt bình luận bài viết 6 pImage String Ảnh bài viết 7 pTime String Thời gian viết bài 8 uid String Mã người dùng 9 uEmail String Hòm thư điện tử người dùng 10 uDp String Ảnh đại diện người dùng 11 uName String Tên biệt danh người dùng ❖ Bảng tin nhắn: Lưu trữ thông tin các tin nhắn trong hệ thống. Bảng 2 - 3 Thiết kế cấu trúc bảng tin nhắn STT Thuộc tính Kiểu dữ liệu Mô tả 1 message String Nội dung tin nhắn 2 receiver String Mã người nhận 3 sender String Mã người gửi 4 timeStamp String Mốc thời gian nhắn tin 5 type String Kiểu tin nhắn 6 isSeen Boolean Đã xem tin nhắn hay chưa ❖ Bảng danh sách nhắn tin: Lưu trữ mã người dùng trên hệ thống Firebase. Bảng 2 - 4 Thiết kế cấu trúc bảng danh sách nhắn tin. STT Thuộc tính Kiểu dữ liệu Mô tả 1 Id String Mã người dùng Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 22
  25. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ❖ Bảng bình luận: Lưu trữ thông tin các bình buận trong hệ thống. Bảng 2 - 5 Thiết kế cấu trúc bảng bình luận. STT Thuộc tính Kiểu dữ liệu Mô tả 1 cId String Mã bình luận 2 comment String Nội dung bình luận 3 timesStamp String Mốc thời gian bình luận 4 uid String Mốc thời gian 5 uEmail String Hòm thư điện tử của người dùng 6 uDp String Ảnh đại diện người dùng 7 uName String Tên biệt danh người dùng ❖ Bảng nhóm tin nhắn: Lưu trữ thông tin các nhóm nhắn tin trong hệ thống. Bảng 2 - 6 Thiết kế cấu trúc các nhóm nhắn tin. STT Thuộc tính Kiểu dữ liệu Mô tả 1 groupId String Mã nhóm 2 groupTitle String Tiêu đề nhóm 3 groupDescription String Mô tả nhóm 4 groupIcon String Biểu tượng nhóm 5 timeStamp String Mốc thời gian tạo nhóm 6 createdBy String Được tạo bởi người dùng 7 uId String Mã người dùng 8 messages String Mã tin nhắn trong nhóm ❖ Bảng tin nhắn nhóm: Lưu trữ thông tin các tin nhắn trong nhóm trong hệ thống. Bảng 2 - 7 Thiết kế cấu trúc bảng tin nhắn nhóm. STT Thuộc tính Kiểu dữ liệu Mô tả 1 message String Nội dung tin nhắn nhóm 2 sender String Người gửi tin nhắn 3 timeStamp String Mốc thời gian gửi tin nhắn lên nhóm 4 type String Kiểu tin nhắn Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 23
  26. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 2.6 Xây dựng biểu đồ quan hệ thực thể 2.6.1 Ký hiệu sử dụng Hình 2 - 12 Ký hiệu sử dụng trong biểu đồ quan hệ thực thể 2.6.2 Lập biểu đồ quan hệ thực thể Hình 2 - 13 Lược đồ quan hệ thực thể 2.6.3 Mối liên kết trong biểu đồ quan hệ thực thể Quan hệ thực thể giữa Các bài viết và Các người dùng: • Nhiều người dùng không viết một bài viết nào hoặc viết nhiều bài viết. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 24
  27. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính • Nhiều bài viết được viết bởi một người dùng hoặc nhiều người dùng. Quan hệ thực thể giữa Các bài viết và Các bình luận: • Nhiều bài viết có nhiều bình luận hoặc nhiều bài viết không có bình luận. • Nhiều bình luận được có trong một bài viết hoặc nhiều bài viết Quan hệ thực thể giữa Các bình luận và Các người dùng: • Nhiều người dùng bình luận nhiều hoặc nhiều người dùng không bình luận. • Nhiều bình luận được bình luận bởi một người hoặc bởi nhiều người. Quan hệ thực thể giữa Các người dùng và Danh sách nhắn tin: • Một người dùng xem một danh sách nhắn tin • Một danh sách nhắn tin được xem bởi một người dùng Quan hệ thực thể giữa Các người dùng và Các tin nhắn: • Nhiều người dùng viết nhiều tin nhắn hoặc không viết tin nhắn nào. • Nhiều tin nhắn được viết bởi một người dùng hoặc nhiều người dùng. Quan hệ thực thể giữa Các tin nhắn và Danh sách nhắn tin: • Một danh sách nhắn tin chứa một hoặc nhiều tin nhắn. • Nhiều tin nhắn phải thuộc một danh sách nhắn tin. Quan hệ thực thể giữa Các người dùng và Danh sách nhóm tin nhắn: • Một người dùng xem một danh sách nhóm tin nhắn. • Một danh sách nhóm tin nhắn được xem bởi một người dùng. Quan hệ thực thể giữa Các người dùng và Tin nhắn nhóm: • Nhiều người dùng viết nhiều tin nhắn nhóm hoặc không viết tin nhắn nhóm nào. • Nhiều tin nhắn nhóm được viết bởi một người dùng hoặc nhiều người dùng. Quan hệ thực thể giữa Tin nhắn nhóm và Danh sách nhóm tin nhắn: • Một danh sách nhóm tin nhắn chứa một hoặc nhiều tin nhắn nhóm. • Nhiều tin nhắn nhóm phải thuộc một danh sách nhóm tin nhắn. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 25
  28. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 2.7 Xác định các yêu cầu phi chức năng ▪ Tin nhắn phải cập nhật theo thời gian thực ▪ Tương tác giữa người dùng với hệ thống không nên vượt quá 3s ▪ Có thể hoạt động ổn định trên các dòng điện thoại khác nhau ▪ Thời gian xử lý nhanh ▪ Dễ sử dụng với những giao diện đồ họa thân thiện phù hợp với người dùng Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 26
  29. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 3.1 Hệ điều hành Android 3.1.1 Giới thiệu Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu, Android được phát triển bởi Android, Inc. với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008. Hình 3 - 1 Biểu tượng của hệ điều hành Android Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 27
  30. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính sửa đổi. Tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt. Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian OS vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác. Android chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2 năm 2017, với tổng cộng 2 tỷ thiết bị đã được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ. 3.1.2 Kiến trúc của hệ điều hành Android Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể từ Android 4.0 Ice Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x, với middleware, thư viện và API viết bằng C, còn phần mềm ứng dụng chạy trên một nền tảng ứng dụng gồm các thư viện tương thích với Java dựa trên Apache Harmony. Android sử dụng máy ảo Dalvik với một trình biên dịch động để chạy 'mã dex' (Dalvik Executable) của Dalvik, thường được biên dịch sang Java bytecode. Nền tảng phần cứng chính của Android là kiến trúc ARM. Người ta cũng hỗ trợ x86 thông qua dự án Android x86, và Google TV cũng sử dụng một phiên bản x86 đặc biệt của Android. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 28
  31. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 3 - 2 Kiến trúc của hệ điều hành Android Nhân Linux dùng cho Android đã được Google thực hiện nhiều thay đổi về kiến trúc so với nhân Linux gốc. Android không có sẵn X Window System cũng không hỗ trợ các thư viện GNU chuẩn, nên việc chuyển các ứng dụng hoặc thư viện Linux có sẵn sang Android rất khó khăn. Các ứng dụng C đơn giản và SDL cũng được hỗ trợ bằng cách chèn những đoạn shim Java và sử dụng tương tự JNI, như khi người ta chuyển Jagged Alliance 2 sang Android. 3.1.3 Ưu nhược điểm của hệ điều hành Android a) Ưu điểm + Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google. + Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu ái chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 29
  32. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính + Kho ứng dụng Google Play Store đồ sộ. + Thân thiện và dễ sử dụng. + Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao b) Nhược điểm - Dễ nhiễm phần mềm độc hại và virus. Do tính chất mã nguồn mở, nhiều phần mềm không được kiểm soát có chất lượng không tốt hoặc lỗi bảo mật vẫn được sử dụng. - Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng, thiếu các ứng dụng thật sự tốt. - Sự phân mảnh lớn. Trong khi một số thiết bị Android xuất sắc đã trình làng như Galaxy S5, Galaxy Note 4, Xperia Z3 , vẫn còn rất nhiều sản phẩm giá rẻ bình thường khác. - Cập nhật không tự động với tất cả thiết bị. Khi một phiên bản hệ điều hành mới ra mắt, không phải tất cả sản phẩm đều được cập nhật, thậm chí nếu muốn trải nghiệm bạn thường xuyên phải mua mới thiết bị. 3.2 Ngôn ngữ lập trình Java 3.2.1 Lịch sử Java được khởi đầu bởi James Gosling và đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi, do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011, công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24. 3.2.2 Đặc điểm Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng: ▪ Tính trừu tượng (Abstraction): Là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 30
  33. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ▪ Tính đa hình (Polymorphism): Cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số. ▪ Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. ▪ Tính đóng gói (Encapsulation): Là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy. Bên cạnh đó Java còn có một số đặc tính khác: ▪ Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java. Hình 3 - 3 Quá trình biên dịch qua máy ảo JVM ▪ Đơn giản: Học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 31
  34. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ▪ Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key). ▪ Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều task cùng một lúc. Tính năng này thường được xử dụng rất nhiều trong lập trình game. ▪ Hiệu suất cao: Nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến. ▪ Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển. 3.3 Firebase 3.3.1 Firebase là gì? Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API đơn giản và mạnh mẽ mà không cần backend hay server. Nó giúp các lập trình viên rút ngắn thời gian triển khai và mở rộng quy mô của ứng dụng mà họ đang phát triển. Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu cụ thể là những giao diện lập trình ứng dụng API đơn giản với mục đích nhằm tăng số lượng người dùng và thu lại nhiều lợi nhuận hơn. Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt. Firebase hỗ trợ cả hai nền tảng Android và IOS. Không có gì khó hiểu khi nhiều lập trình viên chọn Firebase làm nền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trên toàn thế giới. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 32
  35. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 3.3.2 Lịch sử phát triển Firebase phát triển từ Envolve, một công ty khởi nghiệp trước đó do James Tamplin và Andrew Lee thành lập vào năm 2011. Envolve cung cấp cho các nhà phát triển một API cho phép tích hợp chức năng trò chuyện trực tuyến vào trang web của họ. Sau khi phát hành dịch vụ trò chuyện, Tamplin và Lee nhận thấy rằng nó đang được sử dụng để chuyển dữ liệu ứng dụng không phải là tin nhắn trò chuyện. Các nhà phát triển đã sử dụng Envolve để đồng bộ hóa dữ liệu ứng dụng, chẳng hạn như trạng thái trò chơi trong thời gian thực giữa người dùng của họ. Tamplin và Lee quyết định tách biệt hệ thống trò chuyện và kiến trúc thời gian thực cung cấp năng lượng cho nó. Họ thành lập Firebase như một công ty riêng biệt vào tháng 9 năm 2011 và ra mắt công chúng vào tháng 4 năm 2012. Hình 3 - 4 Biểu tượng của Firebase Sản phẩm đầu tiên của Firebase là Cơ sở dữ liệu thời gian thực của Firebase, một API đồng bộ hóa dữ liệu ứng dụng trên các thiết bị iOS, Android và Web, đồng thời lưu trữ trên đám mây của Firebase. Sản phẩm hỗ trợ các nhà phát triển phần mềm trong việc xây dựng các ứng dụng cộng tác, theo thời gian thực. 3.3.3 Cách thức hoạt động của Firebase Sau khi Google mua lại và phát triển, Firebase hiện nay bao gồm các hoạt động như: Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 33
  36. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ➢ Firebase Realtime Database: Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ sở dữ liệu thời gian thực. Dữ liệu bạn nhận được dưới dạng JSON. Đồng thời nó cũng luôn được đồng bộ thời gian thực đến mọi kết nối client. Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở dữ liệu. Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển ứng dụng. Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an toàn SSL có bảo mật với chứng nhận 2048 bit. Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local vì thế khi có mọi sự thay đổi nào đều được tự động cập nhật lên Server của Firebase. Bên cạnh đó, đối với các dữ liệu ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất. ➢ Firebase Authentication: Hoạt động nổi bật của Firebase Authentication là xây dựng các bước xác thực người dùng bằng Email, Facebook, Twitter, GitHub, Google. Đồng thời cũng xác thực nặc danh cho các ứng dụng. Hoạt động xác thực có thể giúp thông tin cá nhân của người sử dụng được an toàn và đảm bảo không bị đánh cắp tài khoản. ➢ Firebase Hosting: Hosting được phân phối qua tiêu chuẩn công nghệ bảo mật SSL từ mạng CDN (Content Delivery Network) - mạng lưới máy chủ lưu giữ bản sao của các nội dung tĩnh bên trong website và phân phối đến nhiều máy chủ PoP. Mạng lưới máy chủ CDN được đặt ở khắp mọi nơi trên toàn cầu. Từ PoP (Points of Presence), dữ liệu sẽ tiếp tục được gửi đến người dùng cuối. Thông qua CDN, bản sao nội dung trên máy chủ gần nhất sẽ được trả về cho người dùng khi họ truy cập website. Hoạt động này giúp lập trình viên tiết kiệm thời gian thiết kế, xây dựng và phát triển ứng dụng. 3.3.4 Ưu nhược điểm của Firebase a) Ưu điểm ✓ Tạo tài khoản và sử dụng dễ dàng: Firebase cho phép người dùng đăng nhập bằng tài khoản Google đơn giản. Gói Spark của Firebase miễn phí và cung cấp nhiều Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 34
  37. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính tính năng để giúp các nhà phát triển bắt đầu sử dụng. Khi yêu cầu ngày càng tăng, tôi chọn gói Blaze có trả phí với nhiều tính năng nâng cao hơn. ✓ Tốc độ phát triển nhanh: Thông thường, mọi Developer cần có quyền truy cập vào Server và Host để tạo, bảo trì cơ sở dữ liệu và dịch vụ phụ trợ. Do đó, cần có một Backend Developer và một Frontend Developer để xây dựng các ứng dụng. Tuy nhiên, việc này thường có thể dẫn đến lỗi và các vấn đề có thể gây ra sự cố ứng dụng và làm tăng chi phí phát triển. Thông qua việc sử dụng Firebase và Firestore, Frontend Developer có thể quản lý, giảm thời gian cần thiết để hoàn thành tất cả công việc. ✓ Nhiều dịch vụ trong một nền tảng: Hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database của Firebase. Tương tự như vậy, Firebase cho phép bạn thực hiện lưu trữ Cloud Media dễ dàng. Nó cũng cho phép phát triển ứng dụng không cần máy chủ thông qua việc tích hợp Cloud Functions. Hình 3 - 5 Minh họa sự kết hợp của Firebase và Google Cloud Platform ✓ Được cung cấp bởi Google: Google - một trong những tên tuổi nổi bật và đáng tin cậy nhất trong thế giới công nghệ kể từ khi mua lại, Firebase đã trải qua một loạt thay đổi, phát triển và trở thành nền tảng đáng tin cậy như ngày nay. Nó khai thác sức mạnh của Google Cloud và nhiều dịch vụ của Google. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 35
  38. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ✓ Tập trung vào phát triển giao diện người dùng: Nó cho phép Developer tập trung vào việc tạo mã Frontend cho các ứng dụng di động. Nền tảng này giúp cho việc phát triển ứng dụng trở nên thuận tiện và giúp giảm chi phí đáng kể. ✓ Firebase không có máy chủ: Firebase cung cấp một môi trường hoàn toàn không có máy chủ đi kèm với kiến trúc không máy chủ (Serverless Architecture). Do đó, bạn sẽ không cần lo lắng về cơ sở hạ tầng máy chủ. ✓ Học máy (Machine Learning): Firebase đi kèm với bộ ML với các API sẵn có cho các tính năng khác nhau của nền tảng di động như nhận dạng văn bản, nhận diện khuôn mặt, ghi nhãn hình ảnh, quét mã vạch, ✓ Tạo lưu lượng truy cập: Firebase hỗ trợ lập chỉ mục ứng dụng để cho phép người dùng thu hút lại những khách tìm kiếm trên Google. Cụ thể, nó cung cấp liên kết ứng dụng trên mục tìm kiếm của Google. ✓ Theo dõi lỗi: Firebase có thể theo dõi cả lỗi không nghiêm trọng và lỗi nghiêm trọng. Đồng thời, báo cáo được tạo dựa trên mức độ ảnh hưởng của lỗi đến trải nghiệm của người dùng. ✓ Sao lưu: Firebase đảm bảo tính bảo mật tối ưu và tính sẵn có của dữ liệu nhờ các bản sao lưu thường xuyên. Các ứng dụng được bảo vệ khỏi mọi khả năng mất dữ liệu bằng cách dựa vào tính năng sao lưu tự động của nền tảng này. b) Nhược điểm của Firebase ➢ Không phải là mã nguồn mở: Firebase không phải là một tùy chọn mã nguồn mở để phát triển ứng dụng di động. Điều này khiến nó trở thành một lựa chọn không tối ưu cho nhiều nhà phát triển. Người dùng không thể sửa đổi mã nguồn Firebase ➢ Người dùng không có quyền truy cập mã nguồn: Việc không có quyền truy cập vào mã nguồn có thể khá khó khăn đối với một số nhà phát triển. Đặc biệt, đối với các ứng dụng lớn, việc chuyển sang các nhà cung cấp khác không phải là một nhiệm vụ dễ dàng và để thực hiện việc này, toàn bộ Backend sẽ cần được xây dựng lại từ đầu. ➢ Firebase không hoạt động ở nhiều quốc gia: Firebase là một Subdomain của Google. trang Web chính thức của nó là và bị chặn ở nhiều quốc gia. Google cùng với các dịch vụ khác của Google bị chặn và không thể truy cập được ở nhiều quốc gia, trong đó có Trung Quốc. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 36
  39. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ➢ Chỉ hoạt động với Cơ sở dữ liệu NoSQL: Cả Firestore và Firebase Realtime Database đều cung cấp cấu trúc NoSQL. Người dùng không thể xử lý nhanh chóng việc di chuyển dữ liệu tương tự như cơ sở dữ liệu SQL đơn giản. Firebase sử dụng JSON và hầu như không có tính năng SQL nào. Vì vậy, việc di chuyển từ cơ sở dữ liệu sẽ không dễ dàng. ➢ Truy vấn chậm: Kích thước yêu cầu API tối đa 10 MiB, không có truy vấn tổng hợp gốc, giới hạn kích thước tài liệu là 1 MiB, kết nối đồng thời tối đa 1M, truy vấn hiệu suất chậm. ➢ Không phải tất cả các dịch vụ Firebase đều miễn phí: Các chức năng đám mây chỉ khả dụng trên gói Blaze và người dùng không thể dùng thử dịch vụ trong gói Spark. API Cloud Vision trong tính năng học máy cũng không khả dụng trong gói Spark miễn phí của nền tảng này. Dịch vụ này chỉ có sẵn cho người dùng của gói Blaze và tính phí 1,5 USD/k API. Hình 3 - 6 Biểu tượng API Cloud Vision của Google ➢ Firebase khá đắt và giá không ổn định: Firebase cung cấp dịch vụ theo mô hình định giá dựa trên mức sử dụng và không có cách nào để giới hạn giá cả. Không có bảng giá cố định cho nền tảng và việc theo dõi mức độ sử dụng tài nguyên có thể là một vấn đề phức tạp. ➢ Chỉ chạy trên Google Cloud: Firebase hiện là một phần của Google và cơ sở hạ tầng của nó chạy hoàn toàn trên Google Cloud. Bạn sẽ không có tùy chọn để chạy Firebase trên các nhà cung cấp đám mây khác như AWS, Azure hoặc Digital Ocean. ➢ Thiếu Dedicated Servers và hợp đồng doanh nghiệp: Firebase không có tùy chọn Dedicated Servers hoặc hợp đồng doanh nghiệp. Cách duy nhất để sử dụng Firebase là sử dụng cấu trúc Serverless ít tính linh hoạt hơn. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 37
  40. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ➢ Không cung cấp các API GraphQL: Firebase không cung cấp API GraphQL như một phần của thiết lập tiêu chuẩn. Mặc dù có những giải pháp thay thế cho việc triển khai GraphQL với Firebase, REST vẫn là tùy chọn mặc định của nền tảng. 3.4 Android Studio 3.4.1 Giới thiệu chung Android Studio là môi trường phát triển tích hợp chuyên nghiệp hỗ trợ việc thiết kế và xây dựng các ứng dụng di động trên nền tảng Android được Google và JetBrains hợp tác xây dựng nhằm thay thế các phiên bản plugin android dành cho Eclipse ngày xưa. 3.4.2 Những tính năng chính Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển ứng dụng Android, dựa trên IntelliJ IDEA. Trên trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, Android Studio cung cấp nhiều tính năng nâng cao hiệu suất của bạn khi xây dựng ứng dụng Android, chẳng hạn như: • Một hệ thống xây dựng Gradle linh hoạt. • Trình mô phỏng nhanh và tính năng phong phú. • Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android.Đồ án tốt nghiệp chuyên ngành khoa học máy tính • Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới. • Mẫu mã và tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mã mẫu • Các công cụ và khuôn khổ thử nghiệm mở rộng. • Lint công cụ để bắt hiệu suất, khả năng sử dụng, tương thích phiên bản, và các vấn đề khác. • Tích hợp hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging và App Engine. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 38
  41. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính CHƯƠNG 4: XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG 4.1 Thiết kế giao diện Sử dụng phong cách Material Design. Material Design là hình thức phát triển hơn của Flat Design (thiết kế phẳng) - một xu hướng ‘làm mưa làm gió’ thời gian gần đây. Tuy nhiên, thay vì mang đến cảm giác ‘phẳng lì’ trên toàn bộ giao diện, Material Design là những lớp Flat xếp chồng lên nhau, tạo chiều sâu và điểm nhấn hơn thiết kế phẳng thông thường. Material Design chủ yếu tập trung vào những đường nét đơn giản, sử dụng những gam màu đậm, nổi bật. Đồng thời, chúng thường sử dụng những yếu tố đồ họa có cảm giác 3D, có hiệu ứng ‘nổi lên’ trên giao diện. Ngoài ra, thiết kế này còn bao gồm những chuyển động tự nhiên, như khi các nút, menu hiện trên màn hình chẳng hạn. Tất cả đều nhằm mục đích mang lại cho người dùng trải nghiệm mới mẻ hơn, thú vị hơn và gần gũi với đời thực. Một số đặc điểm có thể dùng để ‘nhận dạng’ Material Design là: • Thường sử dụng những gam màu nổi bật, tuy nhiên vẫn cần thống nhất một mảng màu chủ đạo • Các biểu tượng (icon) phẳng, theo phong cách tối giản và dễ hiểu • Giao diện phẳng, ít hoặc không có hiệu ứng chuyển màu hay đổ bóng • Tận dụng nhiều khoảng trắng, giúp không gian giao diện khá thoáng và dễ chịu. • Hiệu ứng chuyển động tự nhiên, mượt mà, dễ để hình dung • Tránh đi sự nhàm chán: Nhờ có các màu sắc vui vẻ và sinh động hơn, hiệu ứng chuyển động lôi cuốn hơn. Android Studio còn có thể tạo ra các biểu tượng cho các loại kích cỡ màn hình một cách nhanh chóng và đơn giản với tính năng Image Asset. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 39
  42. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.2 Firebase Realtime Database Hình 4 - 1 Cơ sở dữ liệu dạng JSON Hình 4 - 2 Các model ánh xạ tương ứng Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 40
  43. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 4 - 3 Dữ liệu của Các tin nhắn trong cơ sở dữ liệu Hình 4 - 4 Dữ liệu của Danh sách nhóm tin nhắn trong cơ sở dữ liệu Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 41
  44. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 4 - 5 Dữ liệu của Các bài viết trong cơ sở dữ liệu Hình 4 - 6 Dữ liệu của Các người dùng trong cơ sở dữ liệu Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 42
  45. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 4 - 7 Quản lý người dùng với Firebase Authentication Hình 4 - 8 Quản lý tài nguyên với Firebase Storage Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 43
  46. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 4 - 9 Lấy dữ liệu tất cả người dùng Hình 4 - 10 Cập nhật bài viết không ảnh Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 44
  47. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Hình 4 - 11 Cấp quyền truy cập vào máy ảnh và kho lưu trữ Hình 4 - 12 Xóa ảnh trong bài viết Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 45
  48. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3 Thiết kế giao diện ứng dụng 4.3.1 Giao diện đăng ký, đăng nhập Đây là màn hình hiển thị đầu tiên khi chọn vào ứng dụng. Người dùng có 2 tùy chọn: • Đăng ký: nếu người dùng chưa có tài khoản truy cập ứng dụng. • Đăng nhập: nếu người dùng đã có tài khoản Hình 4 - 13 Giao diện đăng ký, đăng nhập Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 46
  49. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Tại chức năng đăng ký, người dùng nhập hòm thư điện tử (email) và mật khẩu dùng để đăng nhập vào ứng dụng. Nếu người dùng muốn quay trở lại màn hình hiển thị ban đầu chọn mũi tên trên trái để quay trở lại. Nếu người dùng đã có tài khoản thì chạm dòng chữ “Đã có tài khoản? Đăng nhập” để chuyển sang màn hình đăng nhập. Hình 4 - 14 Giao diện chức năng đăng ký Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 47
  50. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Tại màn hình đăng nhập người dùng nhập email và mật khẩu đã đăng ký để truy cập vào ứng dụng. Nếu người dùng quên mật khẩu có thể chạm vào dòng chữ “Quên mật khẩu?Khôi phục” để reset lại mật khẩu Có thể chuyển qua màn hình đăng ký nếu chưa có tài khoản ứng dụng. Hình 4 - 15 Giao diện chức năng đăng nhập Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 48
  51. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.2 Giao diện trang chủ Đây là nơi hiển thị đầu tiên sau khi đăng nhập vào ứng dụng. Tại trang chủ sẽ hiển thị các bài viết trích dẫn hay của mọi người dùng ứng dụng này đăng. Tại trang chủ cũng sẽ có các nút tạo bài viết, tìm kiếm, đăng xuất. Người dùng có thể thả thích, bình luận, chia sẻ bài viết tại đây. Hình 4 - 16 Giao diện trang chủ Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 49
  52. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.3 Giao diện trang cá nhân Đây là trang cá nhân của người dùng, tại đây người dùng có thể đặt tên hiển thị, cài ảnh đại diện, ảnh bìa và xem lại được các bài viết mình đã đăng. Ngoài ra, người dùng còn có thể sửa đổi mật khẩu, tạo bài viết mới hoặc thêm số điện thoại cá nhân. Hình 4 - 17 Giao diện trang cá nhân Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 50
  53. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.4 Giao diện các người dùng Đây là nơi hiển thị tất cả người dùng đăng ký sử dụng ứng dụng. Tại đây, người dùng có thể chọn xem hồ sơ cá nhân người dùng khác hoặc gửi tin nhắn Hình 4 - 18 Giao diện Các người dùng Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 51
  54. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.5 Giao diện nhắn tin Sau khi nhấn vào nhắn tin với người dùng bạn muốn, giao diện sẽ hiển thị trang nhắn tin như dưới đây. Tại đây, người dùng có thể gửi tin nhắn, gửi ảnh, xem ngày giờ, thời gian gửi tin, đọc tin nhắn. Người dùng có thể xem được người kia có đang gõ hay đã đọc nhận được tin nhắn hay chưa Ngoài ra, người dùng còn có thể xóa được tin đã nhắn gửi đi Hình 4 - 19 Giao diện nhắn tin Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 52
  55. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.6 Giao diện đăng bài viết Người dùng có thể nhấn vào biểu tượng dấu cộng khoanh tròn tại trang chủ hoặc trang cá nhân để tạo bài viết. Sau khi chạm vào sẽ hiển thị ra trang như dưới đây Tại đây người dùng nhập tiêu đề (có thể là tên tác giả, tựa đề sách, hoặc nguồn tham khảo), chèn thêm ảnh minh họa cho bài viết thêm sinh động và cuối cùng là nội dung. Hình 4 - 20 Giao diện đăng bài viết Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 53
  56. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.3.7 Giao diện sửa thông tin cá nhân Đây là chức năng nằm trong trang hồ sơ cá nhân của người dùng. Người dùng nhấn vào biểu tượng hình cây bút có nền màu xanh lá cây thì nó sẽ hiển thị lên các chức năng để có thể chỉnh sửa các thông tin của người dùng. Hình 4 - 21 Giao diện sửa thông tin cá nhân Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 54
  57. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.4 Kiểm thử và đánh giá hệ thống 4.4.1 Kiểm thử chức năng đăng ký, đăng nhập Bảng 4 - 1 Kiểm thử chức năng đăng ký, đăng nhập Trường hợp Kết quả mong đợi Kết quả thưc tế Tại ô email và mật khẩu không Hiển thị thông báo: Đúng nhập gì cả Email không hợp lệ Kích vào nút đăng ký, đăng nhập Nhập email mà không có đuôi Hiển thị thông báo: Đúng @ hay tên miền Email không hợp lệ Kích vào nút đăng ký, đăng nhập Nhập email mà không nhập Hiển thị thông báo: Đúng mật khẩu Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập Nhập mật khẩu mà không nhập Hiển thị thông báo: Đúng email Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập Nhập đúng email, mật khẩu Hiển thị thông báo: Đúng nhập ít hơn 6 ký tự Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập Nhập đúng email, nhập đúng Hiển thị thông báo: Đúng mật khẩu Đã đăng ký thành công + tên email Kích vào nút đăng ký, đăng Đăng nhập thành công nhập Nhập email chưa đăng ký vào Hiển thị thông báo: Đúng trang đăng nhập Xác thực thất bại Kích vào nút đăng ký, đăng nhập Nhập một email đã đăng ký Hiển thị thông báo: Đúng vào trang đăng ký Xác thực thất bại Kích vào nút đăng ký, đăng nhập Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 55
  58. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.4.2 Kiểm thử chức năng đăng bài viết Bảng 4 - 2 Kiểm thử chức năng đăng bài viết Trường hợp Kết quả mong đợi Kết quả thực tế Không nhập tiêu đề, không Hiển thị thông báo: Đúng nhập nội dung mô tả, không Nhập tiêu đề chèn ảnh Nhập tiêu đề, không chèn ảnh, Hiển thị thông báo: Đúng không nhập nội dung mô tả Nhập mô tả Nhập tiêu đề, nhập mô tả, Hiển thị thông báo: Đúng không chèn ảnh Bài đăng đã được công bố Nhập tiêu đề, nhập mô tả, chèn Hiển thị thông báo: Đúng ảnh Bài đăng đã được công bố 4.4.3 Kiểm thử chức năng sửa thông tin cá nhân Bảng 4 - 3 Kiểm thử chức năng Sửa thông tin cá nhân Trường hợp Kết quả mong đợi Kết quả thực tế Chọn sửa ảnh đại diện, sửa ảnh Hiển thị thông báo: Đúng bìa, chọn máy ảnh hoặc chọn Vui lòng cấp phép truy cập máy thư viện ảnh và kho lưu trữ Chọn ảnh từ thư viện, chọn Hiển thị thông báo: Đúng ảnh từ máy ảnh xong Ảnh đã được cập nhật Chọn sửa tên hiển thị và nhập Hiển thị thông báo: Đúng tên Đã cập nhật Kích vào nút cập nhật Chọn sửa số điện thoại và nhập Hiển thị thông báo: Đúng số điện thoại Đã cập nhật Kích vào nút cập nhật Chọn đổi mật khẩu và nhập sai Hiển thị thông báo: Đúng mật khẩu hiện tại, nhập mật Không hợp lệ khẩu mới Chọn đổi mật khẩu và nhập Hiển thị thông báo: Đúng mật khẩu hiện tại, nhập mật Mật khẩu đã được cập nhật khẩu mới Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 56
  59. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính 4.4.4 Kiểm thử chức năng tạo nhóm chat Bảng 4 - 4 Kiểm thử chức năng tạo nhóm nhắn tin Trường hợp Kết quả mong đợi Kết quả thực tế Không nhập tiêu đề, không Hiển thị thông báo: Đúng nhập mô tả, không chèn ảnh Nhập tiêu đề nhóm nhắn tin Kích vào nút tick Nhập tiêu đề, không nhập mô Hiển thị thông báo: Đúng tả, không chèn ảnh đại diện Nhập mô tả nhóm nhắn tin Kích vào nút tick Nhập tiêu đề, nhập mô tả, Hiển thị thông báo: Đúng không chèn ảnh Nhóm đã được tạo Kích vào nút tick Nhập tiêu đề, nhập mô tả, chèn Hiển thị thông báo: Đúng ảnh Nhóm đã được tạo Kích vào nút tick 4.4.5 Kiểm thử chức năng thích, bình luận, chia sẻ Bảng 4 - 5 Kiểm thử chức năng thích, bình luận, chia sẻ Trường hợp Kết quả mong đợi Kết quả thực tế Kích vào nút thích Hiển thị thông báo: Đúng Đã thích Kích vào nút bình luận, viết Hiển thị thông báo: Đúng bình luận, gửi bình luận Bình luận đã được thêm Kích vào nút chia sẻ, chọn nền Hiển thị thông báo: Đúng tảng chia sẻ, nhấn gửi Đã chia sẻ thành công Qua việc phân tích các trường hợp kiểm thử ứng dụng thì em rút ra kết quả như nhau: ➢ Hệ thống chạy tương đối ổn định. ➢ Tất cả các chức năng mong muốn đều đúng đối với một ứng dụng xã hội nhỏ. ➢ Giao diện đơn giản dễ sử dụng, tuy nhiên chưa được bắt mắt. ➢ Hoàn thành ứng dụng đúng quy định. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 57
  60. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính ĐÁNH GIÁ – KẾT LUẬN Sau thời gian thực hiện đồ án tốt nghiệp, cùng với sự cố gắng và nỗ lực của bản thân thì đến nay đồ án của em đã hoàn thành đáp ứng được đầy đủ các chức năng của đề tài. Trong quá trình thực hiện đồ án, bản thân em đã đạt được nhiều tiến bộ cả về việc tìm hiểu, nghiên cứu lý thuyết lẫn kỹ năng lập trình, kỹ năng viết và trình bày báo cáo. Đồ án tốt nghiệp đã hoàn thành đúng thời gian, tiến độ và đạt được các mục tiêu đặt ra. Các kết quả chính đã đạt được bao gồm: Về kiến thức: ✓ Hiểu biết hơn về một số quy tắc trong thiết kế giao diện với Material Design. ✓ Sử dụng vận dụng được các kỹ thuật về cấu trúc dữ liệu trong lập trình Android. ✓ Có thêm sự hiểu biết về nền tảng Firebase và giải pháp lưu trữ đám mây. ✓ Phân tích thiết kế đối tượng theo hướng chuyên nghiệp hơn. Về chương trình: ✓ Chương trình thực hiện được các yêu cầu đề ra của đề tài. ✓ Ứng dụng được xây dựng đã đáp ứng được các chức năng chính. ✓ Giao diện đơn giản, dễ sử dụng với người dùng. Về báo cáo đồ án tốt nghiệp: ✓ Báo cáo trình bày theo đúng quy định, đầy đủ các nội dung liên quan tới đề tài từ nghiên cứu lý thuyết đến xây dựng chương trình. ✓ Các hình vẽ bảng biểu được đánh số ghi chú đầy đủ. ✓ Đáp ứng được yêu cầu của một Đồ án tốt nghiệp ngành Công nghệ Thông tin. Bên cạnh những kết quả đạt được, chương trình vẫn còn một số hạn chế như: ➢ Giao diện chưa được bắt mắt với người dùng. ➢ Vẫn còn phát sinh một số lỗi khiến ứng dụng bị thoát đột ngột. ➢ Bày tỏ cảm xúc chỉ giới hạn bằng một biểu tượng thích. ➢ Chưa có nhiều chức năng hỗ trợ người dùng như tố cáo bài viết hay gửi ý kiến phản hồi, Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 58
  61. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính Để tiếp tục phát triển đề tài này trong thực tế em nhận thấy cần phải tiếp tục thực hiện các công việc sau: Xử lý các lỗi chặt chẽ hơn. Xử lý thêm phần đăng nhập và đăng xuất như: kiểm tra đăng nhập khi có người dùng khác đăng nhập vào tài khoản hiện tại. Xử lý dữ liệu khi mất kết nối internet. Tìm kiếm các phương pháp giảm chi phí khi sử dụng Firebase Realtime Database. Nâng cấp giao diện, cải thiện hình ảnh hiển thị các tính năng. Phát triển thêm các chức năng đáp ứng các nhu cầu như các mạng xã hội khác. Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 59
  62. Đồ án tốt nghiệp chuyên ngành Khoa học máy tính TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] tu-google/#firebase-la-gi Sinh viên: Nguyễn Anh Tú – Khoa học máy tính K61A 60