Đồ án xây dựng ứng dụng chat trực tuyến cho sinh viên Trường Đại học Tôn Đức Thắng

Khám phá cách xây dựng ứng dụng chat trực tuyến cho sinh viên trong dự án công nghệ thông tin, nâng cao trải nghiệm học tập và giao tiếp.

Người đăng

Ẩn danh
52
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

TÓM TẮT

TITLE ABSTRACT

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

2. CHƯƠNG 2: PHÂN TÍCH CÔNG NGHỆ

2.1. NestJS là gì?

2.2. Cấu trúc của NestJS

2.2.1. Modules

2.2.2. Providers

2.2.3. Controllers

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

2.4. MongoDB là gì?

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

2.6. Kotlin là gì?

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

2.8. Android Studio là gì?

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

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.2. Phân tích yêu cầu

3.2.1. Sơ đồ Usecase

3.2.2. Danh sách tác nhân và mô tả

3.3. Danh sách các Usecase có trong hệ thống

3.4. Đặc tả Usecase

3.4.1. Usecase đăng nhập

3.4.2. Usecase đăng ký

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan dự án app chat sinh viên TDTU và tầm quan trọng

Trong môi trường học thuật năng động của Trường Đại học Tôn Đức Thắng (TDTU), nhu cầu giao tiếp và trao đổi thông tin giữa các sinh viên là yếu tố then chốt cho sự thành công trong học tập và hoạt động ngoại khóa. Nhận thấy những hạn chế của các nền tảng chat công cộng, dự án Xây Dựng Ứng Dụng Chat Trực Tuyến Dành Cho Sinh Viên ra đời nhằm cung cấp một giải pháp kết nối sinh viên chuyên biệt, an toàn và hiệu quả. Mục tiêu cốt lõi là tạo ra một môi trường giao tiếp khép kín, nơi sinh viên có thể dễ dàng trao đổi tài liệu, thảo luận nhóm, và cập nhật thông tin học tập mà không bị phân tâm bởi các yếu tố bên ngoài. Dự án này không chỉ là một công cụ tiện ích mà còn là một đồ án tốt nghiệp ứng dụng chat mang tính thực tiễn cao, giải quyết một vấn đề cụ thể trong cộng đồng. Ứng dụng được thiết kế với giao diện thân thiện, tập trung vào trải nghiệm người dùng, đảm bảo mọi sinh viên đều có thể sử dụng một cách trực quan. Việc xây dựng một phần mềm chat nội bộ trường đại học như vậy góp phần tăng cường sự gắn kết, thúc đẩy tinh thần hợp tác và xây dựng một cộng đồng sinh viên Tôn Đức Thắng vững mạnh hơn. Đây là nền tảng quan trọng để triển khai các tính năng học thuật chuyên sâu trong tương lai, biến ứng dụng thành một phần không thể thiếu trong hệ sinh thái số của nhà trường.

1.1. Phân tích nhu cầu về một nền tảng giao tiếp cho sinh viên

Hiện nay, sinh viên TDTU chủ yếu sử dụng các ứng dụng như Zalo, Messenger cho việc liên lạc. Tuy nhiên, các nền tảng này tồn tại nhiều bất cập trong môi trường học thuật. Thứ nhất, chúng gây xao nhãng do lẫn lộn giữa giao tiếp cá nhân và học tập. Thứ hai, việc quản lý và tìm kiếm tài liệu, thông báo quan trọng trong các nhóm chat lớn trở nên khó khăn. Thứ ba, vấn đề bảo mật thông tin cá nhân và dữ liệu học thuật cũng là một mối lo ngại. Do đó, một nền tảng giao tiếp cho sinh viên được thiết kế riêng là vô cùng cần thiết. Nền tảng này cần đáp ứng các yêu cầu đặc thù như: tạo không gian riêng cho các nhóm môn học, dự án; dễ dàng chia sẻ các định dạng file học thuật; và quan trọng nhất là quản lý cộng đồng sinh viên Tôn Đức Thắng một cách hiệu quả, đảm bảo chỉ những người dùng đã được xác thực mới có thể tham gia.

1.2. Mục tiêu chính của dự án xây dựng ứng dụng chat

Dựa trên tài liệu nghiên cứu của Nguyễn Minh Thuận, dự án đặt ra các mục tiêu rõ ràng và cụ thể. Mục tiêu hàng đầu là cung cấp một công cụ giao tiếp thuận tiện, nhanh chóng và an toàn. Ứng dụng phải hỗ trợ đầy đủ các tính năng cơ bản như nhắn tin cá nhân, tạo nhóm học tập online, và tìm kiếm bạn bè trong cùng hệ thống. Bên cạnh đó, dự án hướng tới việc tạo ra một môi trường giao tiếp độc đáo, giúp sinh viên cảm thấy kết nối hơn. Một mục tiêu quan trọng khác là tối ưu hóa UI/UX cho ứng dụng nhắn tin, đảm bảo giao diện trực quan, dễ sử dụng ngay cả với những người không rành về công nghệ. Cuối cùng, dự án còn là một công trình nghiên cứu, một luận văn về hệ thống chat có giá trị, áp dụng các công nghệ hiện đại để giải quyết bài toán thực tế.

1.3. Phạm vi chức năng của ứng dụng chat sinh viên TDTU

Phạm vi của dự án được xác định rõ ràng, tập trung vào các chức năng thiết yếu nhất. Đối với người dùng (sinh viên), ứng dụng cho phép đăng ký/đăng nhập, chat cá nhân và chat nhóm, xem danh sách bạn bè, tìm kiếm người dùng khác qua số điện thoại, và gửi file và hình ảnh. Đối với quản trị viên, hệ thống cung cấp khả năng quản lý người dùng, cụ thể là cập nhật trạng thái hoạt động của tài khoản. Các chức năng này được lựa chọn để đảm bảo dự án có thể hoàn thành trong thời gian quy định nhưng vẫn đáp ứng được nhu cầu cốt lõi của người dùng. Các tính năng nâng cao như gọi video hay bảo mật tin nhắn end-to-end có thể được xem xét trong các giai đoạn phát triển tiếp theo.

II. Phương pháp xây dựng backend với Node

Để xây dựng ứng dụng chat trực tuyến dành cho sinh viên, việc lựa chọn công nghệ cho backend là quyết định mang tính nền tảng. Dự án đã lựa chọn một kiến trúc hiện đại và hiệu quả, kết hợp giữa NestJS (một framework của Node.js) và cơ sở dữ liệu MongoDB. Sự kết hợp này mang lại hiệu năng cao, khả năng mở rộng tốt và sự linh hoạt trong phát triển, rất phù hợp cho một ứng dụng yêu cầu xử lý dữ liệu thời gian thực. NestJS cung cấp một cấu trúc ứng dụng rõ ràng, dựa trên TypeScript, giúp quản lý mã nguồn dễ dàng và giảm thiểu lỗi. Đây là nền tảng lý tưởng để xây dựng một Node.js chat application mạnh mẽ. Trong khi đó, MongoDB, một cơ sở dữ liệu NoSQL, cho phép lưu trữ dữ liệu dưới dạng tài liệu JSON linh hoạt, rất thích hợp để quản lý các cuộc trò chuyện, thông tin người dùng và các loại tin nhắn đa dạng. Việc sử dụng công nghệ real-time chat như WebSocket được tích hợp vào kiến trúc backend để đảm bảo tin nhắn được gửi và nhận gần như ngay lập tức, mang lại trải nghiệm liền mạch cho người dùng. Toàn bộ hệ thống backend được thiết kế để xử lý đồng thời nhiều kết nối, đáp ứng nhu cầu của hàng ngàn sinh viên TDTU.

2.1. Lựa chọn NestJS cho một ứng dụng chat có khả năng mở rộng

NestJS được chọn làm framework chính cho backend vì những ưu điểm vượt trội. Nó được xây dựng trên nền tảng Node.js nhưng áp dụng các nguyên tắc kiến trúc từ Angular như Modules, Providers và Controllers. Cấu trúc này giúp tổ chức code một cách khoa học, dễ bảo trì và mở rộng. Theo tài liệu dự án, NestJS giúp "tăng tính bảo trì và sự tổ chức trong mã nguồn". Việc sử dụng TypeScript làm ngôn ngữ chính cũng mang lại lợi ích về kiểm tra kiểu tĩnh, giúp phát hiện lỗi sớm trong quá trình phát triển. Hơn nữa, hệ sinh thái của NestJS rất phong phú, hỗ trợ nhiều mô-đun tích hợp sẵn cho các tác vụ phổ biến như xác thực, caching, và đặc biệt là giao tiếp qua WebSocket, yếu tố sống còn của một ứng dụng chat.

2.2. Vai trò của MongoDB trong việc lưu trữ dữ liệu tin nhắn

MongoDB là cơ sở dữ liệu NoSQL định hướng tài liệu, được chọn vì khả năng lưu trữ linh hoạt và hiệu suất truy vấn cao. Không giống cơ sở dữ liệu quan hệ, MongoDB lưu trữ dữ liệu dưới dạng các tài liệu BSON (tương tự JSON), cho phép cấu trúc dữ liệu thay đổi mà không cần định nghĩa lại toàn bộ schema. Điều này cực kỳ hữu ích cho một ứng dụng chat, nơi cấu trúc tin nhắn có thể thay đổi (văn bản, hình ảnh, file đính kèm). Tài liệu dự án nhấn mạnh tính năng "Scalability" (Khả năng mở rộng) của MongoDB thông qua sharding, cho phép hệ thống phân tán dữ liệu trên nhiều máy chủ để xử lý tải lớn. Tương tự như Firebase Realtime Database, MongoDB cung cấp hiệu năng cần thiết để truy xuất lịch sử trò chuyện một cách nhanh chóng.

III. Bí quyết phát triển client side với Kotlin và Android Studio

Phía client-side, tức ứng dụng di động mà sinh viên tương tác trực tiếp, được phát triển cho nền tảng Android. Việc lựa chọn công nghệ và công cụ phù hợp là yếu tố quyết định đến trải nghiệm người dùng cuối. Dự án đã sử dụng ngôn ngữ lập trình Kotlin và môi trường phát triển tích hợp (IDE) Android Studio. Kotlin, được Google công nhận là ngôn ngữ chính thức cho phát triển Android, mang lại cú pháp ngắn gọn, an toàn và khả năng tương tác hoàn hảo với Java. Điều này giúp đẩy nhanh tốc độ phát triển và giảm thiểu các lỗi thường gặp. Android Studio cung cấp một bộ công cụ toàn diện, từ thiết kế giao diện, viết mã, gỡ lỗi đến kiểm thử, giúp quá trình xây dựng ứng dụng chat trực tuyến trở nên hiệu quả hơn. Một phần quan trọng của việc phát triển client là thiết kế UI/UX cho ứng dụng nhắn tin, đảm bảo các thao tác như gửi tin nhắn, tạo nhóm, hay tìm kiếm bạn bè đều trực quan và mượt mà. Mặc dù có các lựa chọn đa nền tảng như React Native chat app, việc chọn phát triển native với Kotlin đảm bảo hiệu năng tối ưu và khả năng tận dụng toàn bộ sức mạnh của hệ điều hành Android.

3.1. Ưu điểm của Kotlin trong phát triển ứng dụng Android

Kotlin được JetBrains phát triển và trở thành lựa chọn hàng đầu cho các nhà phát triển Android. Theo tài liệu, Kotlin nổi bật nhờ "cú pháp gọn gàng", giúp giảm đáng kể số lượng mã cần viết so với Java. Ngôn ngữ này cũng cung cấp tính năng "An toàn kiểu dữ liệu", đặc biệt là xử lý null-safety, giúp ngăn chặn lỗi NullPointerException, một trong những lỗi phổ biến nhất trên Android. Khả năng tương thích 100% với Java cho phép các nhà phát triển tận dụng kho thư viện khổng lồ có sẵn. Đối với một app chat sinh viên TDTU, việc sử dụng Kotlin giúp mã nguồn sạch sẽ, dễ đọc và bảo trì, đồng thời đảm bảo ứng dụng hoạt động ổn định và hiệu quả.

3.2. Tối ưu hóa trải nghiệm người dùng UI UX cho app chat

Trải nghiệm người dùng là linh hồn của một ứng dụng chat. Giao diện cần phải sạch sẽ, không lộn xộn, và các chức năng chính phải dễ dàng truy cập. Trong dự án này, việc thiết kế UI/UX tập trung vào sự đơn giản và tính nhất quán. Các màn hình chính như danh sách cuộc trò chuyện, cửa sổ chat, danh sách bạn bè được bố trí logic. Màu sắc và icon được lựa chọn để tạo cảm giác thân thiện, phù hợp với đối tượng sinh viên. Android Studio cung cấp công cụ "Layout Editor" trực quan, cho phép kéo-thả và xem trước giao diện trên nhiều kích thước màn hình khác nhau, đảm bảo ứng dụng hiển thị tốt trên mọi thiết bị. Mục tiêu là tạo ra một luồng tương tác tự nhiên, giúp người dùng thực hiện các tác vụ một cách nhanh chóng mà không cần suy nghĩ nhiều.

IV. Các tính năng cốt lõi của phần mềm chat nội bộ TDTU

Một phần mềm chat nội bộ trường đại học thành công phải cung cấp đầy đủ các tính năng thiết thực, phục vụ trực tiếp cho nhu cầu học tập và kết nối của sinh viên. Dự án xây dựng ứng dụng chat trực tuyến cho TDTU đã tập trung vào việc hiện thực hóa các chức năng cốt lõi, từ giao tiếp cơ bản đến quản lý nhóm và chia sẻ tài nguyên. Các tính năng này không chỉ sao chép mô hình của các ứng dụng phổ biến mà còn được điều chỉnh để phù hợp với môi trường học thuật. Ví dụ, chức năng tìm kiếm người dùng được thiết kế dựa trên số điện thoại, một định danh duy nhất và dễ dàng cho sinh viên kết nối. Hệ thống cho phép tạo nhóm học tập online một cách nhanh chóng, hỗ trợ các trưởng nhóm quản lý thành viên hiệu quả. Hơn nữa, việc gửi file và hình ảnh là một yêu cầu không thể thiếu, giúp sinh viên trao đổi bài giảng, tài liệu tham khảo và ghi chú một cách thuận tiện. Mọi tính năng đều được xây dựng với mục tiêu cuối cùng là tạo ra một giải pháp kết nối sinh viên toàn diện và hữu ích trong khuôn viên trường đại học.

4.1. Chức năng nhắn tin cá nhân và tạo nhóm học tập online

Đây là hai tính năng nền tảng của ứng dụng. Chức năng nhắn tin cá nhân (1-1) cho phép sinh viên trao đổi riêng tư. Hệ thống đảm bảo tin nhắn được gửi và nhận thông qua công nghệ real-time chat. Quan trọng hơn, chức năng tạo nhóm cho phép sinh viên lập các nhóm chat cho từng môn học, đồ án, hoặc câu lạc bộ. Theo đặc tả use case của dự án, người dùng có thể tạo nhóm, thêm/xóa thành viên, và thậm chí phân quyền quản lý (trưởng nhóm, phó nhóm). Điều này giúp việc thảo luận và phối hợp công việc trở nên có tổ chức, biến ứng dụng thành công cụ hỗ trợ học tập đắc lực.

4.2. Hệ thống xác thực và quản lý thông tin người dùng

Để đảm bảo an toàn và tính chính danh, ứng dụng yêu cầu người dùng phải đăng ký tài khoản. Quá trình đăng ký và đăng nhập được mô tả chi tiết trong use case UC01 và UC02 của tài liệu. Người dùng có thể cập nhật thông tin cá nhân như tên hiển thị và ảnh đại diện. Một hướng phát triển quan trọng trong tương lai là xác thực người dùng qua email sinh viên ( вида ...@student.tdtu.edu.vn). Cơ chế này sẽ đảm bảo chỉ sinh viên thực sự của TDTU mới có thể truy cập, tạo ra một môi trường an toàn và đáng tin cậy. Admin có quyền quản lý trạng thái của người dùng, giúp kiểm soát hệ thống hiệu quả.

4.3. Tích hợp thông báo đẩy và chia sẻ đa phương tiện

Để người dùng không bỏ lỡ các tin nhắn quan trọng, việc tích hợp thông báo đẩy (push notification) là rất cần thiết. Khi có tin nhắn mới, ứng dụng sẽ gửi một thông báo đến thiết bị của người dùng ngay cả khi họ không mở ứng dụng. Bên cạnh đó, chức năng chia sẻ đa phương tiện cho phép người dùng gửi file và hình ảnh một cách dễ dàng. Hệ thống backend sẽ xử lý việc tải lên và lưu trữ các tệp này, trong khi client-side hiển thị chúng một cách tối ưu trong cuộc trò chuyện. Đây là tính năng cực kỳ quan trọng, hỗ trợ việc chia sẻ tài liệu học tập và ghi chú một cách trực quan và nhanh chóng.

V. Kết luận và hướng phát triển cho luận văn về hệ thống chat

Dự án Xây Dựng Ứng Dụng Chat Trực Tuyến Dành Cho Sinh Viên Tại Trường Đại Học Tôn Đức Thắng đã đạt được những mục tiêu ban đầu đề ra. Nó không chỉ là một sản phẩm phần mềm mà còn là một công trình nghiên cứu, một luận văn về hệ thống chat có giá trị thực tiễn. Ứng dụng đã chứng minh được tiềm năng trở thành một giải pháp kết nối sinh viên hiệu quả, tạo ra một kênh giao tiếp tập trung và an toàn. Bằng cách áp dụng các công nghệ hiện đại như NestJS, MongoDB và Kotlin, dự án đã xây dựng thành công một nền tảng vững chắc, có khả năng mở rộng trong tương lai. Kết quả của dự án là một minh chứng rõ ràng cho khả năng ứng dụng kiến thức kỹ thuật phần mềm vào giải quyết các bài toán thực tế trong môi trường giáo dục. Tuy nhiên, đây chỉ là bước khởi đầu. Để ứng dụng thực sự trở thành một phần không thể thiếu trong đời sống sinh viên TDTU, cần có những kế hoạch phát triển và cải tiến liên tục, dựa trên phản hồi từ người dùng thực tế và sự phát triển của công nghệ.

5.1. Đánh giá kết quả và tiềm năng ứng dụng thực tiễn

Dự án đã hoàn thành việc xây dựng một ứng dụng chat với đầy đủ các chức năng cốt lõi như nhắn tin, tạo nhóm, quản lý bạn bè và chia sẻ tệp. Về mặt kỹ thuật, hệ thống đã vận hành ổn định trên nền tảng Android. Tiềm năng ứng dụng thực tiễn của sản phẩm là rất lớn. Nó có thể được triển khai thử nghiệm trong một khoa hoặc một câu lạc bộ để thu thập phản hồi. Một app chat sinh viên TDTU chuyên biệt có thể giúp giảm thiểu sự phân tán, tăng cường hiệu quả học nhóm và tạo ra một kênh thông tin chính thức, đáng tin cậy giữa các sinh viên, cũng như giữa sinh viên và nhà trường.

5.2. Hướng phát triển tương lai Tích hợp và nâng cao bảo mật

Để nâng cao giá trị của ứng dụng, có nhiều hướng phát triển tiềm năng. Thứ nhất, việc tích hợp cổng thông tin sinh viên sẽ là một bước đột phá. Sinh viên có thể nhận thông báo về lịch học, lịch thi, hoặc điểm số ngay trên ứng dụng chat. Thứ hai, nâng cao tính năng bảo mật là ưu tiên hàng đầu. Việc triển khai bảo mật tin nhắn end-to-end sẽ đảm bảo chỉ người gửi và người nhận mới có thể đọc được nội dung, tăng cường sự riêng tư. Các tính năng khác như gọi video, tạo cuộc thăm dò ý kiến trong nhóm, hay tích hợp lịch biểu cá nhân cũng là những cải tiến đáng giá, giúp ứng dụng trở nên toàn diện và cạnh tranh hơn.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

10/07/2025
Xây dựng ứng dụng chat trực tuyến cho sinh viên dự án công nghệ thông tin

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

MỞ ĐẦU VÀ TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan - Trong môi trường học tập đại học, việc giao tiếp và trao đổi thông tin giữa sinh viên là một phần không thể thiếu. Để giải quyết nhu cầu này một cách hiệu quả, dự án của chúng tôi tập trung vào việc xây dựng một ứng dụng chat nhỏ dành riêng cho sinh viên của Trường Đại Học Tôn Đức Thắng. Ứng dụng được thiết kế để cung cấp một phương tiện giao tiếp dễ sử dụng và linh hoạt, hỗ trợ sinh viên trong việc trao đổi thông tin, học tập và kết nối với nhau. - 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.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ận tiệ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ên cảm thấy gần gũi và kết nối hơn với nhau.3 Phạm vi đề tài 1.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è.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.4 Mô tả yêu cầu chức năng 1.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è 3 - Kết bạn bằng số điện thoại.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.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. 4 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 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à ba thà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ành phầ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 khoa họ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ột dị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ý 5 Controller không thể làm được. Providers có thể được tạo và đưa vào Controllers hoặ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 cho client-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ện tốt các tác vụ khác nhau.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.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 6 cơ sở dữ liệu quan hệ giống như bảng mà cung cấp một cơ chế hoàn toàn khác để 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 Các tính năng của MongoDB Document Oriented MongoDB lưu trữ subject chính với số lượng documents tối thiểu chứ không phải bằng cách chia nó thành nhiều cấu trúc quan hệ như RDBMS. Ví dụ: nó lưu trữ tất cả thông tin của một máy tính trong một tài liệu duy nhất được gọi là Máy tính và không nằm trong các cấu trúc quan hệ riêng biệt như CPU, RAM, Đĩa cứng, v. Indexing Nếu không lập chỉ mục, CSDL sẽ không truy vấn hiệu quả vì phải quét mọi tài liệu của tập hợp để chọn những tài liệu phù hợp cho việc truy vấn đó.

Vì vậy, để tìm kiếm hiệu quả, Indexing là điều bắt buộc và MongoDB sử dụng nó để xử lý khối lượng dữ liệu khổng lồ trong thời gian rất ngắn. Scalability 7 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ổng hợp là tổng, trung bình, tối thiểu, tối đa, v.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. Ngôn ngữ 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 được Google sử dụng làm ngôn ngữ lập trình chính thức cho máy ảo Java từ tháng 5/2017.2 Điểm nổi bật của Kotlin 8 Tính đa nền tảng 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ên viế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.

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

Đề tài Xây Dựng Ứng Dụng Chat Trực Tuyến Cho Sinh Viên Tại Trường Đại Học Tôn Đức Thắng tập trung vào việc phát triển một nền tảng giao tiếp nội bộ, nhằm tối ưu hóa kết nối và trao đổi thông tin trong môi trường đại học. Ứng dụng này mang lại lợi ích thiết thực như tạo kênh thảo luận học thuật, làm việc nhóm hiệu quả và nhận thông báo quan trọng từ nhà trường một cách nhanh chóng, từ đó nâng cao trải nghiệm và hiệu quả học tập cho sinh viên. Đây là một hướng nghiên cứu ứng dụng công nghệ phổ biến, tương tự như các đề tài phát triển ứng dụng nội bộ khác, chẳng hạn như ứng dụng đặt đồ ăn trực tuyến cho sinh viên.