1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp công nghệ thông tin 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

62 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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ác giả Nguyễn Anh Tú
Người hướng dẫn GV.ThS Đặng Văn Nam
Trường học Trường Đại Học Mỏ - Địa Chất
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 62
Dung lượng 2,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI (11)
    • 1.1 Giới thiệu chung (11)
    • 1.2 Đặt vấn đề (11)
    • 1.3 Lý do chọn đề tài (12)
    • 1.4 Mục tiêu của đề tài (13)
    • 1.5 Nội dung nghiên cứu (13)
    • 1.6 Phạm vi của đề tài (13)
  • CHƯƠNG 2: PHÂN TÍCH – THIẾT KẾ HỆ THỐNG (14)
    • 2.1 Mô tả hệ thống chia sẻ trích dẫn hay (14)
    • 2.2 Xác định đối tượng (tác nhân) tương tác với hệ thống (15)
    • 2.3 Xác định yêu cầu chức năng (16)
      • 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 (16)
      • 2.3.2 Xây dựng biểu đồ phân rã chức năng (18)
    • 2.4 Xây dựng các mô hình luồng dữ liệu (19)
      • 2.4.1 Ký hiệu sử dụng (19)
      • 2.4.2 Lập sơ đồ luồng dữ liệu (19)
    • 2.5 Thiết kế các Bảng dữ liệu của hệ thống (23)
    • 2.6 Xây dựng biểu đồ quan hệ thực thể (26)
      • 2.6.1 Ký hiệu sử dụng (26)
      • 2.6.2 Lập biểu đồ quan hệ thực thể (26)
      • 2.6.3 Mối liên kết trong biểu đồ quan hệ thực thể (26)
    • 2.7 Xác định các yêu cầu phi chức năng (28)
  • CHƯƠNG 3 CƠ SỞ LÝ THUYẾT (29)
    • 3.1 Hệ điều hành Android (29)
      • 3.1.1 Giới thiệu (29)
      • 3.1.2 Kiến trúc của hệ điều hành Android (30)
      • 3.1.3 Ưu nhược điểm của hệ điều hành Android (31)
    • 3.2 Ngôn ngữ lập trình Java (32)
      • 3.2.1 Lịch sử (32)
      • 3.2.2 Đặc điểm (32)
    • 3.3 Firebase (34)
      • 3.3.1 Firebase là gì? (34)
      • 3.3.2 Lịch sử phát triển (35)
      • 3.3.3 Cách thức hoạt động của Firebase (35)
      • 3.3.4 Ưu nhược điểm của Firebase (36)
    • 3.4 Android Studio (40)
      • 3.4.1 Giới thiệu chung (40)
      • 3.4.2 Những tính năng chính (40)
  • CHƯƠNG 4: XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG (41)
    • 4.1 Thiết kế giao diện (41)
    • 4.2 Firebase Realtime Database (42)
    • 4.3 Thiết kế giao diện ứng dụng (48)
      • 4.3.1 Giao diện đăng ký, đăng nhập (48)
      • 4.3.2 Giao diện trang chủ (51)
      • 4.3.3 Giao diện trang cá nhân (52)
      • 4.3.4 Giao diện các người dùng (53)
      • 4.3.5 Giao diện nhắn tin (54)
      • 4.3.6 Giao diện đăng bài viết (55)
      • 4.3.7 Giao diện sửa thông tin cá nhân (56)
    • 4.4 Kiểm thử và đánh giá hệ thống (57)
      • 4.4.1 Kiểm thử chức năng đăng ký, đăng nhập (57)
      • 4.4.2 Kiểm thử chức năng đăng bài viết (58)
      • 4.4.3 Kiểm thử chức năng sửa thông tin cá nhân (58)
      • 4.4.4 Kiểm thử chức năng tạo nhóm chat (59)
      • 4.4.5 Kiểm thử chức năng thích, bình luận, chia sẻ (59)
  • TÀI LIỆU THAM KHẢO (62)

Nội dung

TỔNG QUAN VỀ ĐỀ TÀI

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.

Đặt vấn đề

Sự bùng nổ của ngành công nghiệp hiện đại, đặc biệt là công nghệ thông tin và truyền thông, đã làm cho các thiết bị nghe nhìn như điện thoại, máy tính bảng và laptop trở nên vượt trội và tiện dụng hơn, thu hút người dùng mạnh mẽ hơn so với sách báo truyền thống.

Nhiều bạn trẻ ngày nay không còn thói quen đọc sách do nhiều lý do khác nhau, nhưng lại dành thời gian cho những hoạt động vô bổ như lướt mạng xã hội Facebook hay xem video TikTok Những thói quen này khiến họ quên đi những mục tiêu và ước mơ cá nhân của mình.

Trong thời đại tiêu dùng nhanh hiện nay, giới trẻ thường bị phân tâm bởi các phương tiện truyền thông và có xu hướng thích sự đơn giản, nhanh chóng và tiện lợi Điều này dẫn đến việc đọc sách trở nên bị xem nhẹ và không được coi trọng.

Nhiều người, trong đó có cả em, thường ngại đọc nhiều chữ và thường viện 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 và bài tập lớn.

…) mà ít khi dành thời gian cho việc đọc sách

Những người khao khát phát triển bản thân thường dành thời gian đọc sách, tìm thấy nguồn cảm hứng và động lực từ những câu chữ ý nghĩa, giúp họ thay đổi tích cực trong cuộc sống.

Nhiều người thường đánh dấu những câu viết tâm đắc trong sách hoặc ghi lại trong sổ tay để tìm lại sức mạnh ý chí khi cần Tuy nhiên, do bận rộn với công việc và cuộc sống, họ ít khi đọc lại những ghi chú này, dẫn đến việc quên đi những giá trị quý báu từ sách và những bài học quý giá Việc không thường xuyên ôn lại những lời khuyên, châm ngôn sống và triết lý về cuộc sống khiến họ khó áp dụng chúng trong các tình huống 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.

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

Đây là nơi lý tưởng để tìm kiếm động viên, khích lệ và an ủi khi bạn cảm thấy bế tắc Nó cung cấp định hướng, trấn an tinh thần, cổ vũ ý chí, tăng cường sức mạnh, sự tự tin, niềm hy vọng và 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 giữa mọi người để khuyến khích thi đua, xếp hạng thành tích và thử thách bản thân, giúp người dùng phát triển và trở thành phiên bản tốt hơn của chính mình.

Với những lý do đã nêu, tôi quyết định 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” cho đồ án tốt nghiệp của mình.

Mục tiêu của đề tài

Xây dựng ứng dụng trên nền tảng Android giúp kết nối những người có sở thích chung, tạo thành một cộng đồng để chia sẻ những câu nói, quyển sách và 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 những câu văn ấn tượng từ các cuốn sách đã đọc, hoặc tóm tắt ý chính một cách súc tích, sẽ giúp khơi dậy sự tò mò và khuyến khích bạn đọc tìm lại những tác phẩm đó Những trích dẫn hay không chỉ làm nổi bật giá trị của cuốn sách mà còn tạo động lực để khám phá sâu hơn về nội dung và thông điệp mà tác giả muốn truyền tải.

Nhận thông báo hàng ngày với những câu trích dẫn ngắn yêu thích giúp nâng cao tinh thần, tiếp thêm sức mạnh và động lực, mang lại sự tự tin và 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

Mỗi ngày, chúng tôi cung cấp thông báo về những câu trích dẫn mới liên quan đến các chủ đề, tác giả, cuốn sách và 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.

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ợ

Phạm vi của đề tài

Đề tài này tập trung vào việc phát triển một ứng dụng mạng xã hội nhỏ, cho phép người dùng thực hiện các chức năng cơ bản như đăng bài viết, bình luận, bày tỏ cảm xúc và nhắn tin qua lại trên các thiết bị di động thông minh sử dụng hệ điều hành Android.

PHÂN TÍCH – THIẾT KẾ HỆ THỐNG

Mô tả hệ thống chia sẻ trích dẫn hay

Một nhóm người dùng đang phát triển một ứng dụng nhằm quản lý và lưu trữ các trích dẫn yêu thích của họ Ứng dụng này cho phép người dùng ghi lại những câu nói và lời khuyên bổ ích, giúp họ dễ dàng truy cập và đọc lại khi cần thiết.

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à phần mềm giúp ghi lại và lưu trữ các phiên viết trích dẫn, đồng thời thông báo thường xuyên cho người dùng, chủ yếu phục vụ cho nhu cầu của 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 ứng dụng cho phép người dùng đã đăng ký thực hiện tất cả các giao dịch thông qua tài khoản của họ, sử dụng địa chỉ email làm tên đăng nhập.

Người dùng cần đăng ký tài khoản bằng cách cung cấp email cá nhân và mật khẩu Thông tin email và mật khẩu sẽ được mã hóa và gửi đến hệ thống lưu trữ thông tin Firebase để xác thực.

Hệ thống tự động gửi thư xác nhận khi người dùng đăng ký thành công Sau khi đăng nhập, người dùng có thể thực hiện nhiều giao dịch và tài khoản sẽ được duy trì đăng nhập tự động trên thiết bị cho đến khi người dùng chọn đă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

Người dùng cần có khả năng xem lại các câu trích dẫn cá nhân của mình và sẽ nhận đượ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è

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 mật khẩu của người dùng không hợp lệ, hệ thống Firebase sẽ yêu cầu họ nhập lại Trong trường hợp người dùng quên mật khẩu, họ có thể khôi phục bằng cách nhận thư xác nhận gửi đến email đã đăng ký.

Hệ thống cần hiển thị cho người dùng danh sách các bài viết cá nhân sau khi lưu thành công, bao gồm thông tin về ngày tháng, thời gian, chủ đề và số lượt thích.

Mỗi người dùng trong hệ thống được lưu trữ với thông tin bao gồm Mã người dùng và địa chỉ Email Một địa chỉ Email chỉ có thể liên kết với một tài khoản duy nhất, và mỗi tài khoản chỉ thuộc về một người dùng cụ thể.

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.

Xác định đối tượng (tác nhân) tương tác với hệ thống

Ứng dụng này được thiết kế dành cho mọi cá nhân mong muốn hoàn thiện bản thân thông qua việc đọc các trích dẫn ngắn ý nghĩa, giúp nhắc nhở và nâng cao nhận thức về những giá trị sống xung quanh.

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 còn gọi là người đọc, là những cá nhân sử dụng hệ thống để ghi chú và nhận thông báo về những nội dung đã ghi lại, cũng như những trích dẫn thú vị từ người khác.

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ười dùng mới có thể đăng ký và tạo tài khoản cá nhân để dễ dàng quản lý, theo dõi và 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 là hành động cần thiết khi người dùng muốn chuyển đổi tài khoản đăng nhập, đăng ký tài khoản mới hoặc đơn giản là không muốn duy trì trạng thái đăng nhập trên ứng dụng để bảo vệ dữ liệu cá nhân.

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, cho phép họ nhắn tin, trò chuyện và kết nối với nhau, đồng thời tạo ra các 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 đó

• 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:

• 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

Dựa trên các chức năng chi tiết đã được xác định, tôi đã 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 dưới đây.

Hình 2 - 1 Sơ đồ phân rã chức năng

Xây dựng các mô hình luồng dữ liệu

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)

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

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

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

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.

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

❖ 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

❖ 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ả

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

Xây dựng biểu đồ quan hệ thực thể

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

• 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

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

CƠ SỞ LÝ THUYẾT

Hệ điều hành Android

Android là hệ điều hành dựa trên Linux, được thiết kế cho thiết bị di động như smartphone và tablet Ban đầu phát triển bởi Android, Inc với sự hỗ trợ từ Google, hệ điều hành này đã được Google mua lại vào năm 2005.

Android được giới thiệu vào năm 2007 với sự ra đời của Liên minh thiết bị cầm tay mở, bao gồm các công ty phần cứng, phần mềm và viễn thông nhằm thúc đẩy tiêu chuẩn mở cho thiết bị di động Chiếc điện thoại đầu tiên sử dụng hệ điều hành Android đã được bán ra vào năm 2008.

Hình 3 - 1 Biểu tượng của hệ điều hành Android

Android là hệ điều hành mã nguồn mở do Google phát hành theo Giấy phép Apache, cho phép các nhà phát triển thiết bị, mạng di động và lập trình viên tự do điều chỉnh và phân phối hệ điều hành này mà không gặp nhiều ràng buộc.

Android sở hữu một cộng đồng lập trình viên lớn mạnh, chuyên phát triển các ứng dụng nhằm nâng cao tính năng của thiết bị, chủ yếu sử dụng ngôn ngữ lập trình Java.

Vào tháng 10 năm 2012, số lượng ứng dụng trên nền tảng Android đã đạt khoảng 700.000, với tổng số lượt tải từ Google Play, cửa hàng ứng dụng chính của Android, ước tính lên tới 25 tỷ lượt.

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 Sự lựa chọn của các công ty công nghệ đối với Android xuất phát từ tính năng nhẹ, khả năng tùy chỉnh cao và chi phí thấp, giúp họ tiết kiệm thời gian và nguồn lực thay vì phát triển hệ điều hành từ đầu cho các thiết bị công nghệ cao.

Mặc dù được thiết kế cho điện thoại và máy tính bảng, Android đã mở rộng ra TV, máy chơi game và các thiết bị điện tử khác Tính mở của Android khuyến khích nhiều lập trình viên và người đam mê sử dụng mã nguồn mở để phát triển các dự án cộng đồng, bổ sung tính năng cao cấp cho người dùng thích khám phá và đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.

Vào quý 2 năm 2017, Android đã chiếm 87,7% thị phần điện thoại thông minh toàn cầu, với 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 Thành công này cũng khiến Android trở thành mục tiêu trong các vụ kiện về bằng sáng chế, góp phần vào "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 sử dụng hạt nhân dựa trên Linux phiên bản 2.6, và bắt đầu từ Android 4.0 Ice Cream Sandwich trở đi, đã chuyển sang phiên bản 3.x Hệ thống bao gồm middleware, thư viện và API được lập trình bằng C, trong khi phần mềm ứng dụng hoạt động trên nền tảng 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 trình biên dịch động để chạy mã dex (Dalvik Executable), thường được biên dịch từ Java bytecode Nền tảng phần cứng chính của Android là kiến trúc ARM, bên cạnh đó, hệ điều hành cũng hỗ trợ x86 thông qua dự án Android x86, và Google TV sử dụng phiên bản x86 đặc biệt của Android.

Hình 3 - 2 Kiến trúc của hệ điều hành Android

Nhân Linux trên Android đã trải qua nhiều thay đổi kiến trúc so với phiên bản gốc, khiến việc chuyển đổi ứng dụng hoặc thư viện Linux sang Android trở nên khó khăn Android không tích hợp sẵn X Window System và cũng không hỗ trợ các thư viện GNU chuẩn Tuy nhiên, các ứng dụng C đơn giản và SDL có thể được hỗ trợ thông qua việc chèn đoạn shim Java và sử dụng JNI, như trong trường hợp 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

Hệ điều hành mã nguồn mở cho phép người dùng tùy chỉnh linh hoạt, với khả năng chỉnh sửa tùy ý mà không bị can thiệp hay hạn chế từ Google.

Android được nhiều hãng điện thoại và thiết bị công nghệ lựa chọn nhờ vào sự đa dạng sản phẩm, với mức giá hợp lý từ bình dân đến cao cấp.

+ 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

Phần mềm mã nguồn mở dễ bị tấn công bởi virus và phần mềm độc hại, vì nhiều ứng dụng không được kiểm soát có thể có chất lượng kém hoặc lỗ hổng bảo mật.

- 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 trong hệ sinh thái Android đang trở nên rõ rệt, với sự xuất hiện của nhiều thiết bị xuất sắc như Galaxy S5, Galaxy Note 4 và Xperia Z3, nhưng vẫn tồn tại nhiều sản phẩm giá rẻ bình thường khác.

Ngôn ngữ lập trình Java

Java được khởi đầu bởi James Gosling và đồng nghiệp ở Sun Microsystems năm

Vào năm 1991, ngôn ngữ lập trình Java, ban đầu được gọi là Oak, đã được phát triển với mục tiêu thay thế C++ nhưng mang nhiều tính năng tương tự như Objective C Cần lưu ý rằng Java và JavaScript là hai ngôn ngữ khác nhau, chỉ có điểm tương đồng về tên gọi và cú pháp Công ty Sun Microsystems là đơn vị sở hữu bản quyền và liên tục phát triển Java, với phiên bản JDK 1.6.24 được ra mắt vào tháng 04/2011.

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 là quá trình xác định và phân loại các thuộc tính cũng như hành động liên quan đến một thực thể cụ thể, trong bối cảnh ứng dụng đang được phát triển.

Tính đa hình (Polymorphism) cho phép một phương thức hoạt động khác nhau trên nhiều loại đối tượng khác nhau Khi áp dụng cùng một phương thức cho các đối tượng thuộc các lớp khác nhau, nó sẽ tạo ra những kết quả khác nhau Điều này xảy ra vì phương thức này có cùng một số lượng 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:

Java có tính năng độc lập nền tảng (Write Once, Run Anywhere) vì khi được biên dịch, nó không chuyển đổi thành mã máy cụ thể mà thành mã byte code, cho phép chạy trên máy ảo Java (JVM) Điều này có nghĩa là bất kỳ thiết bị nào cài đặt JVM đều có thể thực thi các chương trình Java.

Hình 3 - 3 Quá trình biên dịch qua máy ảo JVM

Học Java dễ hơn nhiều so với C/C++, đặc biệt nếu bạn đã quen thuộc với các ngôn ngữ lập trình hướng đối tượng Java đơn giản hơn C/C++ vì đã loại bỏ tính đa kế thừa và phép toán con trỏ, giúp người học tiếp cận nhanh chóng hơn.

Java cung cấp khả năng bảo mật mạnh mẽ thông qua các thuật toán mã hóa, bao gồm mã hóa một chiều (one way hashing) và mã hóa công cộng (public key), giúp bảo vệ dữ liệu hiệu quả.

Java hỗ trợ tính năng đa luồng, cho phép lập trình viên viết chương trình thực thi nhiều tác vụ đồng thời Tính năng này đặc biệt hữu ích trong lập trình game, giúp nâng cao hiệu suất và trải nghiệm người dùng.

▪ 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.

Firebase

Firebase là nền tảng phát triển ứng dụng di động và web, cung cấp các API mạnh mẽ mà không cần backend hay server Nền tảng này hỗ trợ lập trình viên rút ngắn thời gian triển khai và dễ dàng mở rộng quy mô ứng dụng.

Firebase là dịch vụ cơ sở dữ liệu đám mây mạnh mẽ của Google, giúp đơn giản hóa quy trình lập trình ứng dụng thông qua việc tối ưu hóa các thao tác với cơ sở dữ liệu.

Firebase là dịch vụ cơ sở dữ liệu đám mây mạnh mẽ từ Google, giúp lập trình viên đơn giản hóa việc phát triển ứng dụng thông qua các API dễ sử dụng Với tính năng đa năng và bảo mật cao, Firebase hỗ trợ cả hai nền tảng Android và iOS, trở thành lựa chọn hàng đầu cho nhiều lập trình viên khi xây dựng ứng dụng cho hàng triệu người dùng toàn cầu.

Firebase được phát triển từ Envolve, một công ty khởi nghiệp được thành lập vào năm 2011 bởi James Tamplin và Andrew Lee Envolve đã cung cấp cho các nhà phát triển một API giú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 ra mắt dịch vụ trò chuyện, Tamplin và Lee nhận thấy nó được sử dụng để chuyển dữ liệu ứng dụng ngoài tin nhắn trò chuyện Các nhà phát triển đã áp dụng Envolve để đồng bộ hóa dữ liệu ứng dụng, như trạng thái trò chơi thời gian thực giữa người dùng Do đó, 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 hỗ trợ 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

Firebase ra mắt sản phẩm đầu tiên là Cơ sở dữ liệu thời gian thực, cung cấp API đồng bộ hóa dữ liệu cho ứng dụng trên iOS, Android và Web, đồng thời lưu trữ dữ liệu trên đám mây Sản phẩm này hỗ trợ các nhà phát triển phần mềm trong việc xây dựng ứng dụng cộng tác và tươ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ư:

Khi bạn đăng ký tài khoản trên Firebase để phát triển ứng dụng, bạn sẽ có một cơ sở dữ liệu thời gian thực dưới dạng JSON, tự động đồng bộ hóa đến tất cả các kết nối client Đối với các ứng dụng đa nền tảng, mọi client đều sử dụng chung một cơ sở dữ liệu, và dữ liệu sẽ được cập nhật tự động mỗi khi lập trình viên phát triển ứng dụng Tất cả thông tin này được truyền qua kết nối an toàn SSL với chứng nhận bảo mật 2048 bit.

Khi mất mạng, dữ liệu sẽ được lưu trữ tại local, và mọi thay đổi sẽ tự động được cập nhật lên Server của Firebase Đồng thời, các dữ liệu cũ hơn tại local cũng sẽ được tự động đồng bộ để đảm bảo luôn có dữ liệu mới nhất.

Firebase Authentication nổi bật với khả năng xác thực người dùng qua các nền tảng như Email, Facebook, Twitter, GitHub và Google, đồng thời hỗ trợ xác thực nặc danh cho ứng dụng Quá trình xác thực này giúp bảo vệ thông tin cá nhân của người dùng, đảm bảo an toàn và ngăn chặn việc đánh cắp tài khoản.

Hosting được cung cấp thông qua công nghệ bảo mật SSL từ mạng CDN (Content Delivery Network), một hệ thống máy chủ lưu trữ bản sao của nội dung tĩnh trên website và phân phối đến nhiều máy chủ PoP.

Mạng lưới máy chủ CDN được phân bố toàn cầu, cho phép dữ liệu từ các PoP (Points of Presence) được gửi đến người dùng cuối một cách nhanh chóng Khi người dùng truy cập website, bản sao nội dung từ máy chủ gần nhất sẽ được cung cấp, giúp cải thiện tốc độ truy cập Việc này không chỉ nâng cao trải nghiệm người dùng mà còn giúp lập trình viên tiết kiệm thời gian trong việc 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

Firebase cung cấp một quy trình tạo tài khoản đơn giản, cho phép người dùng dễ dàng đăng nhập bằng tài khoản Google Gói Spark miễn phí của Firebase cung cấp nhiều tính năng hữu ích cho người dùng.

Công nghệ thông tin cung cấp các tính năng hữu ích giúp nhà phát triển dễ dàng bắt đầu Để đáp ứng nhu cầu ngày càng tăng, tôi đã quyết định chọn gói Blaze trả phí với nhiều tính năng nâng cao hơn.

Tốc độ phát triển nhanh trong lĩnh vực lập trình yêu cầu các Developer có quyền truy cập vào Server và Host để quản lý cơ sở dữ liệu và dịch vụ phụ trợ Thông thường, cần có sự phối hợp giữa Backend Developer và Frontend Developer để xây dựng ứng dụng hiệu quả Tuy nhiên, việc này có thể dẫn đến lỗi và sự cố ứng dụng, gia tăng chi phí phát triển Sử dụng Firebase và Firestore giúp Frontend Developer dễ dàng quản lý và giảm thời gian hoàn thành công việc.

Firebase cung cấp nhiều dịch vụ trên một nền tảng, bao gồm hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database Bên cạnh đó, Firebase hỗ trợ lưu trữ Cloud Media một cách dễ dàng và cho phép phát triển ứng dụng không cần máy chủ thông qua 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

Android Studio

Android Studio là một môi trường phát triển tích hợp (IDE) chuyên nghiệp, được Google và JetBrains hợp tác phát triển, nhằm hỗ trợ thiết kế và xây dựng ứng dụng di động trên nền tảng Android Công cụ này được tạo ra để thay thế các phiên bản plugin Android trước đây dành cho Eclipse.

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

Android Studio, với trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, mang đến nhiều tính năng nâng cao giúp cải thiện hiệu suất khi xây dựng ứng dụng Android.

• 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

XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG

Thiết kế giao diện

Phong cách Material Design là sự phát triển vượt bậc của Flat Design, một xu hướng thiết kế đang rất phổ biến Khác với thiết kế phẳng truyền thống mang lại cảm giác 'phẳng lì', Material Design sử dụng các lớp Flat xếp chồng lên nhau, tạo ra chiều sâu và điểm nhấn cho giao diện.

Material Design tập trung vào đường nét đơn giản và gam màu đậm, nổi bật Nó sử dụng các yếu tố đồ họa 3D với hiệu ứng 'nổi lên' trên giao diện, tạo cảm giác trực quan và thu hút người dùng.

Thiết kế này tích hợp các chuyển động tự nhiên, như sự xuất hiện của các nút và menu trên màn hình, nhằm mang đến cho người dùng trải nghiệm mới mẻ, thú vị và gần gũi với thực tế.

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

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

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

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

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

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

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

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

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ý

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

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ủ

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

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

Khi nhấn vào nhắn tin với người dùng mong muốn, giao diện sẽ hiển thị trang nhắn tin cho phép người dùng gửi tin nhắn, gửi ảnh, xem ngày giờ và thời gian gửi tin, cũng như đọ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

4.3.6 Giao diện đăng bài viết

Người dùng có thể tạo bài viết bằng cách nhấn vào biểu tượng dấu cộng khoanh tròn trên trang chủ hoặc trang cá nhân Khi chạm vào biểu tượng này, một trang mới sẽ xuất hiện như hình dưới đây.

Người dùng có thể nhập tiêu đề bài viết, bao gồm tên tác giả, tựa đề sách hoặc nguồn tham khảo, đồng thời chèn hình ảnh minh họa để làm cho nội dung trở nên sinh động và hấp dẫn hơn.

Hình 4 - 20 Giao diện đăng bài viết

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 có thể nhấn vào biểu tượng cây bút màu xanh lá cây để truy cập các chức năng chỉnh sửa thông tin cá nhân.

Hình 4 - 21 Giao diện sửa thông tin cá nhân

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 nhập gì cả

Kích vào nút đăng ký, đăng nhập

Email không hợp lệ Đúng

Nhập email mà không có đuôi

Kích vào nút đăng ký, đăng nhập

Email không hợp lệ Đúng

Nhập email mà không nhập mật khẩu

Kích vào nút đăng ký, đăng nhập

Mật khẩu dài tối thiểu 6 ký tự Đúng

Nhập mật khẩu mà không nhập email

Kích vào nút đăng ký, đăng nhập

Mật khẩu dài tối thiểu 6 ký tự Đúng

Nhập đúng email, mật khẩu nhập ít hơn 6 ký tự

Kích vào nút đăng ký, đăng nhập

Mật khẩu dài tối thiểu 6 ký tự Đúng

Nhập đúng email, nhập đúng mật khẩu

Kích vào nút đăng ký, đăng nhập

Hiển thị thông báo: Đã đăng ký thành công + tên email Đăng nhập thành công Đúng

Nhập email chưa đăng ký vào trang đăng nhập

Kích vào nút đăng ký, đăng nhập

Xác thực thất bại Đúng

Nhập một email đã đăng ký vào trang đăng ký

Kích vào nút đăng ký, đăng nhập

Xác thực thất bại Đúng

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 nhập nội dung mô tả, không chèn ảnh

Nhập tiêu đề, không chèn ảnh, không nhập nội dung mô tả

Nhập tiêu đề, nhập mô tả, không chèn ảnh

Bài đăng đã được công bố Đúng

Nhập tiêu đề, nhập mô tả, chèn ảnh

Bài đăng đã được công bố Đúng

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 bìa, chọn máy ảnh hoặc chọn thư viện

Vui lòng cấp phép truy cập máy ảnh và kho lưu trữ Đúng

Chọn ảnh từ thư viện, chọn ảnh từ máy ảnh xong

Hiển thị thông báo: Ảnh đã được cập nhật Đúng

Chọn sửa tên hiển thị và nhập tên

Kích vào nút cập nhật

Hiển thị thông báo: Đã cập nhật Đúng

Chọn sửa số điện thoại và nhập số điện thoại

Kích vào nút cập nhật

Hiển thị thông báo: Đã cập nhật Đúng

Chọn đổi mật khẩu và nhập sai mật khẩu hiện tại, nhập mật khẩu mới

Chọn đổi mật khẩu và nhập mật khẩu hiện tại, nhập mật khẩu mới

Mật khẩu đã được cập nhật Đúng

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 nhập mô tả, không chèn ảnh nhóm nhắn tin

Nhập tiêu đề, không nhập mô tả, không chèn ảnh đại diện nhóm nhắn tin

Nhập tiêu đề, nhập mô tả, không chèn ảnh

Nhóm đã được tạo Đúng

Nhập tiêu đề, nhập mô tả, chèn ảnh

Nhóm đã được tạo Đúng

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: Đã thích Đúng

Kích vào nút bình luận, viết bình luận, gửi bình luận

Bình luận đã được thêm Đúng

Kích vào nút chia sẻ, chọn nền tảng chia sẻ, nhấn gửi

Hiển thị thông báo: Đã chia sẻ thành công Đú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

Công nghệ thông tin ĐÁNH GIÁ – KẾT LUẬN

Sau thời gian thực hiện đồ án tốt nghiệp, em đã hoàn thành dự án với đầy đủ các chức năng đề tài yêu cầu Trong quá trình này, em đã có nhiều tiến bộ trong việc nghiên cứu lý thuyết, phát triển kỹ năng lập trình, cũng như cải thiện khả năng viết và trình bày báo cáo Đồ án đã được hoàn thành đúng thời gian và tiến độ, đồng thời đạt được các mục tiêu đề ra Các kết quả chính đạt được bao gồm:

✓ 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

✓ 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 đủ

Đồ án tốt nghiệp ngành Công nghệ Thông tin đã đáp ứng được yêu cầu đề ra, tuy nhiên vẫn tồn tại một số hạn chế cần khắc phục.

➢ 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, …

Công nghệ thông tin Để 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

Ngày đăng: 02/10/2023, 15:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w