Tải bản đầy đủ (.pdf) (98 trang)

Đồ án ứng dụng sổ tay cá nhân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.35 MB, 98 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯ ỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2
Học Kỳ II (2022 – 2023)

ĐỀ TÀI:

ỨNG DỤNG SỔ TAY CÁ NHÂN
Nhóm sinh viên thực hiện:
- Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
- Lớp: SE122.N21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng

Thành phố Hồ Chí Minh, ngày 24, tháng 06, năm 2023


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯ ỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2
Học Kỳ II (2022 – 2023)

ĐỀ TÀI:

ỨNG DỤNG SỔ TAY CÁ NHÂN


Nhóm sinh viên thực hiện:
- Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
- Lớp: SE122.N21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng

Thành phố Hồ Chí Minh, ngày 23, tháng 06, năm 2023


MỤC LỤC
DANH MỤC HÌNH......................................................................................................... 1
DANH MỤC TỪ VIẾT TẮT........................................................................................... 2
LỜI CẢM ƠN ................................................................................................................. 3
ĐỀ CƯƠNG CHI TIẾT ................................................................................................... 4
NỘI DUNG ..................................................................................................................... 9
Chương 1. GIỚI THIỆU ................................................................................................. 9
1.1. Lý do chọn đề tài .................................................................................................. 9
1.2. Mục tiêu ............................................................................................................... 9
1.3. Phạm vi .............................................................................................................. 10
1.4. Đối tượng sử dụng .............................................................................................. 10
1.5. Phương pháp thực hiện ....................................................................................... 10
Chương 2. KIẾN THỨC VÀ CÔNG NGHỆ NỀN TẢNG ............................................ 12
2.1. Kiến thức nền tảng ............................................................................................. 12
2.2. Cơng nghệ sử dụng ............................................................................................. 12
2.2.1. Ngơn ngữ lập trình Dart ............................................................................... 12
2.2.2. Flutter .......................................................................................................... 13
2.2.3. Nodejs ......................................................................................................... 14
2.2.4. Expressjs ..................................................................................................... 15
2.2.5. MongoDB .................................................................................................... 16

2.2.6. DialogFlow .................................................................................................. 17
2.2.7. Visual Studio Code ...................................................................................... 18
Chương 3. XÂY DỰNG ỨNG DỤNG ......................................................................... 20
3.1. Yêu cầu chức năng ............................................................................................. 20
3.1.1. Use Case Diagram ....................................................................................... 20
3.1.2. Mô tả Use Case ............................................................................................ 21
3.1.3. Đặc tả Use case ............................................................................................ 22
UC01: Đăng nhập SĐT ..................................................................................... 22


UC02: Đăng nhập bằng Google ........................................................................ 24
UC03: Đăng ký ................................................................................................. 26
UC04: Quên mật khẩu....................................................................................... 29
UC05: Send OTP .............................................................................................. 32
UC06: Đăng xuất .............................................................................................. 33
UC07: Cập nhật thông tin cá nhân ..................................................................... 34
UC08: Tạo loại công việc (CRUD) ................................................................... 35
UC09: Tạo công việc (CRUD) .......................................................................... 37
UC10: Tạo thông báo nhắc việc ........................................................................ 39
UC11: Tạo ghi chú (CRUD) ............................................................................. 41
UC12: Tạo Album ảnh (CRUD) ........................................................................ 44
UC13: Thêm ảnh (CRUD) ................................................................................ 47
UC14: Thêm tài khoản (CRUD) ........................................................................ 49
UC15: Thêm chỉ số sức khoẻ (CRUD) .............................................................. 51
UC15: Hỏi đáp chatbot ..................................................................................... 54
3.1.4. Mô tả cơ sở dữ liệu ...................................................................................... 56
3.1.5. Danh sách Messages .................................................................................... 61
3.2. Yêu cầu phi chức năng ....................................................................................... 62
3.2.1. Capacity....................................................................................................... 62
3.2.2. Response Time ............................................................................................ 62

3.2.3. Portability .................................................................................................... 62
3.2.4. Reliability .................................................................................................... 63
3.2.5. Safety .......................................................................................................... 63
Chương 4. THIẾT KẾ GIAO DIỆN ỨNG DỤNG ........................................................ 64
4.1. Giao diện đăng ký .............................................................................................. 64
4.2. Giao diện đăng nhập ........................................................................................... 66
4.3. Giao diện quên mật khẩu .................................................................................... 68
4.4. Màn hình trang chủ ............................................................................................ 70
4.5. Màn hình thơng tin cá nhân ................................................................................ 72


4.6. Giao diện lập kế hoạch ....................................................................................... 74
4.7. Giao diện loại công việc ..................................................................................... 76
4.8. Giao diện thêm công việc ................................................................................... 78
4.9. Giao diện ghi chú ............................................................................................... 79
4.10. Giao diện album ảnh......................................................................................... 82
4.11. Giao diện quản lý tài khoản .............................................................................. 85
4.12. Giao diện sức khoẻ ........................................................................................... 87
4.13. Giao diện chatbot hỏi đáp sức khoẻ .................................................................. 89
Chương 5. THỬ NGHIỆM VÀ ĐÁNH GIÁ ................................................................. 90
5.1. Môi trường thử nghiệm ...................................................................................... 90
5.2. Kết quả thử nghiệm ............................................................................................ 90
5.3. Đánh giá sản phẩm ............................................................................................. 90
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 91
6.1. Kết luận.............................................................................................................. 91
6.2. Hạn chế và hướng phát triển ............................................................................... 91
6.2.1. Hạn chế........................................................................................................ 91
6.2.2. Hướng phát triển .......................................................................................... 92
TÀI LIỆU THAM KHẢO ............................................................................................. 93



DANH MỤC HÌNH

Hình 2.1: Ngơn ngữ lập trình Dart ................................................................................. 12
Hình 2.2: Flutter SDK.................................................................................................... 13
Hình 2.3: Javascript runtime Nodejs .............................................................................. 14
Hình 2.4: Expressjs framework ...................................................................................... 15
Hình 2.5: Cơ sở dữ liệu MongoDB ................................................................................ 16
Hình 2.6: Dialogflow framework AI .............................................................................. 17
Hình 2.7: Visual Studio Code ........................................................................................ 18
Hình 3.1: Sơ đồ Usecase tổng quát hệ thống…………………………………………….20
Hình 3.2: Database Diagram .......................................................................................... 56
Hình 4.1: Danh sách màn hình đăng ký………………………………………………….64
Hình 4.2: Màn hình đăng nhập....................................................................................... 66
Hình 4.3: Màn hình quên mật khẩu ................................................................................ 68
Hình 4 4: Màn hình trang chủ ........................................................................................ 70
Hình 4.5: Màn hình thơng tin cá nhân ............................................................................ 72
Hình 4.6: Màn hình lập kế hoạch ................................................................................... 74
Hình 4.7: Màn hình loại cơng việc ................................................................................. 76
Hình 4.8: Màn hình thêm cơng việc ............................................................................... 78
Hình 4.9: Danh sách màn hình ghi chú .......................................................................... 80
Hình 4.10: Danh sách màn hình album ảnh .................................................................... 83
Hình 4.11: Danh sách màn hình lưu trữ tài khoản .......................................................... 85
Hình 4.12: Danh sách màn hình hồ sơ sức khoẻ ............................................................. 87
Hình 4.13: Màn hình chatbot ......................................................................................... 89

1


DANH MỤC TỪ VIẾT TẮT

#
1

Từ viết tắt
UI

2

API

3

CSDL

4

SDK

5

I/O

6

Ý nghĩa
Giao diện người dùng

Từ đầy đủ
User Interface
Application Programing

Inteface

Giao diện lập trình ứng dụng

Cơ sở dữ liệu

Software Development Kit

Công cụ và phần mềm dùng để
phát triển ứng dụng thông qua
một nền tảng nhất định

Input / Output

Thiết bị đầu cuối

HTTP

Hyper Text Transfer
Protocol

Giao thức truyền tải siêu văn bản

7

URL

Uniform Resource Locator

8


JSON
Javascript Object Notation

9

AI

10

IVR

11

IDE

12

UC

13

CRUD

Artificial Intelligence
Interactive Voice
Response
Integrated Development
Environment


Hệ thống định vị tài nguyên
thống nhất (hay địa chỉ web)
Kiểu dữ liệu mở trong Javascript
dùng để trao đổi dữ liệu trên
web
Trí tuệ nhân tạo
Hệ thống tổng đài trả lời tự động
Mơi trường tích hợp dùng để
viết code để phát triển ứng dụng

Usecase
Create, Read, Update,
Delete

Thêm, đọc, sửa, xoá

14

OTP

One Time Password

Mật khẩu xác thực một lần được
coi là lớp bảo vệ thứ hai cho ứng
dụng

15

BR


Business Rule

Quy tắc nghiệp vụ

16

MSG

Message

17

MTBF

Mean time between failure
2

Thời gian trung bình giữa các
lần hỏng hóc


LỜI CẢM ƠN
Sau quá trình ho ̣c tập và rèn luyện ta ̣i khoa Công nghệ phầ n mề m trường Đa ̣i ho ̣c
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã đươc̣ trang bi ̣các kiế n thức cơ bản,
các kỹ năng thực tế để có thể thực hiện Đồ án 2 của mình.
Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đế n:
Ban Giám hiệu trường Đa ̣i ho ̣c Công nghệ Thông tin – ĐHQG TP.HCM vì đã ta ̣o
điề u kiện về cơ sở vật chấ t với hệ thố ng thư viện hiện đa ̣i, đa da ̣ng các loa ̣i sách, tài liệu
thuận lơị cho việc tìm kiế m, nghiên cứu thông tin.
Chúng em xin gửi lời cảm ơn chân thành đế n thầ y Trầ n Anh Dũng đã tận tình giúp

đỡ, đinh
̣ hướng cách tư duy và cách làm việc khoa ho ̣c. Đó là những góp ý hế t sức quý
báu không chỉ trong quá trình thực hiện đề tài mà còn là hành trang tiế p bước cho chúng
em trong quá trình ho ̣c tập và lập nghiệp sau này.
Và cuố i cùng, chúng em xin gửi lời cảm ơn đế n gia đình, tấ t cả thầ y cô trong khoa,
ba ̣n bè, tập thể lớp PMCL2019 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong ho ̣c
tập và cuộc số ng. Mong rằ ng, chúng ta sẽ mãi mãi gắ n bó với nhau.
Tuy nhiên trong quá trình nghiên cứu đề tài, do kiến thức chuyên ngành cịn hạn chế
nên chúng em vẫn cịn nhiều thiếu sót khi tìm hiểu, đánh giá, trình bày về đề tài. Rất
mong nhận được sự quan tâm, góp ý của thầy để đề tài của chúng em được đầy đủ và
hoàn chỉnh hơn.
Chúng em xin chân thành cảm ơn.
TP. Hồ Chí Minh, ngày 24 tháng 06 năm 2023

3


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

Độc Lập – Tự Do – Hạnh Phúc
TP. HCM, ngày 24 tháng 6 năm 2023

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Xây dựng ứng dụng sổ tay cá nhân
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 27/02/2023 đế n ngày 24/06/2023

Sinh viên thực hiện:
Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
Nội dung đề tài
1. Lý do chọn đề tài
Với nhiều hoạt động xảy ra thường xuyên mỗi phút, mỗi giờ hằng ngày. Khi chúng
ta làm bất cứ một việc nào đó, ta thường làm theo bản năng và khơng có một kế hoạch
nào nhất định. Và chúng ta hồn tồn có thể qn béng đi chỉ ngay trong chớp mắt.
Chính việc này dẫn đến tình trạng bị trì trệ, khơng mang đến kết quả tốt. Những điều
đó khả năng là bạn không biết quản lý thời gian và lên kế hoạch cho cuộc sống.
Ngồi thói quen sắp xếp lối sống sinh hoạt, sắp xếp các vật dụng trong nhà, thì bạn
cũng cần phải có sự sắp xếp để quản lý thời gian của bản thân. Có một cuốn sổ tay để
ghi vào đó những lịch hẹn hay deadline cho công việc trong tuần kế tiếp, lướt qua nó
trước khi bắt đầu một ngày mới, chắc chắn bạn sẽ có được kế hoạch tốt hơn cho bản
thân, Bộ nhớ của con người là vô hạn. Nhưng nếu không thường xun được gợi nhớ
thì các thơng tin lưu trữ cũng có thể bị mất đi. Một cuốn sổ tay sẽ là trợ lý tuyệt vời
4


giúp bạn ghi nhớ mọi vấn đề trong cuộc sống. Địa chỉ của khách hàng, số điện thoại
của người bạn mới quen, liệt kê các hạng mục cần mua sắm, nhật ký chi tiêu hàng
ngày…
Biết được tầm quan trọng, chúng em quyết định xây dựng ứng dụng sổ tay cá nhân.
Với mong muốn giúp người dùng quản lý được thời gian, kế hoạch cho riêng mình.
Giúp quản lý chi tiêu cá nhân để bạn biết sử dụng đồng tiền một cách hợp lý, hiệu quả
hơn. Giúp ghi chú lại những thứ quan trọng, đặc biệt lưu trữ thơng tin trình trạng sức
khoẻ và hệ thống chatbot hỗ trợ trả lời các câu hỏi về sức khoẻ, bệnh lý và các triệu
chứng thông thường mà mỗi cá nhân chúng ta gặp phải.
2. Mục tiêu
Xây dựng ứng dụng hỗ trợ về các vấn đề cá nhân:

-

Hỗ trợ việc lên kế hoạch và nhắc việc

-

Hỗ trơ ̣ việc ghi chú thông tin, lưu trữ tài sản cá nhân (hình ảnh, video, tài
khoản,...)
Hỗ trơ ̣ giúp quản lý thông tin sức khỏe: lưu trữ thông tin sức khoẻ, chatbot hỗ

-

trơ ̣ sức khoẻ (FAQ các vấ n đề cơ bản về sức khỏe, cung cấ p các bài viế t của
các chuyên gia về các bệnh lý, triệu chứng thông thường, Hỏi đáp về các
khoảng thời gian ngủ nghỉ hơp̣ lý,..)
3. Phạm vi
Phạm vi môi trường: Ứng dụng di động.
Phạm vi chức năng:
 Đối với ứng dụng:
-

Cung cấp chức năng đăng nhập, đăng ký, đăng xuất, quên mật khẩu, thông
tin người dùng,….

-

Cung cấp chức năng để người dùng lên kế hoạch và nhắc việc

-


Cung cấp chức năng để lưu ghi chú và xem các tư liệu, các thông tin đã lưu.

-

Cung cấp chức năng quản lý thông tin sức khoẻ
5


 Đối với chatbot
-

Có khả năng trả lời các câu hỏi về các bệnh lý thường gặp một cách hiệu
quả.

-

Hiểu và gửi các tài liệu hợp lý cho người dùng.

4. Đối tượng sử dụng
Tất cả người dùng có lối sống sinh hoạt bận rộn, hay quên, không làm chủ được thời
gian trong công việc hằng ngày muốn đề ra kế hoạch rõ ràng cho bản thân bao gồm
theo dõi, đánh giá, điều chỉnh thời gian, tình trạng tài chính cá nhân,..
5. Phương pháp thực hiện:
Phương pháp làm việc:
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline

-

dưới sự hướng dẫn của giảng viên.
Phương pháp nghiên cứu:

-

Phân tích nhu cầu sử dụng của đối tượng người dùng.

-

Nghiên cứu tài liệu các công nghệ liên quan.

Phương pháp công nghệ:
-

Xây dựng giao diện mobile app để tương tác với người dùng

-

Quản lý source code thông qua Github

6. Nền tảng công nghệ:
-

Frontend: Flutter, Dart

-

Backend: nodejs, express, javascript

-

Database: MongoDB


-

Extension: Visual Studio Code

-

DialogFlow Chatbot

7. Kết quả mong đợi:
-

Ứng dụng hoạt động ổn định, có thể xử lý thơng tin nhanh chóng, giao diện
thân thiện với người dùng,...
6


-

Chatbot có khả năng phản hồi nhanh và chính xác ở mức tương đối.

8. Hướng phát triển của đề tài:
-

Thêm tính năng đăng, xem bài viết chia sẻ

-

Tích hợp quản lý chi tiêu cá nhân

-


Hỗ trợ nhiều gói ngơn ngữ

9. Kế hoạch làm việc
Thời gian thực hiện từ ngày 27/02/2022 đến ngày 24/06/2023
Thời gian

Cơng việc dự kiến

Phân cơng

27/03/2023 –



Phân tích yêu cầu nghiệp vụ

09/04/2023



Đặc tả yêu cầu phần mềm

10/04/2023 -



Sketches

16/04/2023




Thiết kế Database

17/04/2023 -



Tổ chức cấu trúc hệ thống (cả Backend và

30/04/2023

Chánh, Quang

Chánh, Quang

Chánh, Quang

Mobile App)


Xây dựng giao diện



Xây dựng tính năng đăng nhập SĐT,
Google, Đăng ký, Quên mật khẩu, quản lý
thông tin người dùng


01/05/2023 –



Tiếp tục xây dựng giao diện

14/05/2023



Các tính năng phân hệ lập kế hoạch: quản

Chánh, Quang

lý loại cơng việc, cơng việc, nhắc việc,…


Tính năng ghi chú và lưu trữ tài sản cá
nhân (album ảnh, account,…)

15/05/2023 –



Xây dựng giao diện

28/05/2023




Các tính năng quản lý thơng tin sức khoẻ

Chánh, Quang

7




29/05/2023 -

Chatbot

 Traning model Chatbot

Quang

04/06/2023
05/05/2023 –



Kiểm thử ứng dụng

23/06/2023



Hoàn thiện và sửa các lỗi




Hoàn thành báo cáo

.

8

Chánh, Quang


NỘI DUNG
Chương 1. GIỚI THIỆU
1.1. Lý do chọn đề tài
Với nhiều hoạt động xảy ra thường xuyên mỗi phút, mỗi giờ hằng ngày. Khi chúng
ta làm bất cứ một việc nào đó, ta thường làm theo bản năng và khơng có một kế hoạch
nào nhất định. Và chúng ta hồn tồn có thể qn béng đi chỉ ngay trong chớp mắt. Chính
việc này dẫn đến tình trạng bị trì trệ, khơng mang đến kết quả tốt. Những điều đó khả
năng là bạn không biết quản lý thời gian và lên kế hoạch cho cuộc sống.
Ngồi thói quen sắp xếp lối sống sinh hoạt, sắp xếp các vật dụng trong nhà, thì bạn
cũng cần phải có sự sắp xếp để quản lý thời gian của bản thân. Có một cuốn sổ tay để ghi
vào đó những lịch hẹn hay deadline cho cơng việc trong tuần kế tiếp, lướt qua nó trước
khi bắt đầu một ngày mới, chắc chắn bạn sẽ có được kế hoạch tốt hơn cho bản thân. Bộ
nhớ của con người là vô hạn, nhưng nếu không thường xuyên được gợi nhớ thì các thơng
tin lưu trữ cũng có thể bị mất đi. Một cuốn sổ tay sẽ là trợ lý tuyệt vời giúp bạn ghi nhớ
mọi vấn đề trong cuộc sống. Địa chỉ của khách hàng, số điện thoại của người bạn mới
quen, liệt kê các hạng mục cần mua sắm, nhật ký chi tiêu hàng ngày…
Biết được tầm quan trọng, chúng em quyết định xây dựng ứng dụng sổ tay cá nhân.
Với mong muốn giúp người dùng quản lý được thời gian, kế hoạch cho riêng mình. Giúp
quản lý chi tiêu cá nhân để bạn biết sử dụng đồng tiền một cách hợp lý, hiệu quả hơn.

Giúp ghi chú lại những thứ quan trọng, đặc biệt lưu trữ thơng tin trình trạng sức khoẻ và
hệ thống chatbot hỗ trợ trả lời các câu hỏi về sức khoẻ, bệnh lý và các triệu chứng thông
thường mà mỗi cá nhân chúng ta gặp phải.
1.2. Mục tiêu
Xây dựng ứng dụng hỗ trợ về các vấn đề cá nhân:
-

Hỗ trợ việc lên kế hoạch và nhắc việc

9


Hỗ trơ ̣ việc ghi chú thông tin, lưu trữ tài sản cá nhân (hình ảnh, video, tài

-

khoản,...)
Hỗ trơ ̣ giúp quản lý thông tin sức khỏe: lưu trữ thông tin sức khoẻ, chatbot hỗ trơ ̣

-

sức khoẻ (FAQ các vấ n đề cơ bản về sức khỏe, cung cấ p các bài viế t của các
chuyên gia về các bệnh lý, triệu chứng thông thường, Hỏi đáp về các khoảng thời
gian ngủ nghỉ hơp̣ lý,..)
1.3. Phạm vi
Phạm vi môi trường: Ứng dụng di động.
Phạm vi chức năng:
 Đối với ứng dụng:
-


Cung cấp chức năng đăng nhập, đăng ký, đăng xuất, quên mật khẩu, thông tin
người dùng,….

-

Cung cấp chức năng để người dùng lên kế hoạch và nhắc việc

-

Cung cấp chức năng để lưu ghi chú và xem các tư liệu, các thông tin đã lưu.

-

Cung cấp chức năng quản lý thơng tin sức khoẻ

 Đối với chatbot
-

Có khả năng trả lời các câu hỏi về các bệnh lý thường gặp một cách hiệu quả.

-

Hiểu và gửi các tài liệu hợp lý cho người dùng.

1.4. Đối tượng sử dụng
Tất cả người dùng có lối sống sinh hoạt bận rộn, hay quên, không làm chủ được thời
gian trong công việc hằng ngày muốn đề ra kế hoạch rõ ràng cho bản thân bao gồm theo
dõi, đánh giá, điều chỉnh thời gian, tình trạng tài chính cá nhân,..
1.5. Phương pháp thực hiện
Phương pháp làm việc:

-

Làm việc nhóm 2 thành viên thơng qua cả 2 phương thức online và offline dưới sự
hướng dẫn của giảng viên.
10


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

Phân tích nhu cầu sử dụng của đối tượng người dùng.

-

Nghiên cứu tài liệu các công nghệ liên quan.

Phương pháp công nghệ:
- Xây dựng giao diện mobile app để tương tác với người dùng
- Quản lý source code thông qua Github

11


Chương 2. KIẾN THỨC VÀ CÔNG NGHỆ NỀN TẢNG
2.1. Kiến thức nền tảng
Để thiết kế và hoàn thiện sản phẩm đúng với yêu cầu người dùng, chúng em đã vận
dụng các kiến thức có liên quan, cụ thể:

 Frontend: Ngơn ngữ Dart với mobile UI framework Flutter và công cụ lập trình
Visual Studio Code: Kiến thức lập trình hướng đối tượng, chức năng cơ bản của

các Widget, thiết kế giao diện, xử lí sự kiện …
 Backend: Nodejs với Javascript và thư viện hỗ trợ tạo API Express: tạo API,
tương tác database,…
 Cơ sở dữ liệu: thiết kế CSDL phù hợp với mơ hình ứng dụng, ràng buộc dữ liệu,
truy vấn dữ liệu…
2.2. Công nghệ sử dụng
2.2.1. Ngôn ngữ lập trình Dart

Hình 2.1: Ngơn ngữ lập trình Dart
 Giới thiệu:
Dart là ngơn ngữ lập trình được phát triển bởi Google, hiện đã được chấp thuận
bởi tổ chức Ecma. Dart được sử dụng để xây dựng các loại ứng dụng: web, server, di
động (IOS và Android với công cụ Flutter).
Dart là ngơn ngữ hỗ trợ lập trình hướng đối tượng, cú pháp kiểu C, mã code Dart
có thể biên dịch thành JavaScript để chạy trên trình duyệt. Nó hỗ trợ những khái niệm
lập trình hiện đại như giao diện lớp, lớp trừu tượng ...
12


Từ ngơn ngữ lập trình Dart, Google giới thiệu SDK Futter để sử dụng ngôn ngữ
Dart phát triển ứng dụng di động chạy đa nền tảng (Một lần viết code build ra ứng
dụng cho IOS và Android).
 Lý do sử dụng:
Vì Dart là một ngơn ngữ phổ biến hiện nay trong việc phát triển ứng dụng di động,
nó giúp tạo ra ứng dụng một cách nhanh chóng và đẹp mắt hơn.
Vì đây là ứng dụng hướng đến mọi người dùng nên việc dùng Dart sẽ giúp phát
triển ứng dụng đa nền tảng cho cả người dùng IOS và Android.
2.2.2. Flutter

Hình 2.2: Flutter SDK

 Giới thiệu:
Đây là một UI Framework mã nguồn mở miễn phí được phát triển bởi Google và
phát hành vào tháng 5/2017. Flutter cho phép người dùng tạo ra native app (ứng
dụng di động gốc) với một codebase có giao diện chất lượng cao trên iOS và
Android trong thời gian ngắn nhất. Flutter hoạt động trên code có sẵn và được rất
nhiều lập trình viên và các tổ chức sử dụng.
Sự phát triển của Flutter đã giải quyết được bài toán thường gặp trong di động là
native PerFormance và Fast Development. Nếu như Code Native thuần chỉ đảm bảo
được Native PerFormance và React Native chỉ giải quyết được Fast Development
thì Flutter sẽ giải quyết được cả hai vấn đề trên.
Flutter gồm có 2 thành phần quan trọng là:
13


- Một SDK (Software Development Kit): Tổng hợp các công cụ giúp người
dùng phát triển ứng dụng. Nó bao gồm cả những công cụ biên dịch mã thành các
mã máy gốc dùng cho iOS và Android.
- Một Framework (UI Library based on widgets): Là tập hợp gồm nhiều thành
phần giao diện người dùng có thể tái sử dụng như slider, button,… giúp người
dùng có thể cá nhân hóa theo nhu cầu cá nhân.
 Lý do sử dụng
Có thể sử dụng Flutter để tạo ra các ứng dụng di động vô cùng đơn giản mà khơng
cần phải code nhiều.
Với Flutter, Có thể tạo ra các hiệu ứng và đồ hoạ bất kỳ trên cả hai nền tảng là
Android và IOS.
Khi làm việc liên quan đến giao diện người dùng UI, Flutter giúp tạo ra sự thuận
tiện cho bạn cũng như thay đổi code và xem kết quả trong thời gian thực bởi nó sở
hữu Hot Reload.
2.2.3. Nodejs


Hình 2.3: Javascript runtime Nodejs
 Giới thiệu:
NodeJS là mã nguồn mở chạy trên môi trường V8 JavaScript runtime (một trình
thơng dịch Javascript chạy cực nhanh trên trình duyệt Chrome). NodeJS giúp các
nhà phát triển xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.

14


NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứng
dụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy
chủ Rest API … Tuy nhiên, NodeJS thường được dùng chủ yếu để xây dựng các
chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc ASP.NET.
Vì đây là mã nguồn mở nên cho phép bạn sử dụng miễn phí và đồng thời được
liên tục được chỉnh sửa, cải tiến bởi cộng đồng các nhà phát triển toàn cầu.
 Lý do sử dụng:
Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Eventdriven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux,
hơn nữa cộng đồng Nodejs rất lớn và hồn tồn miễn phí.
Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị.
2.2.4. Expressjs

Hình 2.4: Expressjs framework
 Giới thiệu:
Express là một framework nhỏ và tiện ích để xây dựng các ứng dụng web, cung
cấp một lượng lớn của tính năng mạnh mẽ để phát triển các ứng dụng web và
mobile. Nó rất dễ dàng để phát triển các ứng dụng nhanh dựa trên Nodejs cho các
ứng dụng Web. Các tính năng cơ bản của Express framework:
- Cho phép thiết lập các lớp trung gian để trả về các HTTP request.
15



- Định nghĩ bảng routing có thể được sử dụng với các hành động khác nhau dựa
trên phương thức HTTP và URL.
- Cho phép trả về các trang HTML dựa vào các tham số truyền vào đến
template.
 Lý do sử dụng:
Express hướng tới sự linh động, chỉ những gì bạn cần thì bạn mới phải thêm vào,
khơng giống như những đối thủ như là Rails hay Django, hướng tới một cách cứng
nhắc để xây dựng ứng dụng.
Bằng cách mở rộng các đặc tính của NodeJs, ExpressJs cung cấp các tính năng
như middlewares (hàm xử xý trung gian), đơn giản hóa khả năng điều hướng của
ứng dụng, kèm theo tích hợp hỗ trợ rất nhiều template engine, giúp bạn tương tác dễ
dàng hơn với HTML.
2.2.5. MongoDB

Hình 2.5: Cơ sở dữ liệu MongoDB
 Giới thiệu:
MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSQL để
truy vấn, nó được viết bởi ngơn ngữ C++. Chính vì được viết bởi C++ nên nó có
khả năng tính tốn với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện
nay. Mỗi một table (bảng dữ liệu) trong SQL sử dụng thì trong MongoDB gọi là
collection (tập hợp) Mỗi một record (bản ghi) trong MongoDB được gọi là

16


document (tài liệu). Một bản ghi của MongoDB được lưu trữ dưới dạng document
(tài liệu), nó được ghi xuống với cấu trúc field (trường) và value (giá trị).
Các Collection trong MongoDB có cấu trúc cực kỳ linh hoạt. Điều này cho phép

dữ liệu không cần thiết phải tuân theo bất kỳ một dạng cấu trúc nào. Vì thế,
MongoDB có thể lưu trữ những dữ liệu có cấu trúc đa dạng và phức tạp. Dữ liệu
trong MongoDB được lưu bằng định dạng kiểu JSON.
 Lý do sử dụng:
Lưu lượng dữ liệu lớn và phi cấu trúc, không cần quan tâm đến khái niệm JOIN.
Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn so với
các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
2.2.6. DialogFlow

Hình 2.6: Dialogflow framework AI
 Giới thiệu:
Dialogflow (tiề n thân là API.AI) là một dich
̣ vu ̣ do Google cung cấ p nhằ m giúp
các lập trình viên dễ dàng hơn khi lập trình các sản phẩ m có giao tiế p giữa người
dùng với sản phẩ m thông qua các đoa ̣n hội thoa ̣i bằ ng văn bản (text) hoặc gio ̣ng nói
(voice). Dialogflow sử du ̣ng trí tuệ nhân ta ̣o (AI) giúp phân tích ngôn ngữ tự nhiên
để hiể u đươc̣ những gì người dùng đưa vào.
Dialogflow hiện có sẵn các kich
̣ bản và Dialogflow cũng đươc̣ da ̣y khá tố t với
lươṇ g dữ liệu khá đồ sộ. Chỉ tiế t là đa phầ n Dialogflow làm việc tố t hơn với Tiế ng
Anh và một số tiế ng của các nước đông dân khác trong đó có tiế ng Việt. Ngoài ra
17


Dialogflow còn cho phép ba ̣n liên kế t Chatbot của ba ̣n với Messenger hay Skype
hay Slack... một cách rấ t đơn giản.
 Lý do sử dụng:
Với Dialogflow, mình có thể xây dựng các giao diện, chẳng hạn như chatbot và
IVR đàm thoại cho phép tương tác tự nhiên và phong phú giữa người dùng và
doanh nghiệp của bạn. Nó giúp người dùng có thể hiểu được các sắc thái rộng lớn

và đa dạng của ngôn ngữ và dịch nó sang nghĩa chuẩn và có cấu trúc mà các ứng
dụng và dịch vụ của bạn có thể hiểu được.
2.2.7. Visual Studio Code

Hình 2.7: Visual Studio Code
 Giới thiệu:
Visual Studio Code là một trình soạn thảo, biên tập code hồn tồn miễn phí
dành được Microsoft phát triển cho các lập trình viên và có mặt trên hầu hết các hệ
điều hành phổ biến như: Windows, Linux và macOS. Có thể nói rằng, Visual Studio
Code là một sự kết hợp độc đáo – đỉnh cao giữa IDE và Code Editor.
Không chỉ là soạn thảo, chỉnh sửa code, Visual Studio Code còn có thể hỗ trợ
bạn làm được rất nhiều việc như: đổi theme, hàng loạt phím tắt tiện dụng, có chức
năng debug đi kèm, hỗ trợ Git, syntax highlighting hỗ trợ q trình gõ code, phần
gợi ý code thơng minh,…
 Lý do sử dụng:
- Được phát triển cho nhiều nền tảng
18


- Quá trình code, gỡ lỗi được tối ưu nhất
- Kiến trúc mạnh mẽ và có thể khai thác mở rộng
- Cộng đồng hỗ trợ rộng lớn

19


Chương 3. XÂY DỰNG ỨNG DỤNG
3.1. Yêu cầu chức năng
3.1.1. Use Case Diagram


Hình 3.1: Sơ đồ Usecase tổng quát hệ thống

20


×