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

Xây Dựng Ứng Dụng Chat Trực Tuyến Cho Sinh Viên Dự Án Công Nghệ Thông Tin.pdf

52 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 đề Xây Dựng Ứng Dụng Chat Trực Tuyến Cho Sinh Viên
Tác giả Nguyễn Minh Thuận
Người hướng dẫn ThS Doãn Xuân Thanh
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Dự Án Công Nghệ Thông Tin
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 52
Dung lượng 4,2 MB

Nội dung

1.4 Mô tả yêu cầu chức năng 1.4.1 Phân tích yêu cầu của hệ thống - Người dùng có thể thay đổi thông tin cá nhân như hình ảnh, tên, giới tính… - Người dùng thực hiện chat trên ứng dụng,

Trang 1

NGUYỄN MINH THUẬN - 51702192

XÂY DỰNG ỨNG DỤNG CHAT TRỰC TUYẾN CHO SINH VIÊN

DỰ ÁN CÔNG NGHỆ THÔNG TIN

KỸ THUẬT PHẦN MỀM

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN MINH THUẬN - 51702192

XÂY DỰNG ỨNG DỤNG CHAT TRỰC

TUYẾN CHO SINH VIÊN

DỰ ÁN CÔNG NGHỆ THÔNG TIN

KỸ THUẬT PHẦN MỀM

Người hướng dẫn

ThS Doãn Xuân Thanh

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 3

Chúng em xin chân thành cảm ơn ………

………

………

………

………

………

………

………

TP Hồ Chí Minh, ngày 17 tháng 03 năm 2024

Tác giả Thuan Nguyễn Minh Thuận

Trang 4

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH

TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sựhướng dẫn khoa học của ThS Doãn Xuân Thanh Các nội dung nghiên cứu, kếtquả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nàotrước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhậnxét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõtrong phần tài liệu tham khảo

Ngoài ra, trong Dự án còn sử dụng một số nhận xét, đánh giá cũng như

số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thíchnguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung Dự án của mình Trường Đại học Tôn Đức Thắng không

liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trìnhthực hiện (nếu có)

TP Hồ Chí Minh, ngày 17 tháng 3 năm 2024

Tác giả Thuan Nguyễn Minh Thuận

Trang 5

TÓM TẮT

(Time New Romans – 13)

Trang 6

TITLE ABSTRACT

(Time New Romans – 13)

Trang 7

DANH MỤC HÌNH VẼ

DANH MỤC BẢNG BIỂU viii

DANH MỤC CÁC CHỮ VIẾT TẮT

CHƯƠNG 1 MỞ ĐẦU VÀ TỔNG QUAN ĐỀ TÀI

1.1 Tổng quan

1.2 Mục tiêu đề tài

1.3 Phạm vi đề tài

1.3.1 Chức năng dành cho người dùng:

1.3.2 Chức năng dành cho người quản trị

1.4 Mô tả yêu cầu chức năng

1.4.1 Phân tích yêu cầu của hệ thống

1.4.2 Mô tả hoạt động của hệ thống

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 NestJS

2.1.1 NestJS là gì?

2.1.2 Cấu trúc của NestJS

2.1.3 Các tính năng của NestJS

2.2 MongoDB

2.2.1 5 2.2.2 Các tính năng của MongoDB

2.3 Kotlin

2.3.1 Koitlin là gì?

Trang 8

2.3.2 Điểm nổi bật của Kotlin

2.4 Android Studio

2.4.1 Android Studio là gì?

2.4.2 Các tính năng của Android Studio

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

3.1 Yêu cầu chức năng

3.1.1 Đối với người dùng

3.1.2 Đối với quản lý

3.1 Cài đặt thực nghiệm

CHƯƠNG 4 HIỆN THỰC

4.1 Cấu hình phần cứng, phần mềm

4.2 Giao diện của hệ thống

TÀI LIỆU THAM KHẢO

Trang 9

Hình 2.1: Scaled Dot-Product Attention

Trang 10

DANH MỤC BẢNG BIỂU

Bảng 4.1: Thống kê kiểu thực thể trong tập VLSP 2016

Trang 11

BERT Bidirectional Encoder Representations from

Transformers

Trang 12

CHƯƠNG 1 MỞ ĐẦU VÀ TỔNG QUAN ĐỀ TÀI

- Dựa vào những tiêu chí trên, cùng với sự góp ý từ thầy bộ môn, nhóm đã chọn đề tài quán lý dự án “Xây đựng ứng dụng chat trực tuyến” Dự án hoàn thành sẽ cung cấp tiện ích chat trực tuyến trên nền tảng mobile, giúp người dùng có thể trao đổi thông tin nhanh chóng trực quan

1.2 Mục tiêu đề tài

Mục tiêu chính của dự án là cung cấp cho sinh viên một nền tảng giao tiếp thuậntiện, nhanh chóng và an toàn Ứng dụng sẽ hỗ trợ các tính năng cơ bản như gửi tin nhắn, tạo nhóm trò chuyện, tìm kiếm bạn bè Đồng thời, chúng tôi cũng muốn tạo ra một môi trường giao tiếp tích cực, thú vị và độc đáo, giúp sinh viêncảm thấy gần gũi và kết nối hơn với nhau

1.3 Phạm vi đề tài

1.3.1 Chức năng dành cho người dùng:

- Giao diện dễ sử dụng và thân thiện, dễ thao tác và sử dụng

- Cho phép khách hàng đăng kí tài khoản

- Chat nhóm và chat cá nhân

- Xem danh sách nhóm chat, danh sách bạn bè

Trang 13

1.3.2 Chức năng dành cho người quản trị

Ngoài các yêu cầu giống như của khách hàng, thì hệ thống phải đảm bảo những yêu cầu sau:

- Cập nhật được trạng thái hoạt động của người dùng

- Thống kê và tìm kiếm được tất cả người dùng theo số điện thoại

1.4 Mô tả yêu cầu chức năng

1.4.1 Phân tích yêu cầu của hệ thống

- Người dùng có thể thay đổi thông tin cá nhân như hình ảnh, tên, giới tính…

- Người dùng thực hiện chat trên ứng dụng, hệ thống sẽ tiếp nhận tin nhắn và gửi cho đối tượng chỉ định

- Cho phép người dùng gửi tin nhắn, hình ảnh và video

- Người dùng có thể tạo nhóm chat, ghim cuộc trò chuyện

- Từ mô tả trên, có thể đưa ra yêu cầu của hệ thống với hai đối tượng chính tương tác với hệ thống như sau:

Đối với hệ thống:

- Quản lý thông tin của người dùng và thay đổi trạng thái hoạt động

- Tìm kiếm thông tin người dùng dựa trên số điện thoại

Đối với người dùng:

- Tạo tài khoản, xem và chỉnh sửa thông tin cá nhân

- Chat cá nhân hoặc chat nhóm

- Ghim cuộc trò chuyện

- Gửi tin nhắn, hình ảnh và video…

- Xem danh sách bạn bè

Trang 14

- Kết bạn bằng số điện thoại.

1.4.2 Mô tả hoạt động của hệ thống

- Người dùng cần phải đăng ký 1 tài khoản gồm số điện thoại và mật khẩu trước khi

sử dùng ứng dụng chat

- Người dùng có thể kết bạn dựa trên số điện thoại, sau khi có bạn bè trong danh sách, người dùng có thể chat với bạn bè của mình

- Thành viên trong hộp thoại chat có thể gửi tin nhắn văn bản, đi kèm với hình ảnh

- Ngoài ra, người dùng có thể tạo group chat để tiện trong việc trao đổi thông tin theo nhóm, với cách thức hoạt động tương tự như chat đơn

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2.1 NestJS

2.1.1 NestJS là gì?

NestJS là một framework mã nguồn mở để phát triển ứng dụng server-side (backend applications) bằng ngôn ngữ TypeScript hoặc JavaScript Nó được xây dựng trên cơ sở Node.js và sử dụng các khái niệm từ TypeScript để tạo ra một môi trường phát triển hiện đại và mạnh mẽ cho việc xây dựng ứng dụng web và API

Trang 15

Mục tiêu chính của NestJS là cung cấp một cấu trúc ứng dụng rõ ràng và dễ quản lý,giúp tăng tính bảo trì và sự tổ chức trong mã nguồn Để đạt được điều này, NestJS triển khai mô hình kiến trúc lõi (core architecture) dựa trên các nguyên tắc của Angular, đặc biệt là sử dụng Dependency Injection (DI) và Modules (Các module).

2.1.2 Cấu trúc của NestJS

NestJS được xây dựng từ nhiều yếu tố khác nhau, tuy nhiên quan trọng nhất là bathành phần chính sau:

Modules

Modules: được sử dụng để tổ chức code và chia các tính năng thành các đơn vị cóthể tái sử dụng hợp lý Các tệp TypeScript được nhóm bằng Decorator “@Module”.Decorator “@Module” cung cấp siêu dữ liệu cho NestJS giúp nó xác định các thànhphần, bộ điều khiển hay những tài nguyên khác để sắp xếp cấu trúc ứng dụng khoahọc, hiệu quả

Providers

Một thành phần không thể thiếu ở NestJS đó là Providers Nó tương tự như mộtdịch vụ giúp xử lý những tác vụ mang tính phức tạp, logic mà các trình xử lý

Trang 16

Controller không thể làm được Providers có thể được tạo và đưa vào Controllershoặc Providers khác.

Controllers

Chức năng chính của Controllers là xử lý các yêu cầu gửi đến và đáp trả lại choclient-side Sau khi nhận được yêu cầu HTTP nó sẽ soạn thảo câu trả lời chính xác,phù hợp nhất để gửi đi Mỗi Controllers sẽ có bộ lộ trình riêng để giúp nó thực hiệntốt các tác vụ khác nhau

2.1.3 Các tính năng của NestJS

NestJS framework được người dùng sử dụng cực kỳ phổ biến bởi nó sở hữu những tính năng hữu ích như:

- Sử dụng TypeScript và cho phép ngôn ngữ lập trình này thích ứng nhanh để đáp ứng mọi thay đổi của JavaScript

- Cài đặt đơn giản, dễ sử dụng, không mất nhiều thời gian để học hỏi, nghiên cứu

- Tăng hiệu suất và dễ dàng phát triển nhờ giao diện dòng lệnh CLI mạnh mẽ

- Nguồn tài liệu đa dạng, phong phú, chi tiết và được duy trì tốt

- Khả năng mở rộng, phát triển và bảo trì cơ sở mã đang hoạt động

- Là mã nguồn mở của Node.js phát triển mạnh mẽ vượt bậc nhất trong vài năm trở lại đây

- Hỗ trợ mô đun giúp các ứng dụng tích hợp các công nghệ và khái niệm phổ biến như Caching, WebSockets, Logging, Validation, TypeORM, Mongoose…

- Được tạo cho Micro-services và Monoliths

2.2 MongoDB

2.2.1 MongoDB là gì?

MongoDB, được biết đến như cơ sở dữ liệu NoSQL phổ biến nhất, là cơ sở dữ liệu định hướng tài liệu mã nguồn mở Thuật ngữ 'NoSQL' có nghĩa là 'không có mối quan hệ' (Non-relational) Điều đó có nghĩa là MongoDB không dựa trên cấu trúc

Trang 17

lưu trữ và truy xuất dữ liệu Định dạng lưu trữ này được gọi là BSON (tương tự nhưđịnh dạng JSON).

2.2.2 Các tính năng của MongoDB

Scalability

Trang 18

MongoDB mở rộng quy mô theo chiều ngang bằng cách sử dụng sharding (phân vùng dữ liệu trên các máy chủ khác nhau) Dữ liệu được phân vùng thành các khối

dữ liệu bằng “shard key” và các khối dữ liệu này được phân phối đều trên các phân đoạn nằm trên nhiều máy chủ vật lý Ngoài ra, các máy mới có thể được thêm vào

cơ sở dữ liệu đang chạy

Replication and High Availability

MongoDB tăng tính khả dụng của dữ liệu với nhiều bản sao dữ liệu trên các máy chủ khác nhau Bằng cách cung cấp bản dự phòng, nó bảo vệ cơ sở dữ liệu khỏi các lỗi phần cứng Nếu một máy chủ gặp sự cố, dữ liệu có thể được truy xuất dễ dàng từcác máy chủ đang hoạt động khác cũng có dữ liệu tương tự được lưu trữ trên chúng

Aggregation Các hoạt động tổng hợp xử lý các bản ghi dữ liệu và trả về kết quả

tính toán Nó tương tự như mệnh đề GROUPBY trong SQL Một vài biểu thức tổnghợp là tổng, trung bình, tối thiểu, tối đa, v.v

2.3 Kotlin

2.3.1 Koitlin là gì?

Kotlin là ngôn ngữ lập trình mã nguồn mở được phát triển bởi JetBrains và công

bố trên thị trường vào năm 2011 Tương tự như các ngôn ngữ lập trình quen thuộc

C, C++, Java, Kotlin cũng thuộc danh mục ngôn ngữ lập trình kiểu tĩnh Điều nàyđồng nghĩa với việc các biến của ngôn ngữ không cần định nghĩa trước khi sửdụng

Kotlin dành cho Java Virtual Machine , phát hành chính thức phiên bản 1.0 Ngônngữ này chạy trên JVM và có khả năng sử dụng công cụ, thư viện hiện có của Java.Ngược lại, Java cũng có thể sử dụng những item có trong Kotlin Kotlin hiện đượcGoogle sử dụng làm ngôn ngữ lập trình chính thức cho máy ảo Java từ tháng5/2017

2.3.2 Điểm nổi bật của Kotlin

Trang 19

Kotlin là một ngôn ngữ đa nền tảng, có thể chạy trên nhiều hệ điều hành nhưAndroid, iOS, Windows, Linux và nhiều hơn nữa Điều này cho phép lập trình viênviết mã một lần và sử dụng lại trên nhiều nền tảng khác nhau

Tương thích với Java

Kotlin hoàn toàn tương thích với Java, điều này có nghĩa là bạn có thể tích hợp mã Java hiện có vào dự án Kotlin của mình mà không gặp vấn đề Vì Kotlin chia sẻ cùng một máy ảo Java (JVM) với Java, nên các thư viện và framework Java có thể được sử dụng trong mã Kotlin

An toàn kiểu dữ liệu

Kotlin cung cấp kiểm tra kiểu tĩnh mạnh mẽ, giúp ngăn chặn lỗi kiểu dữ liệu phổ biến từ quá trình biên dịch Kiểm tra kiểu dữ liệu tĩnh cũng giúp tăng tính tin cậy và hiệu suất của mã

Cú pháp gọn gàng

Kotlin có cú pháp rõ ràng, đơn giản và ngắn gọn hơn so với Java Việc này giúp cải thiện khả năng đọc và hiểu mã, đồng thời làm giảm lượng mã cần viết để thực hiện các tác vụ thông thường

Hỗ trợ chính thức cho Android

Kotlin được công nhận là ngôn ngữ lập trình chính thức cho việc phát triển ứng dụng Android bởi Google vào năm 2017 Điều này đã tạo ra sự lan rộng nhanh chóng của Kotlin trong cộng đồng phát triển Android

Cộng đồng phát triển mạnh mẽ

Trang 20

Kotlin có một cộng đồng phát triển lớn và năng động, với nhiều tài liệu, ví dụ và thư viện khác nhau Điều này giúp lập trình viên tiếp cận thông tin hữu ích và nhận được hỗ trợ từ cộng đồng khi gặp vấn đề.

2.4 Android Studio

2.4.1 Android Studio là gì?

Android Studio là môi trường tích hợp IDE* để viết code và phát triển ứng dụngtrên nền tảng hệ điều hành Android, dành cho Google Android Development được

ra mắt vào ngày 16 tháng 5 năm 2013, trong sự kiện I/O 2013 của Google

Android Studio chứa tất cả các công cụ để hỗ trợ việc phát hành ứng dụng Androidnhư: thiết kế, kiểm tra, gỡ lỗi và cấu hình ứng dụng Android Studio sửdụng Gradle để quản lý dự án của bạn

IDE viết tắt của Integrated Development Environment, được gọi là “Môi trườngthiết kế hợp nhất" hay "Môi trường gỡ lỗi hợp nhất" (tiếng Anh: IntegratedDebugging Environment) là một loại phần mềm máy tính có công dụng giúp đỡ cáclập trình viên trong việc phát triển phần mềm

Trang 21

nền tảng ưa thích (Windows, Mac OS X hoặc Linux) từ trang web dành cho nhàphát triển Android Android Studio có thể hỗ trợ phát triển và thử nghiệm ứng dụngcủa bạn trên thiết bị thực hoặc trình giả lập.

2.4.2 Các tính năng của Android Studio

Chạy ứng dụng tức thì

Công nghệ này tích hợp hỗ trợ các thay đổi được thực hiện trong quá trình phát triểnứng dụng và hỗ trợ người dùng chạy thử ngay lập tức mà không mất thời gian để xây dựng lại APK và cài đặt

Bộ cục ứng dụng trực quan

Giao diện chỉnh sửa và phát triển xây dựng bố cục một cách nhanh chóng bằng cácthao tác kéo thả nhanh chóng Bản xem trước các ứng dụng có thể xem được trênmàn hình và thay đổi tương ứng với các kích thước động Điều này sẽ làm cho quátrình thử nghiệm ứng dụng dễ dàng và toàn diện hơn

Trình mô phỏng nhanh

Trang 22

Android Studio có một tính năng mô phỏng hiển thị giống như điện thoại Android

để kiểm tra các ứng dụng đang trông như thế nào trong các thiết bị vật lý

Nó mang lại trải nghiệm thời gian thực cho các ứng dụng Android, cho phép bạnkiểm tra các ứng dụng của mình nhanh hơn trên các thiết bị cấu hình khác nhaunhư máy tính bảng, điện thoại Đồng thời, Android Studio sẽ hỗ trợ vòng đời pháttriển ứng dụng của mình ngắn và hiệu quả hơn

Trình chỉnh sửa mã code thông minh

Android Studio cung cấp cho bạn trình chỉnh sửa mã code thông minh và nhanh chóng Các mã gợi ý với các thư viện có sẵn nhằm tăng tốc độ viết mã và độ chính xác Các đoạn mã gợi ý sẽ giúp bạn hoàn thành trước và phân tích dữ liệu cũ của bạn trong quá trình xây dựng ứng dụng

Xây dựng ứng dụng cho tất cả thiết bị

Android Studio xây dựng các ứng dụng cho mọi kích thước màn hình, cho các thiết

bị đeo và trên cả các thiết bị giả lập với độ phân giải và kích thước màn hình khác nhau Nó cũng có thể giả lập được các loại tính năng khác nhau, mà phần cứng thực

sự chưa có như theo dõi vị trí GPS, cảm ứng đa điểm

Trang 23

Android Studio giúp mang lại trải nghiệm thời gian thực với phát triển dự án dựa trên IOT với các nâng cấp trong ứng dụng.

Kết nối Firebase giúp tạo các bản cập nhật trực tiếp và cung cấp kết nối với cơ sở

dữ liệu được cập nhật liên tục Để có được các ứng dụng chất lượng cao, các nhà phát triển sử dụng kết nối Firebase, nó giúp xây dựng cơ sở hạ tầng để mở rộng xây dựng ứng dụng

Hỗ trợ KOTLIN

Kotlin là ngôn ngữ chính thức chỉ dành cho Android Nó là một ngôn ngữ không có bất kỳ hạn chế mới và có nhiều lợi thế cho quá trình phát triển ứng dụng Tính năng tuyệt vời của Kotlin là khi chạy các ứng dụng mà không có bất kỳ sự xáo trộn nào trong các phiên bản Android cũ hơn, cũng như không có vấn đề gì với các phiên bản Android cụ thể

Xem trước màu sắc, chạy thử

Android Studio giúp xem trước phần mã XML trong bản xem trước để các nhà phát triển ứng dụng biết có lỗi hay không trước khi khởi chạy ứng dụng Tính năng này

Trang 24

cung cấp chức năng mạnh mẽ và các tính năng nâng cao về kéo và thả hoặc thay đổikích thước ứng dụng.

Kho lưu trữ Maven

Trong Android Studio, có thể thực hiện tích hợp Maven cùng với kho lưu trữ các tính năng tích hợp của nó, bên trong các thư viện hỗ trợ trình quản lý SDK của IDE được sử dụng Đó là một loại kho lưu trữ có một thư mục chứa nhiều tệp jar khác nhau như dự án jar cùng các plugin

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

3.1 Yêu cầu chức năng

3.1.1 Đối với người dùng

- Chức năng đăng ký, đăng nhập, đăng xuất

- Chức năng xem danh sách cuộc trò chuyện

- Chức năng tạo cuộc trò chuyện cá nhân, cuộc trò chuyện nhóm

- Chức năng xem chi tiết cuộc trò chuyện

Trang 25

phản hồi kết bạn

- Chức năng tìm kiếm bằng số điện thoại

- Chức năng chat tin nhắn, hình ảnh, video

- Chức năng xem thông tin cá nhân, thông tin người khác

- Chức năng ghim cuộc trò chuyện

- Chức năng xóa cuộc trò chuyện

- Chức năng thêm thành viên, xóa thành viên, xem danh sách thành viên

- Chức năng chuyển quyền trường nhóm, phó nhóm, member

- Chức năng rời nhóm, giải tán nhóm

3.1.2 Đối với quản lý

- Chức năng đăng ký, đăng nhập, đăng xuất

- Chức năng quản lý user (update trạng thái user)

3.2 Phân tích yêu cầu

3.2.1 Sơ đồ Usecase

Trang 26

Hình: Usecase tổng quát

Hình: Usecase quản lý người dùng

Ngày đăng: 04/10/2024, 14:58

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

TÀI LIỆU LIÊN QUAN

w