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

Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java

46 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thiết kế và xây dựng app nhắn tin
Tác giả Nguyễn Thành Luân
Người hướng dẫn TS. Nguyễn Hiếu Cường
Trường học Trường Đại học Giao Thông Vận Tải
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 46
Dung lượng 1,47 MB
File đính kèm ung dung nhan tin.rar (1 MB)

Cấu trúc

  • CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT (6)
    • 1.1 Lý do chọn đề tài (6)
    • 1.2 Ý nghĩa bài toán và thực tiễn (6)
    • 1.3 Bài toán đặt ra và giải pháp (6)
    • 1.4 Mục tiêu của đề tài (7)
    • 1.5 Phương pháp nghiên cứu (7)
    • 1.6 Giới thiệu về ngôn ngữ Java (8)
    • 1.7 Giới thiệu về lập trình Android (9)
    • 1.8 Giới thiệu về Android Studio và Android SDK (10)
    • 1.9 Giới thiệu về Firebase (10)
  • CHƯƠNG 2 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG (13)
    • 2.1 Khảo sát các ứng dụng tương tự (13)
    • 2.2 Phân tích chức năng (14)
    • 2.3 Luồng màn hình (28)
    • 2.4 Đặc tả các màn hình chính (30)
    • 2.5 Kiểm thử chức năng của ứng dụng (42)
  • CHƯƠNG 3 KẾT QUẢ (44)
  • KẾT LUẬN (45)
    • 1. Chức năng chính đã đạt được (45)
    • 2. Hạn chế (45)
    • 3. Hướng phát triển (45)
  • TÀI LIỆU THAM KHẢO (46)

Nội dung

App có chức năng : - Đăng kí thông qua số điện thoại bằng việc gửi OTP - Hiện thị và có thể chỉnh sửa thông tin người sử dụng. - Có thể chat với người khác thông qua tin nhắn, ảnh (sử dụng camera hoặc truy xuất ổ chứa trên điện thoại) và gửi đoạn ghi âm. - Hiển thị User bên kia có online hay là offline. - Danh sách bạn bè sẽ được cập nhật tự động theo danh bạ, có thể thêm bạn bè bằng số điện thoại. - Chat nhóm có thể chat giữa nhiều người với chức năng như chat 2 người, ngoài ra còn có quyền của admin và có thể cấp cho người khác, có thể chỉnh sửa thông tin nhóm hay thêm/xóa người khác ra khỏi nhóm. - Gửi tin nhắn về thông qua FCM trên thanh công cụ của điện thoại để thông báo có tin nhắn tới

GIỚI THIỆU TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT

Lý do chọn đề tài

Trong cuộc sống hằng ngày, ứng dụng nhắn tin luôn là ứng dụng thiết yếu trong mỗi điện thoại của chúng ta Với sự phát triển của ứng dụng android và nhu cầu nhắn tin lẫn việc chuyển dữ liệu sang người khác đang ngày càng phát triển thì các công ty đang đua nhau tạo ra các sản phẩm với các tiện ích và tối ưu ngày càng hiện đại

Chính vì vậy, em đã quyết đinh lựa chon đề tài “Ứng dụng nhắn tin cho các thiết bị Android ” tạo ra sản phẩm có thể đáp ứng nhu cầu của User với mục đích chính là xây dựng trải nghiệm của bản thân trong việc lập trình thiết bị di động.

Ý nghĩa bài toán và thực tiễn

Ứng dụng nhắn tin này phải đáp ứng được các nhu cầu tối thiểu như nhắn được tin nhắn và hình ảnh, hiện thị ra và chỉnh sửa thông tin của User (người dùng) và trò chuyện trong nhóm Vì các sản phẩm trên cửa hàng google play được các công ty xây dựng rất kĩ càng nên sản phẩm của em xây dựng trên trải nghiệm bản thân để học hỏi nên em không có nhu cầu cạnh tranh.

Bài toán đặt ra và giải pháp

 Trước khi một thiết bị được tung ra thị trường, nó sẽ phải trải qua nhiều bước kiểm định đáp ứng các chính sách bảo mật nghiêm ngặt, nên nó phải đáp ứng được các nhu cầu bảo mật trên Google Play Ứng dụng này sẽ được cài đặt trên tất cả các thiết bị mới ngay trước khi được đóng gói đưa ra thị trường

 Các bài toán gặp phải trong thiết kế ứng dụng - Ứng dụng sẽ sử dụng sever nào để lưu trữ dữ liệu

- Cách đăng nhập vào ứng dụng như thế nào

- User sẽ kết bạn với người khác kiểu gì và làm sao để giao tiếp với họ

- Ứng dụng sẽ truy cập vào những gì (ví dụ máy ảnh, ổ chứa file, ghi âm,… ) để trao đổi với người khác

- Làm sao để giao tiếp trong nhóm, cấp quyền admin cho nhóm và xóa/sửa thông tin nhóm

- Nhắn tin trên thiết bị thì thông báo trên thanh thông báo của thiết bị

 Ứng dụng sẽ sử dụng firebase để lưu trữ dữ liệu User thông qua realtime database (dữ liệu thời gian thực) và storage cloud (ổ chứa file, ảnh trên đám mây)

 User sẽ đăng kí thông qua số điện thoại, khi đó firebase sẽ gửi mã OTP (mã xác nhận) về và User nhập vào để đăng nhập, vào những lần sau User sẽ đăng nhập thẳng vào màn hình chính mà không cần đăng kí nữa

 App sẽ tự động đọc danh bạ của User trên điện thoại để hiện bạn lên giống như WhatApps (kiểm tra xem User trong danh bạ có trùng số điện thoại với người nào đó trên database hay không), ngoài ra User còn có thể kết bạn thông qua việc điền số điện thoại

 Ứng dụng cho phép gửi tin nhắn và hình ảnh, ngoài ra User có thể gửi đoạn ghi âm hoặc file bằng cách kéo nút trên màn hình User có thể click vào từng người trên danh sách để chat

 Nhóm cũng sẽ hoạt động như chat 2 người với nhau, người tạo nhóm mặc định là admin, có quyền của admin và có thể cấp cho người khác, có thể chỉnh sửa thông tin nhóm hay thêm/xóa người khác ra khỏi nhóm

 Ứng dụng sử dụng FCM (Firebase Cloud Messaging) là 1 công cụ giúp nhắn tin về điện thoại trên thanh thông báo, để khi User chat thì sẽ hiện thông báo như messager.

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

 App có chức năng : - Đăng kí thông qua số điện thoại bằng việc gửi OTP - Hiện thị và có thể chỉnh sửa thông tin người sử dụng

- Có thể chat với người khác thông qua tin nhắn, ảnh (sử dụng camera hoặc truy xuất ổ chứa trên điện thoại) và gửi đoạn ghi âm

- Hiển thị User bên kia có online hay là offline

- Danh sách bạn bè sẽ được cập nhật tự động theo danh bạ, có thể thêm bạn bè bằng số điện thoại

- Chat nhóm có thể chat giữa nhiều người với chức năng như chat 2 người, ngoài ra còn có quyền của admin và có thể cấp cho người khác, có thể chỉnh sửa thông tin nhóm hay thêm/xóa người khác ra khỏi nhóm

- Gửi tin nhắn về thông qua FCM trên thanh công cụ của điện thoại để thông báo có tin nhắn tới

Phương pháp nghiên cứu

- Ôn tập các kiến thức dã học như xử lý dữ liệu , mô hình hóa , lập trình hướng đối tượng , …

- Làm quen với các ứng dụng thiết kế (figma) để thiết kế qua giao diện cho ứng dụng cũng như tìm hiểu về Unit test , cách viết kịch bản để test app - Tham khảo các chính sách bảo mật của một số công ty lớn trên thị trường như

SamSung , Bkav - Tham khảo một số tính năng của một số app trên thị trường - Tham khảo ý kiến trên các diễn đàn công nghệ (StackOverFlow )

- Tự tìm hiểu và nghiên cứu các công nghệ hiện có trên thị trường như Java 11, Knox SDK , …

- Ngôn ngữ lập trình : Android java 1.8 , xml - Ứng dụng lập trình : Android Studio

- CSDL : Firestore database , Firebase messaging , Firebase Storage - Cùng 1 só các library , sdk khác

Giới thiệu về ngôn ngữ Java

Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các class Khác với phần lớn ngôn ngữ lập trình thông thường , thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy Java được thiết kế biên dịch mã nguồn thành Bytecode, bytecode sau đó đã được môi trường thực thi (runtime environment chạy) Trước đây Java chạy chậm hơn các ngôn ngữ biên dich thẳng ra mã máy như C và C++

, nhưng sau đó nhờ công nghệ biên dịch tại chỗ khoảng cách này đã được thu hẹp , trong 1 số trường hợp java còn có thể chạy nhanh hơn Java chyaj nhanh hơn các ngôn ngữ thông dịch như Python , PHP , … và nó chạy gần như tương đương với C#

Java ban đầu được James Gosling tại Sun Microsystems (sau đó đã được Oracle mua lại) phát triển và được phát hành vào năm 1995 như một thành phần cốt lõi của nền tảng Java của Sun Microsystems Các trình biên dịch Java, máy ảo và thư viện lớp thực thi gốc và tham chiếu ban đầu được Sun phát hành theo giấy phép độc quyền Kể từ tháng 5 năm 2007, tuân theo các thông số kỹ thuật của Quy trình Cộng đồng Java, Sun đã cấp phép hầu hết các công nghệ Java của mình theo Giấy phép Công cộng GNU Oracle cung cấp Máy ảo Java HotSpot của riêng mình, tuy nhiên việc triển khai tham chiếu chính thức là OpenJDK JVM, là phần mềm mã nguồn mở miễn phí và được hầu hết các nhà phát triển sử dụng và là JVM mặc định cho hầu hết các bản phân phối Linux

Tính đến tháng 9 năm 2020, phiên bản mới nhất là Java 15, với Java 11, một phiên bản hỗ trợ dài hạn (LTS), được phát hành vào 25 tháng

9năm2018 Oracle phát hành bản cập nhật miễn phí cho công chúng với phiên bản kế thừa Java 8 LTS vào tháng 1 năm 2019 cho mục đích sử dụng thương mại, mặc dù nếu không nó sẽ vẫn hỗ trợ Java 8 với các bản cập nhật công khai cho mục đích sử dụng cá nhân vô thời hạn Các nhà cung cấp khác đã bắt đầu cung cấp các bản miễn phí của OpenJDK 8 và 11 mà vẫn đang nhận được bảo mật và các nâng cấp khá

1.6.3 Mục đích chính của ngôn ngữ java

Có 6 mục đích chính trong việc xây dựng ngôn ngữ Java :

- Đơn giản , hướng đối tượng và quen thuộc - Mạnh mẽ và an toàn

- Kiến trúc trung lập và di động - Thực thi với hiệu suất cao - Dịch ra bytecode , phân luồng và năng động - Dễ sử dụng cho User Java

1.6.4 Ưu điểm và nhược điểm

 Java là ngôn ngữ mã nguồn mở , miễn phí và thuần hướng đối tượng

 Được hỗ trợ IDE miễn phí

 Có cộng đồng hỗ trợ lớn trên toàn thế giới

 Dễ thực thi , dễ sử dụng , dễ tiếp cận

 API hỗ trợ phong phú

 Thư viện Java khá nặng

 Tương tác với database phải có library riêng

 Máy ảo java có thể chiếm nhiều bộ nhớ

Giới thiệu về lập trình Android

Android là một hệ điều hành được phát triển bởi “Gã khổng lồ” – Google dựa trên nền tảng Linux Từ khi xuất hiện tới nay, Android được phổ biến trên toàn thế giới và lượng User ngày một gia tăng Việc sử dụng ngôn ngữ lập trình Java kết hợp cùng mã nguồn mở giúp cho Android giúp cho các nhà phát triển ứng dụng được tự do hơn trong việc lập trình và khiến Android trở thành một hệ sinh thái các nhà phát triển ứng dụng

Khác với hệ điều hành IOS – bảo mật cao, Android được cộng đồng yêu thích bởi tính năng dễ dàng tùy biến và đa dạng

Tính tới thời điểm hiện tại, Android đã xuất hiện trên thị trường di động được hơn

20 năm và trải qua nhiều bản cập nhật lớn Mỗi bản cập nhật này đều mang lại những tính năng mới góp phần quan trọng trong sự phát triển và thống trị của nền tảng này.

Giới thiệu về Android Studio và Android SDK

- Tháng 5/2013, Google công bố Android Studio, một môi trường phát triển ứng dụng tích hợp (IDE) dành riêng cho Android, mã nguồn mở, dựa trên IDE Java IntelliJ của hãng JetBrains (đối thủ với Eclipse và Netbeans, vốn khá quen thuộc với dân lập trình Java)

- Android Studio chạy trên Windows, Mac và Linux, nhằm thay thế cho Eclipse Android Development Tool (ADT) vốn được sử dụng làm IDE chính trong các năm trước đó

- Một số tính năng nổi bật:

 Bộ công cụ build ứng dụng dựa trên Gradle (thay vì Maven)

 Chức năng dò và sửa lỗi nhanh, hướng Android

 Công cụ chỉnh sửa màn hình dạng kéo thả tiện lợi

 Các wizard tích hợp nhằm giúp lập trình viên tạo ứng dụng từ mẫu có sẵn

 Tích hợp Google Cloud Platform, dễ dàng tích hợp với Google Cloud Messaging và App Engine của Google.

Giới thiệu về Firebase

- 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 User 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 Mục đích nhằm tăng số lượng User 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 User trên toàn thế giới

- Gần một thập niên trước, Firebase ra đời với tiền thân là Envolve Đây là một nền tảng đơn giản chuyên cung cấp những API cần thiết để tích hợp tính năng chat vào trang web Bên cạnh ứng dụng nhắn tin trực tuyến, Envolve còn được User sử dụng để truyền và đồng bộ hóa dữ liệu cho những ứng dụng khác như các trò chơi trực tuyến,… Do đó, các nhà sáng lập đã tách biệt hệ thống nhắn tin trực tuyến và đồng bộ dữ liệu thời gian thực thành hai phần riêng biệt

- Trên cơ sở đó, năm 2012, Firebase ra đời với sản phẩm cung cấp là dịch vụ Backend- as-a-Service Tiếp đến, vào năm 2014, Google mua lại Firebase và phát triển nó thành một dịch vụ đa chức năng được hàng triệu người sử dụng cho đến hiện nay

Hiện nay , đã có rất nhiều dịch vụ đa dạng các chức năng như Firestore Database , Firebase Realtime , Firebase Meassing (FCM) , …

1.9.3 Ưu điểm và nhược điểm

 Tạo tài khoản và phát triển nhanh

 Tốc độ phát triển nhanh

 Nhiều dịch vụ trong một nền tảng

 Firebase được sở hữu bởi Google

 Tạo lưu lượng truy cập và theo dõi lỗi

 Đồng bộ dữ liệu online và offline

 Không phải là mã nguồn mở

 User không có quyền truy cập mã nguồn

 Chỉ hoạt động với CSDL NoSQL

 Không phải tất cả các dịch vụ của Firebase đều miễn phí

 Chỉ chạy trên Google Clound

 Không cung cấp các API GraphQL

1.9.4 Các công cụ Firebase mà em sử dụng

- Firestore Database : Cloud Firestore là một cloud-hosted, NoSQL database mà các ứng dụng phía client có thể trực tiếp truy cập thông qua native SDKs Nó lưu dữ liệu theo mô hình dữ liệu NoSQL Dữ liệu được lưu trữ trong các file tài liệu chứa các trường được ánh xạ vào các giá trị Các file tài liệu này được lưu trữ trong các tập hợp chúng có thể sử dụng nó để tổ chức dữ liệu và truy vấn dữ liệu Cloud Firestore hỗ trợ rất nhiều kiểu dữ liệu từ đơn giản như String, Integer hay những kiểu dữ liệu phức tạp như các nested object

- Firebase Cloud Messaging (FCM) là giải pháp nhắn tin đa nền tảng cho phép bạn gửi tin nhắn miễn phí một cách đáng tin cậy Sử dụng FCM, bạn có thể thông báo cho ứng dụng khách rằng email mới hoặc dữ liệu khác có sẵn để đồng bộ hóa Bạn có thể gửi tin nhắn thông báo để tăng mức độ tương tác lại và giữ chân User Đối với các trường hợp sử dụng như nhắn tin tức thì, một tin nhắn có thể chuyển tải trọng lên đến 4000 byte cho một ứng dụng khách

- Firebase Clound Storage : được xây dựng cho các nhà phát triển ứng dụng cần lưu trữ và phân phát nội dung do User tạo, chẳng hạn như ảnh hoặc video Cloud Storage cho Firebase là một dịch vụ lưu trữ đối tượng mạnh mẽ, đơn giản và tiết kiệm chi phí được xây dựng cho quy mô của Google SDK Firebase cho Bộ nhớ đám mây bổ sung tính năng bảo mật của Google cho các tệp tải lên và tải xuống cho các ứng dụng Firebase của bạn, bất kể chất lượng mạng như thế nào Chúng ta có thể sử dụng SDK của Firebase để lưu trữ hình ảnh, âm thanh, video hoặc nội dung khác do User tạo

Các nhà phát triển sử dụng SDK Firebase cho Bộ nhớ đám mây để tải lên và tải xuống tệp trực tiếp từ máy khách Nếu kết nối mạng kém, máy khách có thể thử lại hoạt động ngay tại nơi nó dừng lại, giúp tiết kiệm thời gian và băng thông cho User của bạn.

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

Khảo sát các ứng dụng tương tự

- Các tính năng nỗi bật có thể kể đến bao gồm:

 Gọi video và âm thanh miễn phí cho User Zalo bất kể họ ở đâu trên thế giới

 Tìm kiếm kết bạn dễ dàng nhanh chóng qua danh bạ

 Hỗ trợ tìm kiếm bạn bè quanh khu vực bạn đang sinh sống

 Nhắn tin icon, hình ảnh, ảnh động gif … cực kì vui nhộn, sống động

 Chia sẻ tài liệu, danh thiếp

 Chia sẻ vị trí, định vị trên bản đồ

 Tin nhắn chúc mừng sinh nhật, lễ tết

 Dễ sử dụng, thuận tiện cho User

 Có thể hỗ trợ cho nhiều ứng dụng bên thứ 3

 Đồng bộ rất bất tiện, không lưu và chuyển tiếp dữ liệu tự động giữa máy tính và điện thoại

 Nhắn tin, gọi điện (cuộc gọi thoại và cuộc gọi video) cho bạn bè

 Trả lời tin nhắn, chuyển tiếp tin nhắn giữa các ô chat với nhau

 Thả biểu tượng cảm xúc cho tin nhắn

 Tùy chọn chủ đề, màu sắc, biệt danh ngay trong ô chat

 Chụp ảnh, quay video với nhiều hiệu ứng sáng tạo, độc đáo

 Cùng xem film, video âm nhạc, chương trình TV thông qua tính năng chat video nhóm

 Giao diện chat, danh sách bạn bè,danh sách các cuộc hội thoại

 Dễ sử dụng, thuận tiện cho User

 Có thể hỗ trợ cho nhiều ứng dụng bên thứ 3 và chính bản thân công ty Facebook

 Việc lưu trữ tin nhắn tự động ngay cả online lẫn offline khiến tạo ra rất nhiều lưu trữ rác trên máy điện thoại

 Giao diện trò chuyện đơn giản

 Chức năng trò chuyện theo nhóm

 Gọi điện miễn phí xuyên quốc gia

 Cơ chế mã hóa tin nhắn bằng giọng nói và gửi các tệp PDF, slide, … đơn giản

 Đồng bộ tốt với danh bạ điện thoại trong máy

 Dễ sử dụng, thuận tiện cho User

 Việc lưu trữ tin nhắn tự động ngay cả online lẫn offline khiến tạo ra rất nhiều lưu trữ rác trên máy điện thoại

Phân tích chức năng

Hình 2.1 Biểu đồ ca sử dụng tổng quát

- Biểu đồ ca sử dụng đăng kí tài khoản

Hình 2.2 Biểu đồ ca sử dụng đăng kí tài khoản

Use Case Name Create Account

Description là User muốn đăng kí để sử dụng ứng dụng

Pre-Conditions Thiết bị cần có internet

Post-Conditions User đăng kí thành công và hệ thống ghi nhận tài khoản đã đăng kí , lưu lại token của thiết bị đã đăng nhập để lần sau vào sẽ không cần đăng nhập OTP nữa ( nếu thiết bị đã có tài khoản trên số điện thoại thì sẽ bỏ qua bước điền thông tin)

Trigger User muốn đăng kí vào hệ thống

Basic flow User truy cập vào ứng dụng

User nhập số điện thoại và mã vùng

Hệ thống xác nhận thông tin đăng kí thành công và cho phép User điền thông tin cá nhân

Hệ thống lưu thông tin và gửi lên sever, đồng thời cho phép User vào trang chủ

Exception Flow Hệ thống kiểm tra xem token có trên máy hay không

- Biểu đồ ca sử dụng đăng nhập tài khoản

Hình 2.3 Biểu đồ ca sử dụng đăng nhập tài khoản

Description là User muốn đăng nhập lại để sử dụng ứng dụng

Pre-Conditions Thiết bị cần có internet Đã có tài khoản

Post-Conditions Hệ thống sẽ kiểm tra token lần trước đăng kí, và sẽ chuyển User vào trang chủ chính

Trigger User muốn đăng nhập vào hệ thống

Basic flow User truy cập vào ứng dụng

User nhập số điện thoại và mã vùng

Hệ thống xác nhận thông tin đăng kí thành công và cho phép User điền thông tin cá nhân

Hệ thống lưu thông tin và gửi lên sever, đồng thời cho phép User vào trang chủ

Exception Flow Hệ thống kiểm tra thông tin số điện thoại và mã OTP xem có hợp lệ không, thông tin tài khoản có trống không

Hệ thống yêu cầu User đăng kí lại

- Biểu đồ ca sử dụng chat giữa các tài khoản và trong nhóm

Hình 2.4 Biểu đồ ca sử dụng chat giữa các tài khoản và trong nhóm

Description là User muốn nhắn tin với nhóm hoặc bạn riêng

Pre-Conditions Thiết bị cần có internet Đã ở trong ứng dụng

Post-Conditions Hệ thống sẽ cập nhật thông tin người hoặc nhóm sẽ được nhắn tin

Trigger User click vào phần chat

Basic flow Phần chat hiện lên, cập nhật các tin nhắn trước (nếu có)

User có thể gửi tin nhắn, hình ảnh hoặc ghi âm lại để gửi cho người khác

Exception Flow Hệ thống sẽ liên tục kiểm tra phần nhắn tin để đảm bảo lỗi không xảy ra trong chuyển dữ liệu

- Biểu đồ ca sử dụng thêm bạn để chat

Hình 2.5 Biểu đồ ca sử dụng thêm bạn để chat

Use Case Name Add Friend

Description là User muốn thêm bạn trong ứng dụng để nhắn tin

Pre-Conditions Thiết bị cần có internet Đã ở trong ứng dụng

Post-Conditions Hệ thống sẽ kiểm tra xem trong danh bạ có số điện thoại nào trùng với người nào trong database không, nếu có sẽ thêm người đó vào

Trigger User muốn thêm bạn để nhắn tin

Basic flow User nhập ID hay số điện thoại của User

Hệ thống sẽ kiểm tra, nếu trùng với dữ liệu trên sever thì sẽ thêm vào

Exception Flow Nếu thông tin không đúng thì hệ thống sẽ không thêm bạn vào

- Biểu đồ tuần tự đăng kí

Hình 2.6 Biểu đồ tuần tự đăng kí

- Biểu đồ tuần tự đăng nhập

Hình 2.7 Biểu đồ tuần tự đăng nhập

- Biểu đồ tuần tự chat

Hình 2.8 Biểu đồ tuần tự chat

- Biểu đồ tuần tự thêm bạn

Hình 2.9 Biểu đồ tuần tự thêm bạn

- Biểu đồ tuần tự tạo nhóm và thêm bạn bè

Hình 2.10 Biểu đồ tuần tự tạo nhóm

 Cơ sở dữ liệu được lưu trên firebase theo mô hình cơ sở dữ liệu phi quan hệ trên Firebase bằng cơ sở dữ liệu thời gian thực (Real-time database)

- User : Lưu trữ thông tin User

User PK uID name image number online status token

 uID : Id tự tạo cho User

 number : số điện thoại User

 online : thể hiện trạng thái online hay offline User

 status : dòng trạng thái của User

 token : token để nhận thông báo tin nhắn đến và đăng nhập vào app

 image : lưu hình ảnh User dưới dạng đường dẫn trong firebase

- Chat : Lưu thông tin tin nhắn User

Chat PK uID date message receiver sender type

 date : thời gian gửi tin nhắn

 message : tin nhắn người gửi, có thể là tin nhắn, ảnh hoặc ghi âm

 type : thay đổi tùy theo message, có thể là text, image hoặc record

- Chat List: Lưu thông tin tin nhắn User đã nhắn tin

Chat List PK uID date Lastmessage Member ChatListID

 Lastmessage : tin nhắn cuối được gửi từ người chat

- Group Detail : Lưu thông tin chi tiết của nhóm

AdminID adminName CreateAt Image isAdmin

 isAdmin : kiểm tra có phải admin hay không

- Group Message : Lưu thông tin chat của nhóm, ngoài ra cách lưu tin nhắn cũng giống như Chat list

Group Message PK uID date Lastmessage Member ChatListID

 uID : ID tự tạo nhóm

 date : thời gian gửi trong nhóm

 Lastmessage : tin nhắn cuối được gửi từ người chat trong nhóm

 member : id người gửi trong nhóm

 ChatListID : id người nhận trong nhóm

Hình 2.11 Cơ sở dữ liệu trên Firebase

Hình 2.12 Lưu trữ file trên firebase

Hình 2.13 Key sever để gửi tin nhắn đến ứng dụng

Luồng màn hình

Hình 2.14 Sơ đồ luồng chạy ứng dụng

STT Tên màn hình Mô tả

1 Login Screen Màn hình đăng nhập

2 Verify Screen Màn hình xác nhận OTP

3 User Data Screen Màn hình điền dữ liệu User

4 Home Screen Màn hình trang chủ

5 Last Message Screen Màn hình tin nhắn gần nhất

6 Group Screen Màn hình nhóm

7 Contact Screen Màn hình hiển thị và thêm bạn bè 8 Profile Screen Màn hình thông tin cá nhân

9 Profile Contact Screen Màn hình thông tin bạn bè

10 Chat Screen Màn hình nhắn tin

2.3.2 Sơ đồ luồng chạy trong nhóm

Hình 2.15 Sơ đồ luồng chạy trong nhóm

STT Tên màn hình Mô tả

1 Group Screen Màn hình nhóm

2 Chat Group Screen Màn hình chat trong nhóm 3 Add Member Screen Màn hình thêm bạn bè vào nhóm 4 Group Info Screen Màn hình thông tin nhóm

Đặc tả các màn hình chính

Hình 2.16 Màn hình đăng nhập (Login Screen)

- Ứng dụng sẽ chuyển đến màn hình chờ OTP, User sẽ nhập mã OTP được gửi trên thanh thông báo

- Số điện thoại gửi đến phải hợp lệ, nghĩa là phải có sim nếu không sẽ không nhận được tin nhắn

Hình 2.17 Màn hình nhập OTP (Verify Screen)

- Khi User nhập mã OTP thì sẽ chuyển đến phần nhập thông tin, User sẽ phải nhập thông tin cá nhân vào

- User điền thông tin vào tên, trạng thái và chỉnh ảnh, ảnh có thể được lấy từ bộ sưu tập hoặc tự chụp rồi lưu vào

Hình 2.18 Màn hình điền thông tin (User Data Screen)

- Phần hiển thị chat giữa 2 người trong thời gian trước

 Hiển thị ra những đoạn chat mà User đã chat trước đó với thời gian các từ lần chat gần nhất

 User có thể click vào để đến đoạn chat đó luôn

Hình 2.19 Màn hình thông tin chat (Last Message Screen)

- Phần hiển thị chat nhóm

 Hiển thị phần chat nhóm mà bạn là thành viên trong đó ( có thể là admin lẫn thành viên)

 User click vào thì sẽ chuyển đến đoạn hội thoại nhóm

Hình 2.20 Màn hình thông tin nhóm (Group Screen)

- Phần hiển thị chat trong danh sách bạn bè

 Hiển thị thông tin bạn bè ( đồng bộ từ danh bạ), ngoài ra User có thể thêm bạn bằng cách nhập số điện thoại

 Click vào icon thông tin thì sẽ xem được trang cá nhân bạn bè, còn click vào thì sẽ chuyển đến cuộc hội thoại

Hình 2.21 Màn hình thông tin chat bạn bè (Contact Screen)

- Phần hiển thị thông tin cá nhân (có thể chỉnh sửa)

 Hiển thị trang thông tin cá nhân, User có thể chỉnh sửa các thông tin trên đó

Hình 2.22 Màn hình thông tin cá nhân (Profile Screen)

- Phần hiển thị thông tin cá nhân bạn bè chỉ có thể xem

Hình 2.23 Màn hình thông tin bạn bè (Profile Contact Screen)

2.4.3 Màn hình chat (giữa 2 người với nhiều người)

 User có thể chat tin nhắn, ảnh, ghi âm cho nhau

Hình 2.24 Màn hình chat giữa 2 người (Chat Screen)

 Tương tự như chat 2 người nhưng có thể phần quản lý nhóm (như trong hình là quản lý nhóm cho admin)

Hình 2.25 Màn hình chat nhóm (Chat Group Screen)

- Phần thêm bạn bè vào nhóm

 Phần thêm bạn bè vào nhóm, bạn bè sẽ được hiển thị dựa vào danh bạ để User thêm vào

Hình 2.26 Màn hình thêm bạn bè vào nhóm (Add Member Screen)

- Phần hiển thị thông tin nhóm

 Phần hiển thị quản lý nhóm, User có quyền cũng có thể cấp quyền admin cho người khác

Hình 2.27 Màn hình hiển thị thông tin nhóm (Group Info Screen)

Kiểm thử chức năng của ứng dụng

STT Nội dung Mục đích kiểm thử Đầu vào Đầu ra mong muốn

1 Đăng nhập/đăng kí bằng số điện thoại

Kiểm tra xem điện thoại có nhận được

Nhập số điện thoại vào Điện thoại nhận được OTP để điền vào

Kiểm tra xem OTP xác nhận có hoạt động không

Xác nhận mã OTP và vào phần nhập thông tin

2 Nhập thông tin đầu vào của tài khoản

Kiểm tra xem nhập thông tin có validate chưa

Validate thông tin xem hợp lệ không

Kiểm tra xem máy ảnh và bộ sưu tập có lấy được ảnh không

Nhấn vào icon chỉnh sửa ảnh

Lấy ảnh và thay đổi avatar

3 Phần hiển thị bạn bè để chat

Kiểm tra xem có hiển thị được bạn bè từ danh bạ không

Lấy dữ liệu từ danh bạ

Thêm dữ liệu User vào màn hình

Tìm kiếm, thêm số điện thoại

Thêm bạn bè vào màn hình

4 Phần gửi tin nhắn giữa 2 người/nhóm

Kiểm tra xem có gửi được tin nhắn/hình ảnh không

Thêm ảnh vào trong phần chat

Hiển thị ảnh lên màn hình và gửi dữ liệu ảnh về kho chứa trên sever

Thêm tin nhắn vào trong phần chat

Hiển thị ảnh lên màn hình và gửi dữ liệu tin nhắn về cơ sở dữ liệu

Kiểm tra hiển thị trạng thái User

Hiển thị online khi giữ ứng dụng chạy

Thông báo bằng icon online

Hiển thị offline khi thoát ứng dụng ra ngoài

5 Quản lý quyền trong nhóm

Kiểm tra chức năng của admin và thành viên hoạt động không

Admin hiển thị quyền quản lý còn thành viên thì không

Hiển thị đúng với yêu cầu

Kiểm tra việc phân quyền admin trong nhóm

Click vào phần chuyển quyền cho người khác

Thay đổi giao diện và dữ liệu của thành viên

KẾT QUẢ

- Sau 1 thời gian tìm hiểu đề tài “Thiết kế và xây dựng App nhắn tin” em đã cơ bản thực hiện được những nội dung theo yêu cầu của em đặt ra

- Đề tài “Thiết kế và xây dựng App nhắn tin” xây dựng trên những ý tưởng khi em học tập về lập trình trên thiết bị di động và qua các đợt thực tập để từ đó em có thể hiểu được cách lập trình và phát triển ứng dụng trong tương lai

- Mặc dù em đã có nhiều cố gắng, tìm hiểu các kiến thức đã được học kết hợp với tra cứu các tài liệu trên mạng nhưng do hạn chế về thời gian, trình độ và kinh nghiệm nên không tránh khỏi những sai sót trong ứng dụng cũng như chưa hoàn thành được các tính năng nâng cao

- Ứng dụng của em đã đạt được :

 Đăng nhập vào bằng điện thoại, có đăng xuất và User có thể đăng ký thông qua số điện thoại với mã vùng ( điện thoại phải có sim mới nhận được thông báo)

 Thêm bạn bè thông qua nhập số điện thoại, số điện thoại sẽ tự động được lưu vào danh bạ và có thể đồng bộ

 Nhắn tin bằng đoạn text, hình ảnh, icon hoặc là file ghi âm

 Hiển thị online, offline User trên máy

Ngày đăng: 05/07/2024, 23:24

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Biểu đồ ca sử dụng tổng quát - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.1 Biểu đồ ca sử dụng tổng quát (Trang 14)
Hình 2.2 Biểu đồ ca sử dụng đăng kí tài khoản - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.2 Biểu đồ ca sử dụng đăng kí tài khoản (Trang 15)
Hình 2.3 Biểu đồ ca sử dụng đăng nhập tài khoản - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.3 Biểu đồ ca sử dụng đăng nhập tài khoản (Trang 16)
Hình 2.4 Biểu đồ ca sử dụng chat giữa các tài khoản và trong nhóm - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.4 Biểu đồ ca sử dụng chat giữa các tài khoản và trong nhóm (Trang 17)
Hình 2.5 Biểu đồ ca sử dụng thêm bạn để chat - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.5 Biểu đồ ca sử dụng thêm bạn để chat (Trang 18)
Hình 2.6 Biểu đồ tuần tự đăng kí - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.6 Biểu đồ tuần tự đăng kí (Trang 20)
Hình 2.7 Biểu đồ tuần tự đăng nhập - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.7 Biểu đồ tuần tự đăng nhập (Trang 21)
Hình 2.8 Biểu đồ tuần tự chat - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.8 Biểu đồ tuần tự chat (Trang 21)
Hình 2.10 Biểu đồ tuần tự tạo nhóm - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.10 Biểu đồ tuần tự tạo nhóm (Trang 22)
Hình 2.9 Biểu đồ tuần tự thêm bạn - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.9 Biểu đồ tuần tự thêm bạn (Trang 22)
Hình 2.11 Cơ sở dữ liệu trên Firebase - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.11 Cơ sở dữ liệu trên Firebase (Trang 26)
Hình 2.13 Key sever để gửi tin nhắn đến ứng dụng - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.13 Key sever để gửi tin nhắn đến ứng dụng (Trang 27)
Hình 2.12 Lưu trữ file trên firebase - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.12 Lưu trữ file trên firebase (Trang 27)
Hình 2.14 Sơ đồ luồng chạy ứng dụng - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.14 Sơ đồ luồng chạy ứng dụng (Trang 28)
Hình 2.19 Màn hình thông tin chat (Last Message Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.19 Màn hình thông tin chat (Last Message Screen) (Trang 33)
Hình 2.21 Màn hình thông tin chat bạn bè (Contact Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.21 Màn hình thông tin chat bạn bè (Contact Screen) (Trang 35)
Hình 2.22 Màn hình thông tin cá nhân (Profile Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.22 Màn hình thông tin cá nhân (Profile Screen) (Trang 36)
Hình 2.23 Màn hình thông tin bạn bè (Profile Contact Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.23 Màn hình thông tin bạn bè (Profile Contact Screen) (Trang 37)
Hình 2.24 Màn hình chat giữa 2 người (Chat Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.24 Màn hình chat giữa 2 người (Chat Screen) (Trang 38)
Hình 2.25 Màn hình chat nhóm (Chat Group Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.25 Màn hình chat nhóm (Chat Group Screen) (Trang 39)
Hình 2.26 Màn hình thêm bạn bè vào nhóm (Add Member Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.26 Màn hình thêm bạn bè vào nhóm (Add Member Screen) (Trang 40)
Hình 2.27 Màn hình hiển thị thông tin nhóm (Group Info Screen) - Báo cáo phân tích thiết kế và xây dựng app nhắn tin bằng java
Hình 2.27 Màn hình hiển thị thông tin nhóm (Group Info Screen) (Trang 41)

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

TÀI LIỆU LIÊN QUAN

w