Xây Dựng Ứng Dụng Nhắn Tin: Đồ Án Tốt Nghiệp Ngành Công Nghệ Thông Tin

Tài liệu nghiên cứu Xây dựng ứng dụng nhắn tin, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về kỹ thuật., phục vụ nghiên cứu và ứng dụng thực tiễn

Trường đại học

Đại học Đà Nẵng

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2023

115
4
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

CAM ĐOAN

1. CHƯƠNG 1: Flutter là gì?

1.1. Lịch sử phát triển

1.2. Kiến trúc khung

1.3. Ngôn ngữ lập trình Dart

1.3.1. Dart là gì?

1.3.2. Các thư viện Dart

1.3.3. Nền tảng

1.4. Khái niệm MongoDB

2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.1. Khảo sát yêu cầu người dùng

2.2. Mô tả nghiệp vụ

2.3. Danh sách Actors

2.4. Xác định use-case của hệ thống

2.5. Biểu đồ Usecase Tổng quát

2.6. UseCase Đăng ký và đăng nhập

2.7. UseCase Quản lý hồ sơ

2.8. UseCase Xem danh sách liên hệ

2.9. UseCase Gửi tin nhắn

2.10. UseCase Gửi hình ảnh video

2.11. UseCase Gửi Audio

2.12. UseCase Gửi File

2.13. Usecase Gọi video

2.14. UseCase Bày tỏ cảm xúc tin nhắn

2.15. Đặc tả UseCase Gửi tin nhắn

2.16. Chia sẻ vị trí của tôi

2.17. Chỉnh sửa hồ sơ cá nhân

2.18. Xóa cuộc gọi khỏi lịch sử cuộc gọi

2.19. Phản hồi tin nhắn

2.20. Tạo nhóm chat

2.21. Thêm liên hệ vào nhóm chat

2.22. Rời khỏi nhóm chat

2.23. Xem liên hệ

2.24. Gỡ hoặc thu hồi tin nhắn

2.25. Ghim tin nhắn

2.26. Chặn tài khoản người dùng

2.27. Thêm bạn bè

2.28. Chấp nhận lời mời kết bạn

2.29. Quản lý người dùng

2.30. Biểu đồ hoạt động

2.31. Biểu đồ tuần tự

2.32. Thiết kế giao diện

2.33. Thiết kế bảng cơ sở dữ liệu (NoSQL)

3. XÂY DỰNG CHƯƠNG TRÌNH

3.1. Công cụ xây dựng

3.2. Giao diện chương trình

3.2.1. Giao diện Trang chủ

3.2.2. Giao diện Đăng ký

3.2.3. Giao diện Đăng nhập

3.2.4. Giao diện Tạo nhóm chat

3.2.5. Giao diện Tab liên hệ

3.2.6. Giao diện Tab Cuộc gọi

3.2.7. Giao diện Hồ sơ

3.2.8. Giao diện Chỉnh sửa hồ sơ

3.2.9. Giao diện Cuộc hội thoại

3.2.10. Giao diện Chia sẻ vị trí của tôi

3.2.11. Giao diện Phản hồi tin nhắn

3.2.12. Giao diện Chuyển tiếp tin nhắn

3.2.13. Giao diện Gọi video

3.2.14. Giao diện Tìm kiếm

3.2.15. Giao diện Camera

3.2.16. Giao diện Xem hình ảnh

3.2.17. Giao diện Chọn ảnh, video, file, âm thanh từ thư viện

3.2.18. Giao diện Bày tỏ cảm xúc tin nhắn

3.2.19. Giao diện Thống kê

3.2.20. Giao diện Quản lý người dùng

3.2.21. Giao diện Quản lý nhóm

3.2.22. Giao diện Hồ sơ của admin

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Về công nghệ

Về ứng dụng

Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Xây Dựng Ứng Dụng Nhắn Tin Bằng Dart và Flutter

Xây dựng ứng dụng nhắn tin là một trong những xu hướng phát triển phần mềm hiện đại. Sử dụng ngôn ngữ lập trình Dart và framework Flutter, việc phát triển ứng dụng trở nên dễ dàng và hiệu quả hơn. Ứng dụng nhắn tin không chỉ giúp người dùng kết nối mà còn mang lại trải nghiệm người dùng tốt hơn với giao diện thân thiện và tính năng phong phú.

1.1. Lợi ích của việc sử dụng Dart và Flutter

Ngôn ngữ Dart cung cấp hiệu suất cao và khả năng phát triển nhanh chóng. Flutter cho phép xây dựng giao diện người dùng đẹp mắt và tương tác mượt mà, giúp tăng cường trải nghiệm người dùng.

1.2. Tại sao chọn ứng dụng nhắn tin

Ứng dụng nhắn tin đáp ứng nhu cầu giao tiếp nhanh chóng và hiệu quả. Nó cho phép người dùng gửi tin nhắn văn bản, hình ảnh, và video mà không tốn phí như các dịch vụ nhắn tin truyền thống.

II. Thách thức trong việc Xây Dựng Ứng Dụng Nhắn Tin

Mặc dù việc xây dựng ứng dụng nhắn tin bằng DartFlutter mang lại nhiều lợi ích, nhưng cũng tồn tại không ít thách thức. Các vấn đề như bảo mật thông tin, khả năng mở rộng và hiệu suất là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Vấn đề bảo mật trong ứng dụng nhắn tin

Bảo mật thông tin người dùng là một trong những ưu tiên hàng đầu. Cần áp dụng các biện pháp mã hóa và xác thực để bảo vệ dữ liệu cá nhân.

2.2. Khả năng mở rộng của ứng dụng

Khi số lượng người dùng tăng lên, ứng dụng cần có khả năng mở rộng để xử lý lượng dữ liệu lớn mà không làm giảm hiệu suất.

III. Phương Pháp Xây Dựng Ứng Dụng Nhắn Tin Bằng Dart và Flutter

Để xây dựng ứng dụng nhắn tin hiệu quả, cần áp dụng các phương pháp và công nghệ hiện đại. Việc sử dụng NodeJS cho backend và MongoDB cho cơ sở dữ liệu là những lựa chọn phổ biến.

3.1. Thiết kế giao diện người dùng với Flutter

Giao diện người dùng được thiết kế trực quan và dễ sử dụng, giúp người dùng dễ dàng tương tác với ứng dụng.

3.2. Kết nối API trong Flutter

Việc kết nối với API giúp ứng dụng có thể gửi và nhận dữ liệu một cách nhanh chóng và hiệu quả.

IV. Ứng Dụng Thực Tiễn và Kết Quả Nghiên Cứu

Ứng dụng nhắn tin được phát triển không chỉ phục vụ cho nhu cầu giao tiếp mà còn có thể tích hợp nhiều tính năng khác như gọi video, chia sẻ vị trí, và quản lý nhóm. Kết quả nghiên cứu cho thấy ứng dụng này có tiềm năng lớn trong việc kết nối người dùng.

4.1. Tính năng nổi bật của ứng dụng

Ứng dụng cung cấp nhiều tính năng như gửi tin nhắn, gọi video, và chia sẻ tài liệu, giúp người dùng có trải nghiệm phong phú.

4.2. Phản hồi từ người dùng

Người dùng đánh giá cao về tính năng và giao diện của ứng dụng, cho thấy sự hài lòng và mong muốn sử dụng lâu dài.

V. Kết Luận và Hướng Phát Triển Ứng Dụng Nhắn Tin

Xây dựng ứng dụng nhắn tin bằng DartFlutter không chỉ là một dự án công nghệ mà còn là một cơ hội để cải thiện cách thức giao tiếp giữa con người. Hướng phát triển trong tương lai có thể bao gồm việc tích hợp AI và machine learning để nâng cao trải nghiệm người dùng.

5.1. Tương lai của ứng dụng nhắn tin

Ứng dụng có thể mở rộng thêm nhiều tính năng mới như chatbot và hỗ trợ đa ngôn ngữ để phục vụ người dùng tốt hơn.

5.2. Định hướng phát triển công nghệ

Cần tiếp tục nghiên cứu và áp dụng các công nghệ mới để cải thiện hiệu suất và bảo mật cho ứng dụng.

13/07/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. Flutter là gì? Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi Google. Nó được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là phương thức chính để tạo ứng dụng cho Google Fuchsia. Lịch sử phát triển Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành Android.

Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kết xuất ổn định ở mức 120 khung hình trên giây. Trong bài phát biểu chính ở hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1. Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên bản"ổn định"đầu tiên của framework này. Kiến trúc khung Các thành phần chính của Flutter gồm: − Nền tảng Dart: Ứng dụng Flutter được viết bằng ngôn ngữ Dart và tận dụng nhiều tính năng nâng cao của ngôn ngữ này.

Trên Android, và trên Windows, macOS và Linux thông qua dự án chưa chính thức mang tên Flutter Desktop Embedding, Flutter chạy trên máy ảo Dart với engine thực thi just-in- time (JIT). Do giới hạn về thực thi mã động của App Store, ứng dụng Flutter sử dụng biên dịch ahead-of-time (AOT) trên iOS. − Flutter engine: Engine của Flutter được viết chủ yếu bằng C++, cung cấp sự hỗ trợ kết xuất ở mức độ thấp bằng thư viện đồ họa Skia của Google. Thêm vào đó, nó giao tiếp với các SDK của riêng nền tảng như các SDK do Android và iOS cung cấp.

− Thư viện Foundation. − Các widget được thiết kế riêng. Ngôn ngữ lập trình Dart 1. Dart là gì? Dart là một ngôn ngữ lập trình web do Google phát triển.

Nó được chính thức công bố tại Hội thảo GOTO Lưu trữ 2012-12-21 tại Wayback Machine ngày 10-12 tháng 10 năm 2011 tại Aarhus. Mục đích của Dart không phải để thay thế JavaScript như là ngôn ngữ kịch bản chính bên trong trình duyệt web, mà là cung cấp sự lựa chọn hiện đại hơn. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 3 Xây dựn ứng dụng nhắn tin 1.

Các thư viện Dart có một bộ thư viện cốt lõi phong phú , cung cấp các yếu tố cần thiết cho nhiều tác vụ lập trình hàng ngày: − Các loại, bộ sưu tập tích hợp và chức năng cốt lõi khác cho mọi chương trình Dart ( dart:core) − Các loại bộ sưu tập phong phú hơn như hàng đợi, danh sách được liên kết, hashmap và cây nhị phân ( dart:collection) − Bộ mã hóa và giải mã để chuyển đổi giữa các biểu diễn dữ liệu khác nhau, bao gồm JSON và UTF-8 ( dart:convert) − Các hằng số và hàm toán học, và tạo số ngẫu nhiên ( dart:math) − Tệp, ổ cắm, HTTP và hỗ trợ I/O khác cho các ứng dụng không phải web ( dart:io) − Hỗ trợ lập trình không đồng bộ, với các lớp như Futurevà Stream ( dart:async) − Danh sách xử lý hiệu quả dữ liệu có kích thước cố định (ví dụ: số nguyên 8 byte không dấu) và loại số SIMD ( dart:typed_data) − Giao diện chức năng nước ngoài cho khả năng tương tác với mã khác trình bày giao diện kiểu C ( dart:ffi) − Lập trình đồng thời bằng cách sử dụng các bộ tách biệt —các công nhân độc lập tương tự như các luồng nhưng không chia sẻ bộ nhớ, chỉ giao tiếp qua thông báo ( dart:isolate) − Các phần tử HTML và các tài nguyên khác dành cho các ứng dụng dựa trên web cần tương tác với trình duyệt và Mô hình đối tượng tài liệu (DOM) ( dart:html) 1. Nền tảng Công nghệ biên dịch của Dart cho phép bạn chạy mã theo nhiều cách khác nhau: − Native platform: Đối với các ứng dụng nhắm mục tiêu thiết bị di động và máy tính để bàn, Dart bao gồm cả Dart VM với trình biên dịch just-in-time (JIT) và trình biên dịch trước thời hạn (AOT) để tạo mã máy. − Web platform: Đối với các ứng dụng nhắm mục tiêu web, Dart có thể biên dịch cho mục đích phát triển hoặc sản xuất. Trình biên dịch web của nó dịch Dart thành JavaScript.

Khái niệm MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng viết bằng C++. Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản (Document), là một cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng JSON. MongoDB được phát triển bởi MongoDB Inc. dưới dạng giấy phép Server Side Public License (SSPL) Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS.

Nguyễn Tấn Thuận 4 Xây dựn ứng dụng nhắn tin 1. Lịch sử − MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát triển một nền tảng tương tự dịch vụ Azure của Microsoft. Công ty 10gen là một công ty phần mềm có trụ sở tại New York, nay được đổi tên thành MongoDB Inc. Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng sau đó vào năm 2009, MongoDB đã xuất hiện trên thị trường như một dự án mã nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.

− Tháng 3 năm 2010, MongoDB Inc. đã tung ra sản phẩm sẵn sàng đầu tiên của mình là phiên bản 1. Phiên bản ổn định tiếp theo của MongoDB là phiên bản 2.9 được phát hành vào ngày 10 tháng 1 năm 2014. − Đầu năm 2015, phiên bản 3.0 được phát hành, cuối năm 2015 phiên 3.2 ra đời đi kèm với công cụ quản trị trên giao diện đồ họa MongoDB Compass.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ web.

Chương trình được viết bằng JavaScript, sử dụng kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối thiểu tổng chi phí và tối đa khả năng mở rộng.js bao gồm có V8 JavaScript engine của Google, libUV, và vài thư viện khác. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 5 Xây dựn ứng dụng nhắn tin CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.

Khảo sát yêu cầu người dùng - Chức năng cung cấp khả năng chat với bạn bè. - Cung cấp khả năng tải hình đại diện cho bản thân. - Hệ thống sẽ lưu trữ thông tin của người dùng. - Hệ thống giúp xem được những người đang hoạt động hay không.

- Tìm kiếm bạn bè một cách nhanh nhất. - Cho phép thay đổi mật khẩu một cách dễ dàng. Mô tả nghiệp vụ 2. Danh sách Actors Bảng 2.

Danh sách Actors Khách vãng lai Những khách vãng lai Người dùng Những thành viên có tài khoản và đã đăng nhập vào hệ thống Người quản lý Người quản lý 2. Xác định use-case của hệ thống Bảng 2. Use-case của hệ thống Khách vãng lai - Đăng ký tài khoản Người dùng - Đăng nhập - Đăng xuất - Cập nhật mật khẩu - Nhắn tin. - Ghi lại và gửi tin nhắn thoại/tin nhắn video - Gửi file, ảnh và video.

- Chia sẻ vị trí. - Duy trì kết nối bằng cuộc gọi video. - Xóa lịch sử cuộc gọi. - Gỡ hoặc thu hồi tin nhắn.

- Tạo nhóm chat. - Rời khỏi nhóm chat. - Thêm liên hệ mới vào nhóm chat. - Chặn tài khoản người dùng.

- Ghim tin nhắn. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 6 Xây dựn ứng dụng nhắn tin - Xem và chỉnh sửa hồ sơ cá nhân. - Xem hồ sơ người khác.

- Thêm bạn bè. - Chấp nhận lời mời kết bạn. - Xem trạng thái hoạt động. - Thả cảm xúc tin nhắn.

- Phản hồi tin nhắn. - Chuyển tiếp tin nhắn. Quản lý - Xem thống kê (tin nhắn, thành viên,…). - Quản lý người dùng.

- Xem và chỉnh sửa hồ sơ quản lý. Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 7 Xây dựn ứng dụng nhắn tin 2. Biểu đồ Usecase Tổng quát Hình 2.

Biểu đồ Usecase tổng quát Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 8 Xây dựn ứng dụng nhắn tin 2. UseCase Đăng ký và đăng nhập Hình 2. Sơ đồ Usecase Đăng ký và đăng nhập 2.

UseCase Quản lý hồ sơ Hình 2. Sơ đồ UseCase Quản lý hồ sơ Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 9 Xây dựn ứng dụng nhắn tin 2. UseCase Xem danh sách liên hệ Hình 2.

Sơ đồ UseCase Xem danh sách liên hệ 2. UseCase Tìm kiếm Hình 2. Sơ đồ UseCase Tìm kiếm Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 10 Xây dựn ứng dụng nhắn tin 2.

UseCase Gửi tin nhắn Hình 2. Biểu đồ UseCase Gửi tin nhắn 2. UseCase Gửi hình ảnh video Hình 2. Biểu đồ UseCase Gửi hình ảnh video Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS.

Nguyễn Tấn Thuận 11 Xây dựn ứng dụng nhắn tin 2. UseCase Gửi Audio Hình 2. Biểu đồ UseCase Gửi Audio 2. UseCase Gửi File Hình 2.

Biểu đồ UseCase Gửi File Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 12 Xây dựn ứng dụng nhắn tin 2. Usecase Gọi video Hình 2. Biểu đồ Usecase Gọi video 2.

UseCase Bày tỏ cảm xúc tin nhắn Hình 2. Biểu đồ UseCase Bày tỏ cảm xúc tin nhắn 2. Đặc tả UseCase 2. Đặc tả Usecase Đăng ký Usecase name Đăng ký Primary actor Khách vãng lai Brief description Đăng ký tài khoản Input Họ và tên, số điện thoại di động, mật khẩu, ngày sinh và giới tính của mình.

Output Thông báo “Đã đăng ký thành công” Sinh viên thực hiện: Nguyễn Văn Hoàn Người hướng dẫn: TS. Nguyễn Tấn Thuận 13 Xây dựn ứng dụng nhắn tin Truy cập vào trang chủ thành công Basic flows 1. Khách vãng lai truy cập ứng dụng. Khách vãng lai nhập tên, số điện thoại di động, mật khẩu, ngày sinh và giới tính của mình.

Khách vãng lai nhấn nút Đăng ký. Hệ thống kiểm tra thông tin người dùng đúng tiêu chuẩn không → Hệ thống gửi mã xác minh đến số điện thoại. Khách vãng lai nhập mã xác nhận số điện thoại di động của mình. Khách vãng lãi nhấn nút Xác nhận 7.

Kết thúc UseCase Sub flows - Khách vãng lai đóng trang Đăng ký (bắt đầu từ sau bước 3) ➔ Kết thúc usecase Exceptional 4a. Hệ thống xác thực thông tin sai tiêu chuẩn. Khách vãng lai nhập lại số điện thoại trong trường hợp số điện thoại sai hoặc đã đăng ký trước đó. Khách vãng lai nhập lại mật khẩu trong trường hợp mật khẩu không hợp lệ.

Tiếp tục Use case 5-7. Hệ thống xác thực mã xác nhận. Nhập lại mã bảo mật.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Xây Dựng Ứng Dụng Nhắn Tin Bằng Dart và Flutter" cung cấp cái nhìn sâu sắc về quy trình phát triển ứng dụng nhắn tin sử dụng ngôn ngữ lập trình Dart và framework Flutter. Tài liệu này không chỉ hướng dẫn người đọc cách xây dựng một ứng dụng nhắn tin cơ bản mà còn nhấn mạnh những lợi ích của việc sử dụng Dart và Flutter, như khả năng phát triển nhanh chóng, giao diện người dùng đẹp mắt và hiệu suất cao. Độc giả sẽ tìm thấy các ví dụ thực tế và hướng dẫn chi tiết, giúp họ dễ dàng áp dụng kiến thức vào dự án của riêng mình.

Nếu bạn muốn mở rộng thêm kiến thức về các kỹ thuật kiểm thử phần mềm, hãy tham khảo tài liệu "Luận văn các kỹ thuật trong kiểm thử dòng dữ liệu tĩnh". Ngoài ra, để tìm hiểu về chất lượng sản phẩm phần mềm, tài liệu "Luận văn chất lượng sản phẩm dịch vụ phần mềm tại công ty phần mềm vinno việt nam" sẽ là một nguồn tài liệu hữu ích. Cuối cùng, nếu bạn quan tâm đến việc phát triển ứng dụng di động, tài liệu "Đồ án tốt nghiệp đại học ngành kỹ thuật phần mềm đề tài xây dựng ứng dụng mobile food delivery" sẽ cung cấp thêm thông tin quý giá. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và kỹ năng trong lĩnh vực phát triển ứng dụng.