Bối cảnh và vấn đề nghiên cứu

Trong đời sống hiện đại với nhịp sống bận rộn và khối lượng công việc phát sinh liên tục, con người thường có xu hướng thực hiện các hoạt động theo phản xạ tự nhiên mà thiếu đi sự sắp xếp, lên kế hoạch cụ thể. Tình trạng này dẫn đến việc suy giảm khả năng ghi nhớ, công việc bị trì trệ và hiệu quả quản lý thời gian cá nhân không đạt yêu cầu. Bộ nhớ con người tuy lớn nhưng nếu không được ghi chép và nhắc nhở thường xuyên thì thông tin rất dễ bị lãng quên, từ các lịch hẹn, thời hạn hoàn thành công việc (deadline) cho đến thông tin liên lạc, danh mục chi tiêu hay dữ liệu sức khỏe.

Nhằm giải quyết bài toán trên, đồ án nghiên cứu và xây dựng phần mềm "Ứng dụng Sổ tay Cá nhân" được thực hiện với các mục tiêu cụ thể:

  1. Xây dựng ứng dụng di động hỗ trợ thiết lập kế hoạch làm việc và tự động đẩy thông báo nhắc việc theo thời gian thực.
  2. Cung cấp không gian lưu trữ an toàn, có hệ thống cho các thông tin và tài sản số cá nhân bao gồm: ghi chú, hình ảnh, tài khoản dịch vụ, tư liệu và giấy tờ cá nhân thông qua tính năng chụp/quét ảnh.
  3. Hỗ trợ theo dõi và cải thiện sức khỏe người dùng: ghi nhận các chỉ số sinh lý (nhịp tim, huyết áp), đồng thời tích hợp trợ lý ảo (Chatbot) giải đáp các thắc mắc thường gặp về bệnh lý, triệu chứng phổ biến và tính toán chu kỳ ngủ nghỉ khoa học.

Về đối tượng sử dụng, phần mềm hướng đến mọi cá nhân có nhịp sinh hoạt bận rộn, gặp khó khăn trong việc làm chủ quỹ thời gian, có nhu cầu ghi chép và theo dõi tình trạng sinh hoạt, sức khỏe thường nhật. Phạm vi nghiên cứu của đề tài bao gồm:

  • Phạm vi môi trường: Triển khai dưới dạng ứng dụng di động đa nền tảng (hỗ trợ Android và iOS).
  • Phạm vi chức năng: Bao gồm hệ thống xác thực người dùng (đăng ký, đăng nhập, quên mật khẩu qua OTP, quản lý hồ sơ), phân hệ lập kế hoạch và nhắc việc, phân hệ quản lý tài nguyên lưu trữ (ghi chú, album ảnh, tài khoản, giấy tờ scan), phân hệ quản lý hồ sơ sức khỏe và phân hệ Chatbot tương tác tự động.

Cơ sở lý thuyết và phương pháp

Đề tài áp dụng các nền tảng lý thuyết và công nghệ chuyên sâu trong ngành Kỹ thuật Phần mềm để thiết kế và xây dựng hệ thống phần mềm di động theo mô hình Client-Server:

  • Nguyên lý lập trình hướng đối tượng và phát triển giao diện: Sử dụng ngôn ngữ lập trình Dart kết hợp cùng Flutter SDK (Google), vận dụng cấu trúc UI dựa trên các Widget và cơ chế Hot Reload để tối ưu hóa hiệu năng biên dịch gốc (native performance) và tốc độ phát triển giao diện đa nền tảng.
  • Kiến trúc phía máy chủ (Backend): Vận dụng môi trường thực thi Node.js dựa trên V8 JavaScript engine với kiến trúc hướng sự kiện (Event-driven) và cơ chế xử lý I/O không chặn (Non-blocking I/O), kết hợp cùng framework Express.js để xây dựng hệ thống RESTful API, thiết lập các hàm trung gian (middlewares) và quản lý định tuyến (routing).
  • Cơ sở dữ liệu phi quan hệ (NoSQL): Áp dụng hệ quản trị cơ sở dữ liệu MongoDB để lưu trữ dữ liệu dạng tài liệu (Document) theo định dạng JSON/BSON, cho phép cấu trúc dữ liệu linh hoạt, loại bỏ các thao tác kết nối bảng phức tạp (JOIN) và tối ưu hóa tốc độ thực thi các truy vấn CRUD (Create, Read, Update, Delete).
  • Xử lý ngôn ngữ tự nhiên (NLP) và Trí tuệ nhân tạo: Tích hợp nền tảng Dialogflow của Google để xây dựng kịch bản đàm thoại, nhận diện ý định (intent) và phản hồi tự động đối với các câu hỏi về sức khỏe.

Phương pháp thực hiện được triển khai thông qua sự phối hợp của nhóm tác giả (Phạm Văn Chánh và Hồ Quang) dưới sự hướng dẫn của ThS. Trần Anh Dũng trong khung thời gian từ 28/02/2022 đến 11/06/2022 với các giai đoạn:

Giai đoạn thời gian Nội dung công việc thực hiện Phân công nhiệm vụ
28/02/2022 – 13/03/2022 Nghiên cứu công nghệ nền tảng và khảo sát yêu cầu nghiệp vụ Chánh, Quang
14/03/2022 – 27/03/2022 Đặc tả yêu cầu phần mềm, thiết kế cơ sở dữ liệu và phác thảo giao diện (sketches) Chánh, Quang
28/03/2022 – 10/04/2022 Xây dựng giao diện, hiện thực tính năng Đăng nhập, Đăng ký, Quên mật khẩu, Thông tin cá nhân Chánh (Đăng nhập, Đăng ký)
Quang (Quên mật khẩu, Profile)
11/04/2022 – 01/05/2022 Phát triển phân hệ lập kế hoạch, nhắc việc và phân hệ ghi chú, lưu trữ tài sản (ảnh, video, tài khoản) Chánh (Kế hoạch, Nhắc việc)
Quang (Ghi chú, Tài nguyên số)
02/05/2022 – 28/05/2022 Xây dựng phân hệ hồ sơ sức khỏe và tích hợp hệ thống Chatbot AI Chánh (Hồ sơ sức khỏe)
Quang (Chatbot Dialogflow)
29/05/2022 – 11/06/2022 Kiểm thử ứng dụng, sửa lỗi, hoàn thiện mã nguồn và viết báo cáo Chánh, Quang

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc module phân tầng, phân tách rõ ràng giữa tầng hiển thị giao diện, tầng xử lý logic nghiệp vụ và tầng lưu trữ dữ liệu.

+----------------------------------------------------------------+
|                         NGƯỜI DÙNG                             |
+----------------------------------------------------------------+
                               |
                               v
+----------------------------------------------------------------+
|                   MOBILE APP (Flutter / Dart)                  |
|  - Màn hình Xác thực (Login, Register, OTP)                    |
|  - Phân hệ Kế hoạch & Nhắc việc (Calendar, Task CRUD)          |
|  - Phân hệ Lưu trữ (Notes, Albums, Accounts, Document Scan)    |
|  - Phân hệ Sức khỏe & Trợ lý Chatbot                           |
+----------------------------------------------------------------+
            |                                      |
      (HTTP REST API)                      (SDK / API Request)
            v                                      v
+------------------------+             +-------------------------+
|   BACKEND REST API     |             |  GOOGLE DIALOGFLOW AI   |
|  - Node.js Runtime     |             |  - NLP Engine           |
|  - Express.js Engine   |             |  - Sức khỏe & Ngủ nghỉ  |
+------------------------+             +-------------------------+
            |
      (MongoDB Driver)
            v
+------------------------+
|   DATABASE (MongoDB)   |
|  - Users & Profiles    |
|  - Tasks & Notes       |
|  - Health Records      |
+------------------------+

Đặc tả ca sử dụng (Use Case) và Quy tắc nghiệp vụ (Business Rules)

Hệ thống quản lý tổng cộng 16 ca sử dụng (Use Case - UC) bao quát toàn bộ chức năng:

Mã UC Tên Use Case Phân hệ chức năng Mô tả tóm tắt
UC01 Đăng nhập Xác thực Người dùng nhập thông tin để truy cập hệ thống
UC02 Đăng ký Xác thực Tạo tài khoản mới thông qua kiểm tra định dạng và dữ liệu
UC03 Quên mật khẩu Xác thực Xác minh qua SMS OTP để cấp quyền đặt lại mật khẩu
UC04 Send OTP Xác thực Hệ thống phát mã OTP xác thực qua tin nhắn SMS
UC05 Đăng xuất Xác thực Thoát phiên làm việc hiện tại và quay về màn hình chính
UC06 Cập nhật thông tin Quản lý hồ sơ Chuyển trạng thái từ Read-only sang chỉnh sửa thông tin cá nhân
UC07 Tạo công việc (CRUD) Lập kế hoạch Quản lý công việc cần làm gắn liền với lịch biểu
UC08 Tạo thông báo nhắc việc Lập kế hoạch Thiết lập cảnh báo và cơ chế lặp (hàng ngày, hàng tuần, một lần)
UC09 Tạo ghi chú (CRUD) Lưu trữ Thêm, xem, sửa, xóa nội dung ghi chú nhanh
UC10 Tạo Album ảnh (CRUD) Lưu trữ Tổ chức cấu trúc phân mục lưu trữ hình ảnh
UC11 Thêm ảnh (CRUD) Lưu trữ Tải ảnh từ bộ nhớ thiết bị vào album tương ứng
UC12 Thêm tài khoản (CRUD) Lưu trữ Lưu trữ danh mục thông tin tài khoản đăng nhập các nền tảng
UC13 Thêm giấy tờ (CRUD) Lưu trữ Lưu trữ hình ảnh các loại giấy tờ tùy thân, thủ tục
UC14 Scan ảnh Lưu trữ Quét hình ảnh theo khung mẫu (CMND/CCCD, sách, hóa đơn)
UC15 Thêm thông tin sức khỏe Sức khỏe Ghi nhận các chỉ số nhịp tim, huyết áp định kỳ
UC16 Hỏi đáp Chatbot Trợ lý AI Giao tiếp tự nhiên, tra cứu bệnh lý thông thường và tính chu kỳ ngủ

Các quy tắc nghiệp vụ quan trọng được hệ thống kiểm soát chặt chẽ:

  • Xác thực và toàn vẹn dữ liệu (BR1, BR3, BR4, BR13): Kiểm tra các trường dữ liệu bắt buộc không được để trống (MSG 5); mật khẩu đăng ký hoặc thay đổi mới phải đạt độ dài tối thiểu 6 ký tự (MSG 18); kiểm tra sự trùng khớp giữa trường mật khẩu và xác nhận mật khẩu (MSG 19).
  • Bảo mật hai lớp với mã OTP (BR12, BR16): Mã OTP gửi về số điện thoại được đối soát chính xác trước khi mở luồng cập nhật mật khẩu mới hoặc xác nhận đăng ký tài khoản.
  • Tự động hóa định danh (BR23, BR42, BR46, BR51): Các trường mã khóa chính như Mã công việc, Mã ghi chú, Mã album, Mã ảnh được hệ thống tự động sinh và khóa chỉnh sửa đối với người dùng cuối.
  • Xử lý nhắc việc lặp (BR28, BR29): Thuộc tính Repeat cho phép tùy biến chu kỳ đẩy thông báo nhắc nhở theo chu kỳ ngày, tuần hoặc một lần duy nhất.

Nội dung chính theo từng chương

Đề cương chi tiết và Chương 1: Lý do chọn đề tài

Chương 1 thiết lập khung cơ sở của nghiên cứu, phân tích thực trạng mất kiểm soát thời gian và nguy cơ thất lạc thông tin trong sinh hoạt hàng ngày. Chương này xác định rõ 3 mục tiêu trọng tâm (kế hoạch, lưu trữ số, chăm sóc sức khỏe), đối tượng người dùng, phạm vi chức năng của ứng dụng di động và hệ thống Chatbot, đồng thời công bố kế hoạch làm việc 5 giai đoạn của nhóm tác giả.

Chương 2: Kiến thức và công nghệ nền tảng

Chương này đi sâu vào giải pháp công nghệ:

  • Trình bày kiến trúc Dart/Flutter, làm rõ sự vượt trội trong việc giải quyết đồng thời hai bài toán Native Performance và Fast Development so với React Native hay Native code truyền thống.
  • Phân tích ưu thế của Node.js (V8, Non-blocking I/O) và Express.js trong việc xây dựng hệ thống API nhanh, nhẹ, hỗ trợ middleware linh hoạt.
  • Đánh giá mô hình NoSQL của MongoDB trong việc lưu trữ dữ liệu dạng tài liệu JSON, cho phép xử lý dữ liệu phi cấu trúc với tốc độ truy vấn cao.
  • Trình bày cơ chế phân tích ngôn ngữ tự nhiên (NLP) của Dialogflow, hỗ trợ tiếng Việt và khả năng kết nối đa nền tảng.
  • Giới thiệu môi trường phát triển tích hợp Visual Studio Code và hệ thống quản lý mã nguồn Git/GitHub.

Chương 3: Xây dựng ứng dụng

Chương 3 là phần trọng tâm về phân tích thiết kế phần mềm:

  • Xây dựng sơ đồ Use Case tổng quát và bảng mô tả chi tiết cho 16 ca sử dụng (UC01 đến UC16).
  • Cung cấp luồng hoạt động (Activities Flow) chi tiết cho từng nghiệp vụ: Đăng nhập, Đăng ký, Quên mật khẩu, Gửi OTP, Cập nhật thông tin, Quản lý công việc, Quản lý ghi chú, Quản lý album/ảnh.
  • Thiết lập hệ thống quy tắc nghiệp vụ (Business Rules từ BR1 đến BR51) và danh mục thông báo hệ thống (Messages).
  • Xác định các yêu cầu phi chức năng về hiệu năng, độ tin cậy và chỉ số thời gian trung bình giữa các lần hỏng hóc (MTBF).

Chương 4: Thiết kế giao diện ứng dụng

Chương 4 tài liệu hóa hệ thống màn hình người dùng của ứng dụng trên thiết bị di động bao gồm:

  • Nhóm màn hình xác thực: Đăng ký, Đăng nhập, Quên mật khẩu.
  • Nhóm màn hình điều hướng và cá nhân: Màn hình trang chủ, Màn hình thông tin cá nhân.
  • Nhóm màn hình chức năng lập kế hoạch: Giao diện lập kế hoạch theo lịch biểu, Màn hình thêm và quản lý công việc.
  • Nhóm màn hình quản lý tư liệu: Danh sách màn hình ghi chú, Danh sách màn hình album và hình ảnh, Màn hình lưu trữ danh mục tài khoản cá nhân.
  • Nhóm màn hình sức khỏe và trợ lý ảo: Giao diện theo dõi hồ sơ sức khỏe, Giao diện tương tác trực tiếp với Chatbot thông minh.

Chương 5: Thử nghiệm và đánh giá

Chương 5 trình bày việc thiết lập môi trường thử nghiệm trên các thiết bị di động thực tế và môi trường giả lập. Tác giả tiến hành kiểm thử các luồng chức năng chính (xác thực OTP, CRUD công việc, kích hoạt thông báo nhắc nhở, tải ảnh, phản hồi của Chatbot Dialogflow) nhằm đánh giá độ ổn định của ứng dụng và tính chính xác trong xử lý dữ liệu.

Chương 6: Kết luận và hướng phát triển

Chương cuối tổng kết toàn bộ kết quả triển khai đề tài, chỉ ra các hạn chế hiện tại về phạm vi nhận diện ngôn ngữ của Chatbot và đề xuất các hướng nâng cấp ứng dụng trong tương lai.

Kết quả và đóng góp

Đồ án đã hoàn thành các mục tiêu kỹ thuật và chức năng đã đề ra:

  • Hoàn thiện giải pháp phần mềm: Xây dựng thành công ứng dụng di động "Sổ tay cá nhân" với 16 ca sử dụng hoàn chỉnh, vận hành đồng bộ trên cả tầng Frontend (Flutter), Backend (Node.js/Express) và Cơ sở dữ liệu (MongoDB).
  • Tích hợp đa năng (All-in-one): Kết hợp thành công các tiện ích quản lý lịch biểu, ghi chú, lưu trữ tài khoản, scan giấy tờ và theo dõi chỉ số sức khỏe trong một nền tảng duy nhất, khắc phục tình trạng phân mảnh khi người dùng phải cài đặt nhiều ứng dụng đơn lẻ.
  • Ứng dụng công nghệ trợ lý ảo AI: Triển khai Chatbot thông minh trên nền tảng Dialogflow có khả năng giao tiếp bằng văn bản tiếng Việt, hỗ trợ giải đáp các thắc mắc y tế cơ bản và tư vấn phân bổ thời gian ngủ nghỉ.

Hạn chế và hướng nghiên cứu tiếp

Bên cạnh các kết quả đạt được, tác giả đã chỉ ra một số hạn chế và định hướng phát triển cụ thể:

  • Hạn chế:
    • Khả năng phản hồi và hiểu ngữ nghĩa của Chatbot y tế mới dừng lại ở mức độ chính xác tương đối, phụ thuộc vào kịch bản có sẵn trên Dialogflow và chủ yếu tối ưu tốt hơn ở các tập dữ liệu chuẩn.
  • Hướng phát triển:
    • Phát triển tính năng mạng xã hội: cho phép người dùng đăng tải và chia sẻ các bài viết, kinh nghiệm trong cộng đồng.
    • Tích hợp cổng thanh toán và liên kết trực tiếp với các ví điện tử nhằm tự động hóa quy trình quản lý chi tiêu cá nhân.
    • Mở rộng các gói hỗ trợ đa ngôn ngữ để phục vụ người dùng quốc tế.

Giá trị tham khảo

Báo cáo Đồ án 1 này là tài liệu tham khảo hữu ích cho sinh viên chuyên ngành Kỹ thuật phần mềm, Công nghệ thông tin và Hệ thống thông tin:

  • Tham khảo quy trình đặc tả phần mềm: Cung cấp phương pháp xây dựng sơ đồ Use Case, phân rã luồng hoạt động (Activities Flow) và định nghĩa bảng Quy tắc nghiệp vụ (Business Rules) chặt chẽ, dễ áp dụng vào các đồ án môn học.
  • Tham khảo kiến trúc công nghệ hiện đại: Minh họa cụ thể cách kết hợp bộ công cụ Flutter, Node.js, Express.js, MongoDB và Google Dialogflow để phát triển một sản phẩm di động hoàn chỉnh từ khâu phân tích đến triển khai giao diện.

Câu hỏi thường gặp

1. Ứng dụng "Sổ tay cá nhân" sử dụng các công nghệ chính nào cho Frontend và Backend?
Frontend được xây dựng bằng ngôn ngữ Dart kết hợp Flutter UI Framework. Backend được phát triển trên nền tảng Node.js sử dụng framework Express.js, kết hợp cùng hệ cơ sở dữ liệu NoSQL MongoDB và nền tảng Google Dialogflow cho phân hệ Chatbot.

2. Hệ thống hỗ trợ những phương thức bảo mật và xác thực nào cho người dùng?
Hệ thống sử dụng cơ chế xác thực tài khoản qua mật khẩu (tối thiểu 6 ký tự) kết hợp xác thực hai lớp bằng mã SMS OTP (Send OTP) khi đăng ký tài khoản mới hoặc khi người dùng thực hiện quy trình lấy lại mật khẩu bị quên.

3. Phân hệ quản lý sức khỏe và Chatbot AI trên ứng dụng cung cấp những tính năng gì?
Phân hệ cho phép người dùng ghi nhận và lưu trữ các thông số sinh lý (nhịp tim, huyết áp). Đồng thời, Chatbot Dialogflow hỗ trợ trả lời tự động các thắc mắc về bệnh lý, triệu chứng thường gặp, cung cấp tài liệu tham khảo và tính toán thời gian ngủ nghỉ hợp lý.

4. Hai thành viên nhóm nghiên cứu đã phân chia công việc như thế nào trong quá trình thực hiện?
Sinh viên Phạm Văn Chánh phụ trách phân hệ Đăng nhập/Đăng ký, Lập kế hoạch/Nhắc việc và Quản lý thông tin sức khỏe. Sinh viên Hồ Quang phụ trách chức năng Quên mật khẩu/Profile cá nhân, phân hệ Ghi chú/Lưu trữ tài nguyên (ảnh, tài khoản, giấy tờ) và tích hợp Chatbot Dialogflow. Các giai đoạn nghiên cứu công nghệ, thiết kế CSDL, kiểm thử và viết báo cáo được cả hai cùng thực hiện.

Kết luận

Báo cáo Đồ án 1 "Ứng dụng Sổ tay Cá nhân" của nhóm sinh viên Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM đã giải quyết trọn vẹn bài toán quản lý thông tin, thời gian biểu và hồ sơ sức khỏe cá nhân trên nền tảng di động. Bằng việc ứng dụng hiệu quả kiến trúc Flutter, Node.js, MongoDB cùng trí tuệ nhân tạo Dialogflow, đề tài đã xây dựng được một hệ thống phần mềm hoàn chỉnh với 16 ca sử dụng có tính ứng dụng cao. Tài liệu thể hiện phương pháp tiếp cận khoa học, quy trình phân tích đặc tả nghiệp vụ bài bản và là nguồn tham khảo giá trị cho các đồ án kỹ thuật phần mềm tương tự.