ĐỀ 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
Lý do chọn đề tài
Hiện nay thiết bị di dộng – smart phone ngày càng phổ biến Việc đưa một ứng dụng lên các kho lưu trữ tương đối dễ dàng Hơn nữa, người sử dụng cũng sẵn sàng chi trả một khoảng tiền phù hợp cho những ứng dụng mà họ 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 định đó, chúng em đã chọ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.
Xây dựng hệ thống quản lý các công việc trong quá 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.
Đề 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.
Triển khai sản phẩm đề tài trên môi trường ứng dụng di động(android, ios).
Chức năng quản lý quá 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â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ơ sở dữ liệu đám mây: Firebase
Ngôn ngữ sử dụng: Dart
Công cụ xây dựng ứng dụng: Android Studio, Visual Studio Code
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 dụng trên di động qua quá 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 hoà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.
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.
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 Công việc thành viên 1
Công việc thành viên 2 (Lý Hồng Phong)
27/2 - 27/3 Tìm hiểu về flutter và ngôn ngữ dart setup project và firebase
- 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ế.
27/3 - 4/4 Xác định yêu cầu: Khảo sát yêu cầu người dùng, lập ra 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
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.
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
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: Hoàn thiện tính năng sản phẩm quản lý cây trồng
Sprint 6: Hoà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
25/4 - 15/5 Tiếp tục hoàn thiện các tính năng của ứng dụng
15/55 - 30/5 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 dụng thực tế.
TP HCM, ngày 23 tháng 02 năm 2023 Xác nhận của CBHD
(Ký tên và ghi rõ họ tên) Sinh viên 1
(Ký tên và ghi rõ họ tên)
(Ký tên và ghi rõ họ tên)
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 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.
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 : 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 nguyên và hỗ trợ có thể hơi khó khăn so với những công nghệ phổ biến hơn.
FireBase
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.
Ngoài ra, Firebase còn cung cấp nhiều dịch vụ và công cụ khác như FirebaseCrashlytics, 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 quá nhiều kiến thức về cơ sở hạ tầng phức tạp.
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 quá 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.
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 quán trong quá 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ố.
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:
Chi tiết các thành phần trong hệ thống
STT Thành phần Diễn giải
Là những phần của Ứng dụng để hiển thị với người dùng.
2 BloC Luôn lắng nghe các sự kiện pass qua nó, ví dụ luôn lắng nghe data pass qua stream.
Dùng để fetching data từ Data sources Đầu ra của lớp này sẽ là đầu vào của khối Bloc, khi đó data sẽ được đặt trong các Stream
4 Data Sources Là khối cung cấp data cho ứng dụng như network, 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ệ Ý nghĩa
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
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa
1 MANGUOIDUNG String PK Mã người dùng
2 Ten String Tên người dùng
3 Avatar String Ảnh đại diện
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa
1 MACATTRONG String PK Mã cây trồng
2 MANGUOIDUNG String FK Mã người dùng
3 TenCayTrong String Tên cây trồng
4 SoNgayTuoi Int Số này tuổi của cây trồng
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa
1 MATODOWORK String PK Mã công việc
2 MACAYTRONG String FK Mã cây trồng
3 MANGUOIDUNG String FK Mã người dùng
4 JobName String Tên công việc
5 NumberOfDayRepeat Int Số lần lặp lại công việc
6 ThoiGian DateTime Thời gian công việc được tạo
7 repetitionType String 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
ĐẶC TẢ USE-CASE VÀ CÁC SƠ ĐỒ LIÊN QUAN
Sơ đồ Use-case
Hình 5.2: Sơ đồ Use-case
Danh sách các tác nhân
Tác nhân Mô tả tác nhân Ghi chú
User 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ồngBảng 6.2: Danh sách các tác nhân
Đặc tả Use-case
Description Use Case cho phép người dùng đăng nhập vào hệ thống Priority Must have
Trigger Khi người dùng vào ứng dụng lần đầu
Người dùng phải có tài khoản đăng nhập Người dùng phải có kết nối internet
Người dùng đăng nhập ứng dụng thành công
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ủ
3a Hệ thống hiển thị email hoặc mật khẩu không hợp lệ 3a1 Người dùng chọn “Quên mật khẩu”
Description Use Case cho phép người dùng đăng kí tài khoản mới
Trigger Người dùng muốn đăng kí tài khoản với hệ thống
Người dùng phải có kết nối internet
Người dùng nhận được tài khoản đăng nhập cá nhân
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 flow
4a Người dùng huỷ xác nhận mail và quay lại màn hình đăng nhập
2a Tên người dùng hoặc email đã tồn tại 2a1 Hệ thống thông báo lỗi, yêu cầu người dùng nhập lại thông tin
Use case quay lại bước 2 Non-
Bảng 6.4: Use-case Đăng kí
Description Use Case cho phép người dùng đặt lại mật khẩu tài khoản của mình Priority Must have
Trigger Khi người dùng quên mật khẩu hoặc đăng nhập không thành công vào hệ thống
1 Người dùng phải có tài khoản hợp lệ đã được đăng kí
2 Người dùng có quyền truy cập đến email cá nhân sử dụng đăng ký tài khoản
3 Người dùng phải có kết nối internet
Người dùng thiết lập mật khẩu mới thành công
Basic flow 1 Người dùng nhập email cá nhân sử dụng đăng kí tài khoản
2 Hệ thống gửi email xác nhận về hòm thư cá nhân
3 Người dùng truy cập vào hòm thư cá nhân và xác thực người dùng
4 Hệ thống xác thực thành công, đặt lại mật khẩu người dùng là số điện thoại của người dùng.
5 Hệ thống ghi nhận thay đổi vào cơ sở dữ liệu
Bảng 6.5: Use-case Quên mật khẩu
Description Use Case diễn tả thao tác thêm cây trồng
Trigger Khi người dùng muốn thêm cây trồng
Người dùng phải có kết nối internet.
Thêm cây trồng thành công
Basic flow 1 Người dùng chọn vào button dấu “+” ở cuối các màn hình chính để vào màn hình thêm cây trồng.
2 Người dùng nhập thông tin cây trồng và thêm hình ảnh cây trồng
3 Người chọn nút lưu góc trên phải màn hình
4 Hệ thống thêm cây trồng thành công
3a Người dùng chọn thoát khỏi màn hình thêm cây trồng
3b Người dùng chưa thêm cây trồng hệ hoặc nhập thiếu thông tin, hệ thống hiển thị thông báo
Thêm cây trồng nhanh chóng
Bảng 6.6: Use-case Thêm cây trồng
Description Use Case diễn tả cách người dùng thêm công việc
Trigger Khi người dùng cần thêm công việc
Người dùng phải có kết nối internet.
Công việc sẽ được thêm thành công.
Basic flow 1 Người bán chọn nút có Icon “+” trong màn hình chi tiết cây trồng
2 Hệ thống hiện lên màn hình thêm công việc
3 Người dùng chọn loại công việc, chọn loại báo giờ, chọn ngày báo giờ và chọn thời gian báo giờ
4 Người dùng chọn nút “Thêm” đễ thêm cây trồng.
3a Người dùng thoát khỏi màn hình thêm công việc
4a Nếu người dùng chọn loại báo giờ là hàng tuần và chưa chọn thứ báo giờ, hệ thống thông báo cho người dùng chưa thêm thứ báo giờ.
Bảng 6.7: Use-case Thêm công việc
Sơ đồ trình tự
Sơ đồ hoạt động
Sơ đồ trạng thái
THIẾT KẾ CƠ SỞ DỮ LIỆU
Thiết kế cơ sở dữ liệu thực tế trên Firebase
Mô tả chi tiết dữ liệu trên Firebase
Chứa các Document là id của người dùng! Mỗi Document sẽ là id của người dùng và có các trường chi tiết như sau:
STT Tên thuộc tính Kiểu Ý nghĩa
1 Month 1 Array Danh sách id cây trồng tháng thứ 1
2 Month 2 Array Danh sách id cây trồng tháng thứ 2
… … … … n Month n Array Danh sách id cây trồng tháng thứ n
Chứa các Document là id của người dùng! Mỗi Document sẽ là id của người dùng và có các trường chi tiết như sau:
STT Tên thuộc tính Kiểu Ý nghĩa
1 Avatar String Đường dẫn đến ảnh đại diện
3 Email String Địa chỉ email
Chứa các Document là id của người dùng! Mỗi Document sẽ có các trường chi tiết như sau:
STT Tên thuộc tính Kiểu Ý nghĩa
1 Name String Tên cây trồng
2 Image String Đường dẫn đến ảnh cây
3 Uid string Mã người dùng
4 age DateTime Ngày người dùng tạo cây
Chứa các Document là id của người dùng! Mỗi Document sẽ là id của người dùng và có các trường chi tiết như sau:
STT Tên thuộc tính Kiểu Ý nghĩa
1 activatedTime DateTime Ngày người dùng tạo công việc
2 jobName String Tên cây trồng
3 numOfDaysRepeat Int Số lần lặp lại
4 plantId String Mã cây trồng
6 Uid String Mã người dùng
Danh sách các quan hệ
STT Tên quan hệ Nội dung
1 Bảng info Thông tin tài khoản
2 Bảng Plant Thông tin cây trồng
3 Bảng TodoWorks Thông tin công việc
–Bảng 7.5: Danh sách các quan hệ
THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG
Danh sách các màn hình
Màn hình quên mật khẩu
Màn hình xác thực email
Màn hình lịch cây trồng
Màn hình thêm cây trồng
Màn hình chỉnh sửa cây trồng
Màn hình xem cây trồng
Sơ đồ liên kết các màn hình
Hình 8.2: Sơ đồ liên kết các màn hình
Mô tả chi tiết các màn hình
Hình 8.4: Giao diện Navigation Bar sau đăng nhập
STT Tên đối tượng Loại Ý nghĩa
1 Nút Trang chủ Button Điều hướng về Trang chủ
2 Nút Lịch Button Điều hướng về Trang lịch
3 Nút Trò chơi Button Điều hướng về Trang trò chơi
4 Nút tài khoản Button Điều hướng về trang tài khoản
Bảng 8.6: Danh sách các thành phần Navigation Bar
Hình 8.5: Giao diện màn hình Trang chủ
STT Tên đối tượng Loại Ý nghĩa
Sắp xếp danh sách cây trồng theo thứ tự được chọn
2 Danh sách cây ListItem Hiển thị danh sách cây của người dùng, thông tin tên cây trồng, số ngày tuổi Điều hường về màn hình chi tiết cây trồng
3 Nút thêm cây trồng Button Điều hướng về màn hình thêm cây trồng Bảng 8.7: Danh sách các thành phần giao diện màn hình Trang chủ
7.3.3 Màn hình chi tiết cây trồng:
Hình 8.6: Giao diện màn hình Chi tiết cây trồng
STT Tên đối tượng Loại Ý nghĩa
1 Thanh thông tin cây AppBar Hiển thị thông tin cây
2 Hình ảnh Image Hiển thị hình ảnh cây trồng
3 List việc cần làm ListItem Hiển thị danh sách công việc
4 Nút thêm công việc Button Mở màn hình thêm công việc Bảng 8.8: Danh sách các thành phần giao diện màn hình Chi tiết cây trồng
7.3.4 Màn hình Thêm công việc:
Hình 8.7: Giao diện màn hình Chi tiết sản phẩm
STT Tên đối tượng Loại Ý nghĩa
Chọn kiểu lặp lại khi báo giờ
3 Lịch Calendar Chọn ngày báo giờ
Chọn số ngày lặp lại báo giờ
5 Danh sách ngày trong tuần
ListItem Chọn các ngày trong tuần để báo giờ
6 Thời gian TimePicker Chọn giờ, phút báo giờ Bảng 8.9: Danh sách các thành phần giao diện màn hình Thêm công việc
7.3.5 Màn hình Thêm cây trồng:
Hình 8.8: Giao diện màn hình Thêm cây
STT Tên đối tượng Loại Ý nghĩa
1 Lưu Button Thêm cây vào database, thoát ra màn hình chính
2 Tên Input Nhập tên cây
3 Ngày Input Chọn ngày cây được trồng
4 Chọn hình ảnh Image Chọn hình ảnh cho cây trồng Bảng 8.10: Danh sách các thành phần giao diện màn hình Thêm cây trồng
Hình 8.9: Giao diện màn hình Lịch
STT Tên đối tượng Loại Ý nghĩa
1 Lịch Layout Hiển thị lịch và ngày được chọn, số công việc cần hoàn thành trong ngày
List item Danh sách công việc trong ngày xếp theo từng cá thể cây. Bảng 8.11: Danh sách các thành phần giao diện màn hình Lịch
7.3.7 Màn hình Thông tin cá nhân:
Hình 8.10: Giao diện màn hình Thông tin cá nhân
STT Tên đối tượng Loại Ý nghĩa
1 Ảnh đại diện Image Hiển thị hình ảnh đại diện của tài khoản
2 Họ tên Input Ô nhập tên của chủ tài khoản
3 Ngày sinh Input Ô nhập ngày sinh của chủ tài khoản
5 Lưu Button Lưu thông tin tài khoản
Bảng 8.12: Danh sách các thành phần giao diện màn hình Thông tin cá nhân
Hình 8.11: Giao diện màn hình Tài khoản
STT Tên đối tượng Loại Ý nghĩa
1 Avatar Image Hiển thị hình ảnh chủ tài khoản
2 Tài khoản Button Nút chọn điều hướng đến trang
3 Đổi mật khẩu Button Nút chọn điều hướng đến trang Đổi mật khẩu
4 Ngôn ngữ Button Hiển thị SnackBar chọn ngôn ngữ
5 Chế độ tối Switch Chuyển sang chế độ sáng hoặc tối Bảng 8.13: Danh sách các thành phần giao diện màn hình Danh sách đơn hàng
Hình 8.11: Giao diện màn hình Đăng ký
STT Tên đối tượng Loại Ý nghĩa
1 Họ tên Input Nhập họ tên
3 Nam-nữ Button Chọn giới tính
4 Ngày sinh Input Chọn ngày sinh
5 Mật khẩu Input Nhập mật khẩu
6 Xác nhận mật khẩu Input Xác nhận mật khẩu
7 Đăng ký Button Tiến hành đăng ký tài khoản
Bảng 8.10: Danh sách các thành phần giao diện màn hình Đăng ký
Hình 8.12: Giao diện màn hình Đăng nhập
STT Tên đối tượng Loại Ý nghĩa
3 Forgot password Dynamic link Chuyển đến màn hình reset password
4 Sign in Button Tiến hành đăng nhập
CÀI ĐẶT VÀ KIỂM THỬ
Môi trường cài đặt và kiểm thử
Môi trường cài đặt: Android 11.0 hoặc hơn
- Máy tính cá nhân có các công cụ lập trình như Androi Studio, Visual StudioCode, …
Kết quả kiểm thử
STT Chức năng Mức độ hoàn thành Ghi chú
1 Đăng ký 100% Đăng ký tài khoản mới để truy cập vào hệ thống
2 Đăng nhập 50% Đăng nhập tài khoản vào hệ thống để quản lý cây trồng
3 Đổi mật khẩu 100% Thay đổi mật khẩu tài khoản của người dùng
4 Quên mật khẩu 70% Đặt lại mật khẩu người dùng sau khi người dùng xác thực tài khoản
5 Thêm, sửa, xóa cây trồng 100% Thêm, xóa, sửa chỉ tiêu
8 Thay đổi ngôn ngữ 100% Thay đổi ngôn ngữ ứng dụng
9 Thay đổi giao diện 100% Thay đổi giao diện sáng tối