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

Đồ án xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng

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.57 MB, 69 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ 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
ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ

CHĂM SÓC CÂY TRỒNG
Giảng viên hướng dẫn:
ThS. Trần Anh Dũng
Danh sách sinh viên:
Lý Hồng Phong

MSSV: 20520364

Huỳnh Thiện Tâm MSSV: 20521867

TP. Hồ Chí Minh, tháng 6 năm 2023


LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến thầy Trần
Anh Dũng đã hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành Đồ án 1. Trong
vịng 16 tuần, qua các buổi tương tác, báo cáo tiến độ, nhờ sự chỉ dẫn nhiệt tình của thầy,
chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích cùng những góp ý chân
thành để có thể làm được một đồ án hoàn chỉnh. Trong khoảng thời gian thực hiện đồ án,
chúng em đã học hỏi thêm được nhiều kiến thức, kinh nghiệm, tiếp cận công nghệ mới
và áp dụng vào thực tiễn đồ án. Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực
song báo cáo của nhóm chúng em chắc chắn khơng tránh khỏi những thiếu sót, chúng
em rất mong nhận được sự thơng cảm và góp ý chân thành từ thầy. Nhóm em xin chân
thành cảm ơn.


Thành phố Hồ Chí Minh, tháng 07 năm 2023
Lý Hồng Phong
Huỳnh Thiện Tâm


MỤC LỤC
CHƯƠNG 1. ĐỀ CƯƠNG CHI TIẾT ...................................................................... 2
CHƯƠNG 2. MỞ ĐẦU .............................................................................................. 6
2.1.

Lý do chọn đề tài: .......................................................................................... 6

2.2.

Mục đích nghiên cứu: .................................................................................... 6

2.2.1.

Khách quan: ............................................................................................ 6

2.2.2.

Chủ quan ................................................................................................. 7

2.3.

Mục tiêu đề tài: .............................................................................................. 7

2.3.1.


Mục tiêu tổng quát:................................................................................. 7

2.3.2.

Mục tiêu cụ thể: ...................................................................................... 8

2.4.

Đối tượng nghiên cứu: ................................................................................... 8

2.4.1.

Các công nghệ nghiên cứu: ..................................................................... 8

2.4.2.

Đối tượng sử dụng đề tài hướng đến:..................................................... 8

2.5.

Phạm vi nghiên cứu: ...................................................................................... 9

2.5.1.

Phạm vi môi trường: ............................................................................... 9

2.5.2.

Phạm vi chức năng: ................................................................................ 9


CHƯƠNG 3. KIẾN THỨC NỀN TẢNG .................................................................. 9
3.1.

Dart: ............................................................................................................... 9

3.2.

Flutter: ......................................................................................................... 10

3.3.

FireBase: ...................................................................................................... 11

3.4.

Figma: .......................................................................................................... 12

CHƯƠNG 4. THIẾT KẾ HỆ THỐNG ................................................................... 14


4.1.

Kiến trúc hệ thống: Kiến trúc Bloc: ........................................................... 14

4.2.

Chi tiết các thành phần trong hệ thống: ..................................................... 14

4.3.


Thiết kế sơ đồ lớp: ....................................................................................... 15

CHƯƠNG 5. ĐẶC TẢ USE-CASE VÀ CÁC SƠ ĐỒ LIÊN QUAN...................... 17
5.1.

Sơ đồ Use-case: ............................................................................................ 17

5.2.

Danh sách các tác nhân: .............................................................................. 17

5.3.

Đặc tả Use-case: ........................................................................................... 18

5.3.1.

Đăng nhập: ............................................................................................ 18

5.3.2.

Đăng kí: ................................................................................................. 19

5.3.3.

Quên mật khẩu: .................................................................................... 20

5.3.4.

Thêm cây trồng: .................................................................................... 21


5.3.5.

Thêm cơng việc: .................................................................................... 22

5.4.

Sơ đồ trình tự: ............................................................................................. 24

5.4.1.

Đăng nhập: ............................................................................................ 24

5.4.2.

Thêm cây trồng: .................................................................................... 25

5.4.3.

Sửa cây trồng: ....................................................................................... 26

5.4.4.

Thêm công việc: .................................................................................... 27

5.5.

Sơ đồ hoạt động: .......................................................................................... 27

5.5.1.


Đăng nhập: ............................................................................................ 28

5.5.2.

Quản lý cây trồng: ................................................................................ 29

5.5.3.

Quản lý công việc: ................................................................................. 30

5.5.4.

Quản lý cài đặt: ..................................................................................... 31


5.6.

Sơ đồ trạng thái: .......................................................................................... 31

5.6.1.

Đăng nhập: ............................................................................................ 32

5.6.2.

Thêm cây trồng: .................................................................................... 32

5.6.3.


Sửa cây trồng: ....................................................................................... 33

5.6.4.

Thêm công việc: .................................................................................... 33

CHƯƠNG 6. THIẾT KẾ CƠ SỞ DỮ LIỆU ........................................................... 34
6.1.

Thiết kế cơ sở dữ liệu thực tế trên Firebase ............................................... 34

6.2.

Danh sách các quan hệ: ............................................................................... 36

CHƯƠNG 7. THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG......................................... 37
7.1.

Danh sách các màn hình: ............................................................................ 37

7.2.

Sơ đồ liên kết các màn hình: ....................................................................... 37

7.3.

Mơ tả chi tiết các màn hình: ....................................................................... 38

7.3.1.


Navigation Bar: ..................................................................................... 38

7.3.2.

Màn hình Trang chủ:............................................................................ 38

7.3.3.

Màn hình chi tiết cây trồng: ................................................................. 40

7.3.4.

Màn hình Thêm cơng việc: ................................................................... 42

7.3.5.

Màn hình Thêm cây trồng: ................................................................... 46

7.3.6.

Màn hình Lịch: ..................................................................................... 48

7.3.7.

Màn hình Thơng tin cá nhân: ............................................................... 50

7.3.8.

Màn hình Tài khoản: ............................................................................ 52


7.3.9.

Màn hình Đăng ký: ............................................................................... 54

7.3.10.

Màn hình Đăng nhập: ....................................................................... 56


CHƯƠNG 8. CÀI ĐẶT VÀ KIỂM THỬ ................................................................ 59
8.1.

Môi trường cài đặt và kiểm thử: ................................................................. 59

8.2.

Kết quả kiểm thử:........................................................................................ 59

CHƯƠNG 9. KẾT LUẬN ........................................................................................ 61
9.1.

Kết quả đạt được: ........................................................................................ 61

9.2.

Hạn chế: ....................................................................................................... 61

9.2.1.

Về việc tổ chức quản lí nhóm: .............................................................. 61


9.2.2.

Về sản phẩm phần mềm: ...................................................................... 61

9.3.

Hướng phát triển: ........................................................................................ 62

TÀI LIỆU THAM KHẢO ........................................................................................ 63


TÓM TẮT ĐỒ ÁN
Trong bối cảnh ngày càng tăng những nhu cầu về chăm sóc cây trồng và sự gia tăng
của ngành nông nghiệp, việc xây dựng một ứng dụng hỗ trợ chăm sóc cây trồng trên nền
tảng di động là một sự lựa chọn hợp lý. Theo thống kê, ngày càng có nhiều người quan
tâm và tham gia vào việc trồng cây tại nhà hoặc trang trại cá nhân. Điều này đã tạo nên
nhu cầu cao về ứng dụng điện thoại thông minh giúp người dùng theo dõi và chăm sóc
cây trồng một cách hiệu quả.
Ứng dụng mà chúng tôi đề xuất sẽ cung cấp thông tin chi tiết về các loại cây trồng
phổ biến, từ cách chăm sóc, sự phát triển của cây đến cách xử lý các vấn đề thường gặp
như sâu bệnh, thiếu nước, thiếu chất dinh dưỡng. Đồng thời, ứng dụng cũng sẽ cung cấp
gợi ý về các sản phẩm hữu ích cho việc chăm sóc cây trồng, bao gồm phân bón, thuốc
trừ sâu và các cơng cụ hữu ích khác.
Ngồi ra, ứng dụng cũng sẽ giúp người dùng quản lý các thông tin liên quan đến
chăm sóc cây trồng, bao gồm lịch trình chăm sóc, thơng báo nhắc nhở, ghi chú về các
vấn đề gặp phải và cập nhật về sự phát triển của cây.
Qua quá trình nghiên cứu, thiết kế và triển khai ứng dụng, chúng tôi tự hào được
mang đến những cải tiến và những thành quả tích cực cho việc chăm sóc cây trồng cơng
nghệ. Ứng dụng của chúng tơi khơng chỉ hỗ trợ người dùng trong việc nuôi dưỡng và

phát triển cây trồng một cách hiệu quả mà còn giúp giảm thiểu những rủi ro và sai sót
thường gặp trong q trình chăm sóc.

1


CHƯƠNG 1.

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Ứng dụng hỗ trợ chăm sóc cây trồng
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: 17/06/2023
Sinh viên thực hiện:
Huỳnh Thiện Tâm – 20521867
Lý Hồng Phong – 20520364
Nội dung đề tài:
Lý do chọn đề tài

Hiê ̣n nay thiế t bi di
̣ dô ̣ng – smart phone ngày càng phổ biế n. Viê ̣c đưa mô ̣t
ứng du ̣ng lên các kho lưu trữ tương đố i dễ dàng. Hơn nữa, người sử du ̣ng cũng
sẵn sàng chi trả mô ̣t khoảng tiề n phù hơ ̣p cho những ứng du ̣ng mà ho ̣ cảm thấ y
cầ n thiế t hơn so với trước đây.
Ở những quốc gia đang phát triển, nông nghiệp gần như chỉ phụ thuộc
vào kinh nghiệm của những người nông dân về đặc tính của cây trồng, về thời
tiết… thế nên năng suất và hiệu suất canh tác có xu hướng mang tính “may,
rủi”. Nhưng đa số những người trồng cây lại thiếu kiến thức và phương pháp
chăm sóc cây phù hợp và hiệu quả như quy trình và kế hoạch cần thiết cho
từng loại cây ví dụ như làm cỏ, tạo bồn, cắt tỉa cành, bón phân, tưới nước cho

cây theo định kỳ...
Cùng với việc khắc phục những khuyết điểm trên, một ứng dụng hướng
dẫn chăm sóc cây trồng bằng những cơng nghệ và quy trình cụ thể, sẽ đánh tan
những lo ngại về chất lượng cũng như an toàn thực phẩm, và góp phần thúc
đẩy nâng cao chất lượng sản phẩm nông nghiệp hay cây trồng.
Xuấ t phát từ những nhâ ̣n đinh
̣ đó, chúng em đã cho ̣n đề tài “Phầ n mề m
hỗ trợ chăm sóc cây trồng trên di đô ̣ng” nhằ m hỗ trơ ̣ người dùng giải quyế t các
vấ n đề trên.

2


Mục tiêu đề tài
 Xây dựng hệ thống quản lý các cơng việc trong q trình trồng cây:
 Lên danh sách và cập nhật các công việc cần làm cho từng cây trồng.
 Chức năng nhắc nhở người dùng thực hiện các cơng việc. Từ đó người dùng có
thể quản lý công việc một cách đầy đủ và hiệu quả.
 Xây dựng hệ thống cung cấp thông tin về các loại cây trồng, bệnh hại:
 Cung cấp cho người dùng thông tin về các loại cây trồng, bệnh hại thông qua
cơ sở dữ liệu sẵn có
 Xây dựng trị chơi trắc nghiệm về kiến thức cây trồng.
Phạm vi đề tài
 Đề tài tập trung xây dựng ứng dụng hỗ trợ người dùng chăm sóc cây trồng dành
cho các user.
 Phạm vi môi trường:
 Triển khai sản phẩm đề tài trên môi trường ứng dụng di động(android, ios).
 Phạm vi chức năng:
 Chức năng quản lý q trình chăm sóc cây trồng.
 Chức năng trò chơi trắc nghiệm về kiến thức cây trồng

Đối tượng sử dụng
 Những cá nhân khơng có nhiều kinh nghiệm cũng như kiến thức về quản lý và
chăm sóc cây trồng.
 Những cá nhân cần sự hỗ trợ từ một công cụ giúp dễ dàng quản lý và thực hiện
công việc theo đúng kế hoạch.
Phương pháp thực hiện
 Phân tích các giải pháp của các ứng dụng tương tự trên thị trường.
 Thực hiện khảo sát nhu cầu, tình trạng thực tế của người dùng.
Cơng nghệ sử dụng
 Cơ sở dữ liê ̣u đám mây: Firebase
 Framework: Flutter
 Ngôn ngữ sử du ̣ng: Dart
 Công cu ̣ xây dựng ứng du ̣ng: Android Studio, Visual Studio Code
Kết quả mong đợi
 Nắm bắt và áp dụng được công nghệ mới để xây dựng hoàn thiện sản phẩm của
đề tài.
 Học hỏi cách phát triể n mô ̣t ứng du ̣ng trên di đơ ̣ng qua q trình làm đề tài.
 Trau dồi kinh nghiệm làm việc nhóm.
Triển khai được một sản phẩm hồn thiện, có ích cho người dùng.
Hướng phát triển của đề tài
 Thêm các chức năng hỗ trợ người dùng như chatbox hỗ trợ tư vấn, chức năng
hỏi đáp cộng đồng hay thêm các trò chơi.

3


 Nâng cấp giao diện, thêm bộ chuyển đổi ngôn ngữ sang tiếng Anh.
 Nâng cấp source code, tăng tốc độ xử lý của ứng dụng nhanh chóng, ổn định.
 Cho ra mắt phiên bản web.
Kế hoạch thực hiện:

Thời gian thực hiện từ ngày 27/02/2023 đến 17/6/2023
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Gồm 4 sprint với thời gian từ 27/02/2023 đến 30/04/2023
Sprint 1: Tìm hiểu và định hình yêu cầu cho ứng dụng
Sprint 2: Đặc tả ứng dụng
Sprint 3: Thiết kế ứng dụng
Sprint 4: Xây dựng các chức năng cơ bản cho ứng dụng
Tuần

Sprint 1:
27/2 - 27/3

Công việc thành viên 1

Công việc thành viên 2

(Huỳnh Thiện Tâm)

(Lý Hồng Phong)

Tìm hiểu về flutter và ngơn setup project và firebase
ngữ dart

- Tìm hiểu đề tài: Xác định
phạm vi, hướng phát triển
của đề tài.
Tìm hiểu các nguyên tắc
thiết kế UI/UX, học cách
sử dụng công cụ thiết kế.


Sprint 2:

Xác định yêu cầu: Khảo sát yêu cầu người dùng, lập ra

27/3 - 4/4

bảng các yêu cầu và quy định cụ thể cho phần mềm.
- Phân tích: Phân loại các yêu cầu và lập sơ đồ Use-case

Sprint 3:
4//4 - 11/4

- Thiết kế: Mô tả các thành phần của phần mềm một
cách rõ ràng, gồm các bước:
- Thiết kế hệ thống, kiến trúc, các đối tượng.
Thiết kế cơ sở dữ liệu.
Thiết kế giao diện.

4


Sprint 4:
11/4 - 25/4

Xây dựng các chức năng cơ bản của ứng dụng:
 chức năng đăng nhập, đăng ký
 Thêm xóa Sửa loại loại cây trồng cần quản lý
 chức năng quản lý công công việc
 trang cài đặtđặt


Giai đoạn 2: Gồm 5 sprint với thời gian từ 01/05/2023 đến kết thúc đồ án 1.
Sprint 5: Hồn thiện tính năng sản phẩm quản lý cây trồng
Sprint 6: Hồn thiện tính năng, kiểm thử và triển khai ứng dụng
Sprint 7: đóng gói và cài đặt sản phẩmphẩm
Sprint 8: Tổng kiểm thử và viết báo cáo

Sprint 5
25/4 - 15/5
Sprint 6
15/55 - 30/5
Sprint 7
30/5 - 10-6
Sprint 8

Tiếp tục hồn thiện các tính năng của ứng dụng
Quản lý cây trồngtrồng
Kiểm thử: Chạy thực nghiệm và đánh giá, tìm và sửa
lỗi.
Cài đặt: Dựa theo những thiết kế và phân tích, tiến
hành xây dựng ứng du ̣ng thực tế.
Viết báo cáo

10/6 - 17-6
kết thúc

Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)

TP. HCM, ngày 23 tháng 02 năm 2023
Sinh viên 1

Sinh viên 2
(Ký tên và ghi rõ họ tên)

5

(Ký tên và ghi rõ họ tên)


Huỳnh Thiện Tâm

Lý Hồng Phong

NỘI DUNG KHOÁ LUẬN

CHƯƠNG 2.
2.1.

MỞ ĐẦU

Lý do chọn đề tài:

Hiê ̣n nay thiế t bi ̣di dô ̣ng – smart phone ngày càng phổ biế n. Viê ̣c đưa mô ̣t
ứng du ̣ng lên các kho lưu trữ tương đố i dễ dàng. Hơn nữa, người sử du ̣ng cũng
sẵn sàng chi trả mô ̣t khoảng tiề n phù hơ ̣p cho những ứng du ̣ng mà ho ̣ cảm thấ y
cầ n thiế t hơn so với trước đây.
Ở những quốc gia đang phát triển, nông nghiệp gần như chỉ phụ thuộc vào
kinh nghiệm của những người nơng dân về đặc tính của cây trồng, về thời tiết…
thế nên năng suất và hiệu suất canh tác có xu hướng mang tính “may, rủi”.
Nhưng đa số những người trồng cây lại thiếu kiến thức và phương pháp chăm
sóc cây phù hợp và hiệu quả như quy trình và kế hoạch cần thiết cho từng loại

cây ví dụ như làm cỏ, tạo bồn, cắt tỉa cành, bón phân, tưới nước cho cây theo
định kỳ...
Cùng với việc khắc phục những khuyết điểm trên, một ứng dụng hướng
dẫn chăm sóc cây trồng bằng những cơng nghệ và quy trình cụ thể, sẽ đánh tan
những lo ngại về chất lượng cũng như an tồn thực phẩm, và góp phần thúc đẩy
nâng cao chất lượng sản phẩm nông nghiệp hay cây trồng.
Xuấ t phát từ những nhâ ̣n đinh
̣ đó, chúng em đã cho ̣n đề tài “Phầ n mề m hỗ
trợ chăm sóc cây trồng trên di đơ ̣ng” nhằ m hỗ trơ ̣ người dùng giải quyế t các vấ n
đề trên.
2.2.

Mục đích nghiên cứu:

2.2.1. Khách quan:

6


Tạo một cộng đồng chăm sóc cây trồng: Ứng dụng sẽ kết nối người dùng với
nhau, cho phép họ trao đổi kinh nghiệm và chia sẻ thông tin về chăm sóc cây trồng.
Mục tiêu là tạo ra một cộng đồng hỗ trợ và khuyến khích sự chia sẻ kiến thức về chăm
sóc cây trồng.
Quản lý thơng tin và lịch trình chăm sóc cây trồng: Ứng dụng sẽ cho phép người
dùng tạo lịch trình chăm sóc cây trồng, ghi chú về các vấn đề và sự phát triển của cây,
và nhận các thông báo nhắc nhở quan trọng. Mục tiêu là giúp người dùng quản lý hiệu
quả cơng việc chăm sóc cây trồng và đảm bảo rằng cây trồng được chăm sóc đúng cách
và đúng thời gian....
2.2.2. Chủ quan
Mang đến một cơng cụ hữu ích cho người dùng trong việc chăm sóc cây trồng.

Chúng tơi muốn cung cấp cho người dùng một ứng dụng dễ sử dụng và tiện ích, giúp
họ theo dõi, quản lý và cung cấp các thông tin cần thiết để chăm sóc cây trồng một
cách hiệu quả.
Nghiên cứu này cũng giúp chúng tôi mở rộng kiến thức và hiểu biết về các công
nghệ liên quan đến ứng dụng di động và chăm sóc cây. Chúng tơi đã hứng thú và tìm
hiểu sâu về các cơng nghệ mới nhất và cách áp dụng chúng vào việc tạo ra một ứng
dụng hữu ích và tiện lợi cho người dùng.
Đồ án này cũng là cơ hội để chúng tôi áp dụng những kiến thức đã học vào thực
tế. Chúng tôi muốn xây dựng một sản phẩm thực tế và hữu ích từ những kiến thức và
kỹ năng đã tích lũy trong quá trình học tập suốt thời gian qua.
2.3.

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

2.3.1. Mục tiêu tổng quát:
Mục tiêu tổng quát của đề tài xây dựng ứng dụng hỗ trợ chăm sóc cây trồng
là tạo ra một cơng cụ hữu ích và tiện lợi để giúp người dùng chăm sóc các loại

7


cây trồng một cách hiệu quả và thành công. Đồ án nhằm đáp ứng nhu cầu ngày
càng tăng của người yêu thích và quan tâm đến việc trồng
2.3.2. Mục tiêu cụ thể:
-

Đối với công nghệ:
▫ Nghiên cứu và sử dụng cơ sở dữ liệu FireBase.
▫ Nghiên cứu sử dụng figma.com
▫ Nghiên cứu và xây dựng hệ thống bằng các công nghệ mới như Androi

Studio, Visual Studio Code.


Nghiên cứu và xây dựng hệ thống bằng ngôn ngữ mới: Flutter và ngôn
ngữ Dart.

-

Đối với hệ thống:
▫ Xây dựng ứng dụng đáp ứng các yêu cầu nghiệp vụ cơ bản.

2.4.

Đối tượng nghiên cứu:

2.4.1. Các công nghệ nghiên cứu:
-

Đối với thiết kế hệ thống:
▫ Kết nối và trao đổi giữa client, server đến database thông qua kiến trúc
bloc

-

Đối với Database: FireBase

-

Đối với Ứng dụng:
▫ Flutter

▫ Dart
▫ Figma

-

Khác
2.4.2. Đối tượng sử dụng đề tài hướng đến:

Với sự bùng nổ của Smartphone, nhóm đối tượng chủ yếu của ứng dụng là
các tổ chức/cá nhân có và biết sử dụng smart phone ở mọi độ tuổi, cụ thể:

8


- Những cá nhân khơng có nhiều kinh nghiệm cũng như kiến thức về cây
trồng muốn tìm hiểu và trang bị thêm cho mình kiến thức.
- Những cá nhân/tổ chức quan tâm về quy trình chăm sóc cây trồng,
- Những cá nhân/tổ chức chưa hài lịng về các cơng cụ hỗ trợ quản lý công
việc đang sử dụng.
2.5.

Phạm vi nghiên cứu:

2.5.1. Phạm vi môi trường:

-

Hê ̣ điề u hành phát triể n: Microsoft Windows
Hê ̣ điề u hành cài đă ̣t: Android
2.5.2. Phạm vi chức năng:


-

Đối với Ứng dụng
▫ Hệ thống cung cấp giao diện mua dành cho khách hàng tiện lợi, dễ sử dụng.
▫ Hệ thống cung cấp giao diện đăng ký, đăng nhập giúp xác thực người dùng.
▫ Hệ thống cung cấp tính năng quản lý cơng việc và quy trình cụ thể.

CHƯƠNG 3.
3.1.

KIẾN THỨC NỀN TẢNG

Dart:

Dart là một ngơn ngữ lập trình được phát triển bởi Google. Nó được sử dụng
để phát triển ứng dụng di động (như ứng dụng di động và web) cũng như ứng dụng
desktop và server. Dart được thiết kế để đơn giản, hiệu quả và có khả năng chạy
trên nhiều nền tảng khác nhau. Nó cũng được sử dụng làm ngơn ngữ chính cho việc
phát triển ứng dụng di động trên Flutter, một framework phát triển giao diện người
dùng đa nền tảng của Google.
Tại sao nên sử dụng Dart?
Hiệu suất cao và nhanh: Dart cung cấp hiệu suất rất cao và thời gian thực thi
nhanh. Với việc sử dụng công cụ Just-In-Time (JIT) để biên dịch và máy ảo (VM), Dart

9


cho phép bạn kiểm tra kết quả ngay lập tức trong quá trình phát triển. Điều này giúp tiết
kiệm thời gian và nâng cao hiệu suất phát triển.

Đa nền tảng: Dart hỗ trợ phát triển đa nền tảng, bạn có thể sử dụng Dart để phát
triển ứng dụng trên nhiều nền tảng khác nhau, bao gồm di động (iOS và Android), web,
desktop và server.
Hỗ trợ Flutter: Dart là ngôn ngữ chính cho việc phát triển ứng dụng di động trên
Flutter. Flutter là một framework phát triển giao diện người dùng đa nền tảng của
Google, cho phép bạn xây dựng ứng dụng di động đồng nhất trên nhiều nền tảng một
cách dễ dàng và hiệu quả.
Cú pháp thân thiện và dễ học: Dart sử dụng cú pháp gần giống với nhiều ngơn
ngữ lập trình phổ biến khác như Java hoặc JavaScript. Điều này làm cho nó dễ học và
nắm bắt, đặc biệt đối với những người đã có kinh nghiệm lập trình trước đó.
Ecosystem phát triển: Dart có một cộng đồng lớn và năng động, với nhiều thư
viện và công cụ hỗ trợ phát triển. Bạn có thể tìm thấy hàng ngàn gói được xây dựng sẵn
trên Dart Pub để giúp bạn nhanh chóng triển khai và mở rộng ứng dụng của mình.
3.2.

Flutter:

Flutter là một framework phát triển ứng dụng di động mã nguồn mở được phát
triển bởi Google. Nó cho phép bạn xây dựng các ứng dụng di động đẹp và tương tác trên
nhiều nền tảng như Android và iOS từ một mã nguồn duy nhất. Flutter sử dụng ngôn
ngữ lập trình Dart để xây dựng ứng dụng và cung cấp một tập hợp các tiện ích và widgets
để giúp tạo giao diện người dùng linh hoạt và phong phú. Nó cũng đi kèm với một bộ
cơng cụ phát triển mạnh mẽ, giúp bạn debug, kiểm thử và triển khai ứng dụng một cách
dễ dàng. Flutter đã trở thành một trong những lựa chọn phổ biến cho việc phát triển ứng
dụng di động hiện nay.
Ưu và nhược điểm của Flutter


Ưu điểm:


10


o Giao diện người dùng đẹp và tương tác: Flutter cung cấp một tập hợp
các widgets tùy chỉnh và mạnh mẽ giúp bạn tạo ra giao diện người
dùng đẹp mắt và tương tác trên nhiều nền tảng.
o Mã nguồn duy nhất cho nhiều nền tảng: Bằng cách sử dụng Flutter,
bạn chỉ cần viết một lần và triển khai trên nhiều nền tảng như
Android, iOS và cả web.
o Hiệu suất cao: Flutter sử dụng thư viện đồ họa riêng của nó giúp tăng
hiệu suất và tốc độ trong quá trình vẽ giao diện người dùng.
o Phát triển nhanh chóng: Flutter đi kèm với một bộ cơng cụ phát triển
có sẵn, giúp bạn kiểm tra, debug và triển khai ứng dụng một cách
nhanh chóng.
o Cộng đồng hỗ trợ: Flutter có một cộng đồng rất lớn và nhiều tài liệu
học tập, giúp bạn dễ dàng tìm kiếm hỗ trợ và tài nguyên phát triển.


Nhược điểm
o Kích thước ứng dụng: Do Flutter cần bao gồm một số thư viện và
Framework trong ứng dụng, kích thước tệp có thể lớn hơn so với việc
phát triển ứng dụng truyền thống.
o Hạn chế với một số tính năng: Flutter vẫn cịn hạn chế một số tính
năng so với các công nghệ phát triển truyền thống, đặc biệt là trong
việc truyền tải và xử lý dữ liệu lớn.
o Chưa phổ biến trong số các lập trình viên: Mặc dù Flutter đang trở
nên ngày càng phổ biến, nhưng nó vẫn chưa thu hút số lượng lập trình
viên như những cơng nghệ khác như native iOS hoặc Android. Do
đó, việc tìm kiếm tài ngun và hỗ trợ có thể hơi khó khăn so với
những cơng nghệ phổ biến hơn.


3.3.

FireBase:

11


Firebase là một nền tảng phát triển ứng dụng di động và web do Google cung cấp.
Nó cung cấp một loạt các dịch vụ và công cụ giúp phát triển, triển khai và quản lý ứng
dụng di động và web một cách dễ dàng và hiệu quả.
Các dịch vụ Firebase bao gồm:
Firebase Authentication: Xác thực người dùng và quản lý danh tính người dùng
thơng qua các phương thức xác thực như email/mật khẩu, Google, Facebook và nhiều
hơn nữa.
Cloud Firestore: Cơ sở dữ liệu doanh nghiệp linh hoạt và dễ sử dụng để lưu trữ
và đồng bộ dữ liệu thời gian thực trên các thiết bị khác nhau.
Firebase Cloud Messaging: Dịch vụ thông báo và tin nhắn đám mây để gửi thông
báo và tin nhắn đến ứng dụng di động và web.
Firebase Storage: Dịch vụ lưu trữ đám mây để lưu trữ và quản lý dữ liệu đa
phương tiện như hình ảnh, video và tệp tin khác.
Firebase Hosting: Dịch vụ hosting nhanh chóng và dễ dàng để triển khai ứng
dụng web và tài nguyên tiếp cận từ Internet.
Firebase Analytics: Dịch vụ phân tích và theo dõi hiệu suất ứng dụng, sự tương
tác và hành vi người dùng.
Ngồi ra, Firebase cịn cung cấp nhiều dịch vụ và công cụ khác như Firebase
Crashlytics, Firebase Performance Monitoring, Firebase Test Lab và nhiều hơn nữa.
Firebase giúp các nhà phát triển xây dựng ứng dụng nhanh chóng và hiệu quả mà khơng
cần q nhiều kiến thức về cơ sở hạ tầng phức tạp.
3.4.


Figma:

Figma là một công cụ thiết kế giao diện người dùng được sử dụng để tạo ra các
thiết kế giao diện, prototype và hợp tác trong q trình phát triển sản phẩm. Figma có
khả năng hoạt động trên các nền tảng khác nhau, bao gồm cả máy tính để bàn và thiết bị
di động.

12


Với Figma, bạn có thể tạo ra các bản vẽ của các giao diện người dùng, chỉnh sửa
các thành phần giao diện người dùng, và tạo các prototype tương tác để thử nghiệm trải
nghiệm người dùng. Nó cho phép người dùng làm việc đồng thời và hợp tác trong thời
gian thực, cho phép các nhóm thiết kế và phát triển làm việc cùng nhau từ xa.
Figma cũng cung cấp tính năng phân loại và tổ chức các thành phần giao diện
người dùng, cho phép tái sử dụng chúng trong các bản vẽ khác nhau và duy trì tính nhất
qn trong q trình phát triển sản phẩm.
Với tích hợp vào các công cụ phát triển khác và khả năng xuất ra dạng tệp tin hợp
chuẩn, Figma trở thành một công cụ phổ biến trong cộng đồng thiết kế và phát triển sản
phẩm số.

13


CHƯƠNG 4.
4.1.

THIẾT KẾ HỆ THỐNG


Kiến trúc hệ thống: Kiến trúc Bloc:

Bloc giúp dễ dàng tách biệt phần UI và Business logic, giúp code nhanh, dễ test
và dễ sử dụng. Mục đích của Pattern này là tách code business logic ra khỏi UI thay vì
code gộp chung cả logic và UI vơ cùng 1 file, để sau này spec mới có yêu cầu sửa code
business logic hay sửa UI sẽ dễ dàng sửa hơn. Code business logic được tách ra đó người
ta đặt tên là Bloc (Business Logic Component). Bên cạnh đó, nó cịn giúp chúng ta quản
lý state của 1 màn hình tốt hơn vì các state sẽ được quản ở Bloc tách biệt với UI. Chính
vì vậy, mỗi màn hình trong app flutter chúng ta nên tạo ra 1 bloc để xử lý logic của màn
hình đó và quản lý state của cả màn hình đó.
Bloc được coi như bộ não với nhiệm vụ chuyển đổi ( convert ) các đầu vào là các
stream Event thành các stream State ở đầu ra.
Về kiến trúc Bloc trong Flutter, có hai dạng mà bạn thường gặp đó là :
-

Xây dựng Bloc với RxDart

-

Xây dựng BLoC với Event – State
Nhưng dù dùng kiểu nào đi nữa, thì cấu trúc cũng theo một mơ hình như bên dưới:

Hình 5.1: Mơ hình Bloc
4.2.

STT

Chi tiết các thành phần trong hệ thống:

Thành phần


Diễn giải

14


1
2
3
4

4.3.

UI (User Interface
)

Là những phần của Ứng dụng để hiển thị với người
dùng.
Luôn lắng nghe các sự kiện pass qua nó, ví dụ ln
BloC
lắng nghe data pass qua stream.
Dùng để fetching data từ Data sources. Đầu ra của lớp
Repository
này sẽ là đầu vào của khối Bloc, khi đó data sẽ được
đặt trong các Stream
Là khối cung cấp data cho ứng dụng như network,
Data Sources
sqflite, shared_preferences
Bảng 5.1: Bảng chi tiết các thành phần trong hệ thống
Thiết kế sơ đồ lớp:


Danh sách chi tiế t các table trong dữ liê ̣u
STT
Tên quan hê ̣
Ý nghiã
1
PLANT
Thông tin cây trồng
2
NGUOIDUNG
Thông tin người dùng
3
TODOWORK
Thông tin công việc trong cây trồng
NGUOIDUNG
STT
Tên thuô ̣c tính
1
MANGUOIDUNG

Kiể u
String

Ràng buô ̣c
PK

15

Ý nghiã
Mã người dùng



2
3
4
5

Ten
Avatar
Email
Password

PLANT
STT
Tên thuô ̣c tính
1
MACATTRONG
2
MANGUOIDUNG
3
TenCayTrong
4
SoNgayTuoi
5
Imag
TODOWORK
STT
Tên thuô ̣c tính
1
MATODOWORK

2
MACAYTRONG
3
MANGUOIDUNG
4
JobName
5
NumberOfDayRepeat
6

ThoiGian

7

repetitionType

String
String
String
String

Tên người dùng
Ảnh đa ̣i diê ̣n
Email
Mâ ̣t khẩ u

Kiể u
String
String
String

Int
String

Ràng buô ̣c
PK
FK

Kiể u
String
String
String
String
Int

Ràng buô ̣c
PK
FK
FK

DateTime

String

16

Ý nghiã
Mã cây trồng
Mã người dùng
Tên cây trồng
Số này tuổi của cây trồng

Hình ảnh

Ý nghiã
Mã công việc
Mã cây trồng
Mã người dùng
Tên công việc
Số lần lặp lại công việc
Thời gian công việc được
tạo
Tần số lặp vô hạn(nếu
NumberOfDa không được
gán giá trị) theo ngày, tuần,
tháng, năm


CHƯƠNG 5.
5.1.

ĐẶC TẢ USE-CASE VÀ CÁC SƠ ĐỒ LIÊN QUAN

Sơ đồ Use-case:

Hình 5.1: Sơ đồ Use-case
5.2.

Danh sách các tác nhân:
Tác nhân

User


Mơ tả tác nhân
Là người dùng có tài khoản cá nhân, truy cập hệ
thống để quản lý cây trồng
Bảng 6.1: Danh sách các tác nhân

17

Ghi chú


5.3.

Đặc tả Use-case:

5.3.1. Đăng nhập:
Use

Case Đăng nhập

Name
Description

Use Case cho phép người dùng đăng nhập vào hệ thống

Priority

Must have

Actor


Người dùng

Trigger

Khi người dùng vào ứng dụng lần đầu

Pre-

Người dùng phải có tài khoản đăng nhập

conditions

Người dùng phải có kết nối internet

Post-

Người dùng đăng nhập ứng dụng thành công

conditions
Basic flow

1. Người dùng nhập tên đăng nhập và mật khẩu
2. Người dùng chọn vào button “Đăng nhập”.
3. Hệ thống xác thực thành công và quay trở lại trang chủ

Alternative
flow

Exception


3a. Hệ thống hiển thị email hoặc mật khẩu không hợp lệ

flow

3a1. Người dùng chọn “Quên mật khẩu”

18


NonFunctional
Requirement
Bảng 6.2: Use-case Đăng nhập
5.3.2. Đăng kí:
Use

Case Đăng kí

Name
Description

Use Case cho phép người dùng đăng kí tài khoản mới

Priority

Must have

Actor

Người dùng


Trigger

Người dùng muốn đăng kí tài khoản với hệ thống

Pre-

Người dùng phải có kết nối internet

conditions
Post-

Người dùng nhận được tài khoản đăng nhập cá nhân

conditions
Basic flow

1. Người dùng chọn vào link “Đăng ký ngay”.
2. Nhập các thông tin cần thiết (Họ tên, email, mật khẩu...)
3. Hệ thống tiến hành xác thực email.
4. Hệ thống xác thực thành công và quay trở lại trang chủ

Alternative

4a. Người dùng huỷ xác nhận mail và quay lại màn hình đăng nhập

flow

19



×