ĐỀ 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, smartphone ngày càng phổ biến và việc phát triển ứng dụng trên các kho lưu trữ trở nên dễ dàng hơn Người dùng sẵn sàng chi trả cho những ứng dụng thiết yếu Tại các quốc gia đang phát triển, nông nghiệp chủ yếu dựa vào kinh nghiệm của nông dân về cây trồng và thời tiết, dẫn đến năng suất canh tác không ổn định Nhiều người trồng cây thiếu kiến thức và phương pháp chăm sóc hiệu quả, như quy trình làm cỏ, tạo bồn, cắt tỉa cành, bón phân và tưới nước định kỳ cho từng loại cây.
Ứng dụng hướng dẫn chăm sóc cây trồng với công nghệ và quy trình cụ thể sẽ giúp khắc phục các khuyết điểm hiện tại, đồng thời giải quyết lo ngại về chất lượng và an toàn thực phẩm, từ đó nâng cao chất lượng sản phẩm nông nghiệp và cây trồng.
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 giúp người dùng giải quyết các vấn đề liên quan đến việc chăm sóc cây trồng hiệu quả hơ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ử du ̣ng: Dart
Công cu ̣ xây dựng ứng du ̣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 du ̣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)
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ế
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
- 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
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
Tiếp tục hoà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ế
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) Sinh viên 2
(Ký tên và ghi rõ họ tên)
Huỳnh Thiện Tâm Lý Hồng Phong
KIẾN THỨC NỀN TẢNG
Dart
Dart là ngôn ngữ lập trình do Google phát triển, được sử dụng để tạo ra ứng dụng di động, ứng dụng web, cũng như ứng dụng desktop và server Ngôn ngữ này được thiết kế với mục tiêu đơn giản, hiệu quả và khả năng chạy trên nhiều nền tảng khác nhau Đặc biệt, Dart là ngôn ngữ chính cho phát triển ứng dụng di động trên Flutter, 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?
Dart mang lại hiệu suất cao và thời gian thực thi nhanh chóng nhờ vào việc sử dụng công cụ biên dịch Just-In-Time (JIT) và máy ảo (VM).
Dart cho phép kiểm tra kết quả ngay lập tức trong quá trình phát triển, giúp tiết kiệm thời gian và nâng cao hiệu suất Ngoài ra, Dart hỗ trợ phát triển đa nền tảng, cho phép bạn phát triển ứng dụng trên nhiều nền tảng khác nhau như 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 là một framework phát triển giao diện người dùng đa nền tảng do Google phát triển, giúp bạn dễ dàng và hiệu quả xây dựng ứng dụng di động đồng nhất trên nhiều nền tảng.
Dart có cú pháp thân thiện và dễ học, tương tự như nhiều ngôn ngữ lập trình phổ biến như Java và JavaScript, giúp người dùng dễ dàng tiếp cận, đặc biệt là những lập trình viên đã có kinh nghiệm.
Dart sở hữu một cộng đồng lớn và năng động, cùng với nhiều thư viện và công cụ hỗ trợ phát triển Trên Dart Pub, bạn có thể tìm thấy hàng ngàn gói được xây dựng sẵn, giúp bạn nhanh chóng triển khai và mở rộng ứng dụng của mình.
Flutter
Flutter là framework phát triển ứng dụng di động mã nguồn mở do Google phát triển, cho phép xây dựng ứng dụng đẹp và tương tác trên cả Android và iOS từ một mã nguồn duy nhất Sử dụng ngôn ngữ lập trình Dart, Flutter cung cấp nhiều tiện ích và widgets giúp tạo giao diện người dùng linh hoạt Bộ công cụ phát triển mạnh mẽ của Flutter hỗ trợ debug, kiểm thử và triển khai ứng dụng dễ dàng, làm cho nó trở thành lựa chọn phổ biến trong phát triển ứng dụng di động hiện nay.
Giao diện người dùng của Flutter rất đẹp và tương tác nhờ vào bộ widgets tùy chỉnh mạnh mẽ, cho phép tạo ra trải nghiệm hấp dẫn trên nhiều nền tảng Với Flutter, bạn chỉ cần viết mã một lần và có thể triển khai trên Android, iOS và web, tiết kiệm thời gian và công sức Hiệu suất cao được đảm bảo nhờ thư viện đồ họa riêng, giúp tăng tốc độ và hiệu quả trong việc vẽ giao diện Bộ công cụ phát triển tích hợp của Flutter hỗ trợ nhanh chóng trong việc kiểm tra, debug và triển khai ứng dụng Hơn nữa, cộng đồng lớn và tài liệu phong phú xung quanh Flutter giúp người dùng dễ dàng tìm kiếm hỗ trợ và tài nguyên phát triển.
Flutter có một số nhược điểm cần lưu ý Thứ nhất, kích thước ứng dụng có thể lớn hơn so với ứng dụng phát triển truyền thống do cần bao gồm nhiều thư viện và framework Thứ hai, Flutter vẫn còn hạn chế về một số tính năng, đặc biệt trong việc xử lý và truyền tải dữ liệu lớn Cuối cùng, mặc dù đang ngày càng phổ biến, nhưng Flutter vẫn chưa thu hút số lượng lập trình viên đông đảo như các công nghệ phát triển truyền thống như native iOS hoặc Android, dẫn đến việc tìm kiếm tài nguyên và hỗ trợ có thể gặp khó khă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 nhiều dịch vụ và công cụ hỗ trợ 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 cung cấp giải pháp xác thực người dùng và quản lý danh tính hiệu quả, hỗ trợ nhiều phương thức như email và mật khẩu, Google, Facebook, cùng nhiều lựa chọn khác.
Cloud Firestore là một cơ sở dữ liệu doanh nghiệp linh hoạt và dễ sử dụng, cho phép lưu trữ và đồng bộ dữ liệu thời gian thực trên nhiều 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
Firebase cung cấp nhiều dịch vụ và công cụ hữu ích như Firebase Crashlytics, Firebase Performance Monitoring, và Firebase Test Lab Những tính năng này giúp các nhà phát triển xây dựng ứng dụng một cách nhanh chóng và hiệu quả mà không cần phải có kiến thức sâu 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 mạnh mẽ, cho phép người dùng tạo ra các thiết kế giao diện và prototype, đồng thời hỗ trợ hợp tác hiệu quả trong quá trình phát triển sản phẩm Với khả năng hoạt động trên nhiều nền tảng, bao gồm cả máy tính để bàn và thiết bị di động, Figma mang đến sự linh hoạt và tiện lợi cho các nhà thiết kế.
Figma là công cụ hoàn hảo để thiết kế giao diện người dùng, cho phép bạn tạo bản vẽ, chỉnh sửa các thành phần và phát triển prototype tương tác nhằm thử nghiệm trải nghiệm người dùng Với tính năng làm việc đồng thời và hợp tác thời gian thực, Figma giúp các nhóm thiết kế và phát triển có thể làm việc cùng nhau từ xa một cách hiệu quả.
Figma 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, giúp tái sử dụng chúng trong các bản vẽ khác nhau và đảm bảo tính nhất quán trong quá trình phát triển sản phẩm.
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ố nhờ vào khả năng tích hợp với các công cụ phát triển khác và xuất ra các tệp tin chuẩn.
THIẾT KẾ HỆ THỐNG
Kiến trúc hệ thống: Kiến trúc Bloc
Bloc giúp tách biệt phần giao diện người dùng (UI) và logic kinh doanh, mang lại lợi ích trong việc viết mã nhanh chóng, dễ dàng kiểm tra và sử dụng Mục tiêu của mẫu thiết kế này là phân tách logic kinh doanh khỏi UI, thay vì gộp chung vào một tệp, giúp việc sửa đổi dễ dàng hơn khi có yêu cầu mới Logic kinh doanh được tách ra và gọi là Bloc (Business Logic Component), đồng thời cải thiện quản lý trạng thái cho từng màn hình, vì các trạng thái được quản lý riêng biệt với UI Do đó, trong ứng dụng Flutter, nên tạo một Bloc cho mỗi màn hình để xử lý logic và quản lý trạng thái hiệu quả.
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
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 đa ̣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
5 Imag String Hình ảnh
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
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.1: 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ồng Bảng 6.1: 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”
Bảng 6.2: Use-case Đăng nhập
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
Bảng 6.3: 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
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
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 la ̣i mâ ̣t khẩu người dùng là số điê ̣n thoa ̣i của người dùng
5 Hệ thống ghi nhận thay đổi vào cơ sở dữ liệu
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 cho ̣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
Hình 7.1: Sơ đồ liên kết collection
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 đa ̣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.1: 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 giới thiê ̣u
Màn hình đăng nhâ ̣p
Màn hình đăng ký
Màn hình quên mâ ̣t khẩu
Màn hình xác thực email
Màn hình trang chủ
Màn hình li ̣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
Màn hình cài đă ̣t
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.1: 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.1: Danh sách các thành phần Navigation Bar
Hình 8.2: 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.2: 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.3: 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.3: 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.4: Giao diện màn hình Chi tiết sản phẩm
STT Tên đối tượng Loại Ý nghĩa
1 Loại công việc PopUpMenuButton Chọn loại công việc
2 Kiểu lặp lại PopUpMenuButton Chọn kiểu lặp lại khi báo giờ
3 Lịch Calendar Chọn ngày báo giờ
4 Tần suất PopUpMenuButton 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.4: 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.5: 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.5: 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.6: 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.6: 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.7: 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.7: 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.8: 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.8: 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 Studio Code,
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 la ̣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
Thay đổi ngôn ngữ ứng du ̣ng (Anh – Viê ̣t)
100% Thay đổi giao diện sáng tối