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

Ứ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 (4.93 MB, 90 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 1
Học Kỳ II (2021 – 2022)

ĐỀ 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: SE121.M21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng

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


ĐẠ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 1
Học Kỳ II (2021 – 2022)

ĐỀ 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: SE121.M21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng

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


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
Để 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 ............... 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 ......................................................................... 19
3.1. Yêu cầu chức năng ............................................................................................. 19
3.1.1. Use Case Diagram ....................................................................................... 19
3.1.2. Mô tả Use Case ............................................................................................ 20
3.1.3. Đặc tả Use case ............................................................................................ 21


UC1: Đăng nhập ..................................................................................................... 21
UC2: Đăng ký ........................................................................................................ 23
UC3: Quên mật khẩu .............................................................................................. 26
UC4: Send OTP ...................................................................................................... 29
UC5: Đăng xuất ...................................................................................................... 30
UC6: Cập nhật thông tin cá nhân ............................................................................ 31
UC7: Tạo công việc (CRUD) ................................................................................. 32
UC8: Tạo thông báo nhắc việc ................................................................................ 35
UC9: Tạo ghi chú (CRUD) ..................................................................................... 37
UC10: Tạo Album ảnh (CRUD) ............................................................................. 40
UC11: Thêm ảnh (CRUD) ...................................................................................... 43
UC12: Thêm tài khoản (CRUD) ............................................................................. 45
UC13: Thêm giấy tờ (CRUD) ................................................................................. 47
UC14: Scan ảnh ...................................................................................................... 50
UC15: Hỏi đáp chatbot ........................................................................................... 52
UC16: Thêm thông tin sức khoẻ (CRUD) ............................................................... 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 .................................................................................................... 62
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 ........................................................................................... 65
4.3. Giao diện quên mật khẩu .................................................................................... 67
4.4. Màn hình trang chủ ............................................................................................ 68


4.5. Màn hình thơng tin cá nhân ................................................................................ 69
4.6. Giao diện lập kế hoạch ....................................................................................... 71
4.7. Giao diện thêm công việc ................................................................................... 72
4.8. Giao diện ghi chú ............................................................................................... 73
4.9. Giao diện album ảnh .......................................................................................... 75
4.10. Giao diện tài khoản .......................................................................................... 77
4.11. Giao diện sức khoẻ ........................................................................................... 79
4.12. Giao diện chatbot hỏi đáp sức khoẻ .................................................................. 81
Chương 5. THỬ NGHIỆM VÀ ĐÁNH GIÁ ................................................................. 82
5.1. Môi trường thử nghiệm ...................................................................................... 82
5.2. Kết quả thử nghiệm ............................................................................................ 82
5.3. Đánh giá sản phẩm ............................................................................................. 82
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 83
6.1. Kết luận.............................................................................................................. 83
6.2. Hạn chế và hướng phát triển ............................................................................... 83
6.2.1. Hạn chế........................................................................................................ 83

6.2.2. Hướng phát triển .......................................................................................... 83
TÀI LIỆU THAM KHẢO ............................................................................................. 85


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…………………………………………….19
Hình 3.2: Database Diagram .......................................................................................... 57
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....................................................................................... 65
Hình 4.3: Màn hình quên mật khẩu ................................................................................ 67
Hình 4.4: Màn hình trang chủ ........................................................................................ 68
Hình 4.5: Màn hình thơng tin cá nhân ............................................................................ 69
Hình 4.6: Màn hình lập kế hoạch ................................................................................... 71
Hình 4.7: Màn hình thêm cơng việc ............................................................................... 72
Hình 4.8: Danh sách màn hình ghi chú .......................................................................... 74
Hình 4.9: Danh sách màn hình album ảnh ...................................................................... 76
Hình 4.10: Danh sách màn hình lưu trữ tài khoản .......................................................... 77
Hình 4.11: Danh sách màn hình hồ sơ sức khoẻ ............................................................. 79
Hình 4.12: Màn hình chatbot ......................................................................................... 81

1



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

#
1

Từ viết tắt
UI

Từ đầy đủ
User Interface

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

2

API

Application Programing
Inteface

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

3

CSDL

Cơ sở dữ liệu


4

SDK

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

5

I/O

Input / Output

Thiết bị đầu cuối

6

HTTP

Hyper Text Transfer
Protocol

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

7

URL


Uniform Resource Locator

Hệ thống định vị tài nguyên
thống nhất (hay địa chỉ web)

8

JSON

Javascript Object Notation

Kiểu dữ liệu mở trong Javascript
dùn để trao đổi dữ liệu trên web

9

AI

Artificial Intelligence

Trí tuệ nhân tạo

10

IVR

Interactive Voice Response

Hệ thống tổng đài trả lời tự động


11

IDE

Integrated Development
Environment

Mơi trường tích hợp dùng để
viết code để phát triển ứng dụng

12

UC

Usecase

13

CRUD

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ể lầ n đầ u thực hiện Đồ án 1 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 14 tháng 06 năm 2022

3


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


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

Độc Lập – Tự Do – Hạnh Phúc

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày 17 tháng 6 năm 2022

ĐỀ 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 28/02/2022 đế n ngày 11/06/2022
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 cải thiện 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 xem thông tin, đăng nhập, đăng ký, đăng xuất.

-

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.

-

Tính toán và cung cấp thời gian hợp lý về việc ngủ nghỉ.

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

6


-

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,...
- 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ẻ
- Liên kết với các ví điện tử trong quản lý chi tiêu
- 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 28/02/2022 đến ngày 11/06/2022
Thời gian

Công việc dự kiến

Phân cơng

28/02/2022 -



Tìm hiểu cơng nghệ

13/03/2022



Tìm hiểu u cầu nghiệp vụ

14/03/2022 -




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

27/03/2022



Thiết kế database



sketches



Xây dựng giao diện,

Chánh, Quang



Các tính năng đăng nhập, đăng ký

Chánh



Quên mật khẩu, thông tin cá nhân.

Quang




Xây dựng giao diện

Chánh, Quang

28/03/2022 10/4/2022

7

Chánh, Quang

Chánh, Quang


11/4/2022 -



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

Chánh

nhắc việc

1/5/2022


Tính năng ghi chú và lưu trữ tài sản cá


Quang

nhân (image, video, account, …)


Xây dựng giao diện,

Chánh, Quang



Các tính năng lưu trữ thông tin sức khoẻ

Chánh



Chatbot

Quang

29/5/2022 -



Kiểm thử ứng dụng

Chánh, Quang

11/6/2022




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



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

2/5/2022 28/5/2022

.

8


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 cải thiện 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 xem thông tin, đăng nhập, đăng ký, đăng xuất.

-

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:

10


-

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

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à 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ị).

16


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
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:
17


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ợ quá 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
- 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

18



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

19


3.1.2. Mô tả Use Case
Lưu ý: Những Use Case chứa cụm CRUD thì cho phép actor có thể thêm, xố,
sửa, xem chi tiết đối tượng, ngồi ra actor có thể tìm kiếm đối tượng trong danh sách
các đối tượng hiện có trong hệ thống
#

Code

Use Case Name

Definition

Xác thực người dùng
1

UC01

Đăng nhập

2


UC02

Đăng ký

3

UC03

Quên mật khẩu

4

UC04

Send OTP

5

UC05

Đăng xuất

6

UC06

Tất cả người dùng đều phải đăng nhập trước khi
muốn thao tác dữ liệu trên ứng dụng.
Cho phép người dùng tạo tài khoản để tham gia vào

hệ thống
Cho phép người dùng lấy lại mật khẩu khi quên
Chức năng sẽ gửi OTP thông qua tin nhắn khi người
dùng đăng ký hoặc quên mật khẩu bằng số điện thoại.
Cho phép người dùng đăng xuất khỏi tài khoản hiện
tại

Cập nhật thông tin cá

Cho phép người dùng xem và cập nhật thông tin cá

nhân

nhân

Lập kế hoạch và nhắc việc
7

UC07

Tạo công việc (CRUD)

8

UC08

Tạo thông báo nhắc việc

Cho phép người dùng thêm mới một công việc dự
định sẽ làm theo ngày được chọn

Ứng dụng sẽ đẩy một thông báo nhắc nhở công việc
lên màn hình theo thời gian của cơng việc được tạo.

Quản lý thông tin lưu trữ
Cho phép người dùng ghi chú lại những thông tin cần
9

UC09

Tạo chi chú (CRUD)

thiết giúp giữ lại và ghi nhớ những thông tin quan
trọng xảy ra trong hoạt động hằng ngày.

20


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×