1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

69 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Phần Mềm Hỗ Trợ Chăm Sóc Cây Trồng
Tác giả Lý Hồng Phong, Huỳnh Thiện Tâm
Người hướng dẫn ThS. Trần Anh Dũng
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Đồ Án
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 6,17 MB

Cấu trúc

  • CHƯƠNG 1. ĐỀ CƯƠNG CHI TIẾT (8)
  • CHƯƠNG 2. MỞ ĐẦU (12)
    • 2.1. Lý do chọn đề tài (12)
    • 2.2. Mục đích nghiên cứu (13)
      • 2.2.1. Khách quan (13)
      • 2.2.2. Chủ quan (13)
    • 2.3. Mục tiêu đề tài (13)
      • 2.3.1. Mục tiêu tổng quát (13)
      • 2.3.2. Mục tiêu cụ thể (14)
    • 2.4. Đối tượng nghiên cứu (14)
      • 2.4.1. Các công nghệ nghiên cứu (14)
      • 2.4.2. Đối tượng sử dụng đề tài hướng đến (0)
    • 2.5. Phạm vi nghiên cứu (15)
      • 2.5.1. Phạm vi môi trường (15)
      • 2.5.2. Phạm vi chức năng (15)
  • CHƯƠNG 3. KIẾN THỨC NỀN TẢNG (15)
    • 3.1. Dart (15)
    • 3.2. Flutter (16)
    • 3.3. FireBase (18)
    • 3.4. Figma (18)
  • CHƯƠNG 4. THIẾT KẾ HỆ THỐNG (20)
    • 4.1. Kiến trúc hệ thống: Kiến trúc Bloc (20)
    • 4.2. Chi tiết các thành phần trong hệ thống (20)
    • 4.3. Thiết kế sơ đồ lớp (21)
  • CHƯƠNG 5. ĐẶC TẢ USE-CASE VÀ CÁC SƠ ĐỒ LIÊN QUAN (23)
    • 5.1. Sơ đồ Use-case (23)
    • 5.2. Danh sách các tác nhân (23)
    • 5.3. Đặc tả Use-case (23)
      • 5.3.1. Đăng nhập (24)
      • 5.3.2. Đăng kí (25)
      • 5.3.3. Quên mật khẩu (25)
      • 5.3.4. Thêm cây trồng (27)
      • 5.3.5. Thêm công việc (28)
    • 5.4. Sơ đồ trình tự (30)
      • 5.4.1. Đăng nhập (30)
      • 5.4.2. Thêm cây trồng (31)
      • 5.4.3. Sửa cây trồng (32)
      • 5.4.4. Thêm công việc (33)
    • 5.5. Sơ đồ hoạt động (33)
      • 5.5.1. Đăng nhập (34)
      • 5.5.2. Quản lý cây trồng (35)
      • 5.5.3. Quản lý công việc (36)
      • 5.5.4. Quản lý cài đặt (37)
    • 5.6. Sơ đồ trạng thái (37)
      • 5.6.1. Đăng nhập (38)
      • 5.6.2. Thêm cây trồng (38)
      • 5.6.3. Sửa cây trồng (39)
      • 5.6.4. Thêm công việc (39)
  • CHƯƠNG 6. THIẾT KẾ CƠ SỞ DỮ LIỆU (40)
    • 6.1. Thiết kế cơ sở dữ liệu thực tế trên Firebase (40)
    • 6.2. Danh sách các quan hệ (42)
  • CHƯƠNG 7. THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG (43)
    • 7.1. Danh sách các màn hình (43)
    • 7.2. Sơ đồ liên kết các màn hình (43)
    • 7.3. Mô tả chi tiết các màn hình (44)
      • 7.3.1. Navigation Bar (44)
      • 7.3.2. Màn hình Trang chủ (44)
      • 7.3.3. Màn hình chi tiết cây trồng (46)
      • 7.3.4. Màn hình Thêm công việc (48)
      • 7.3.5. Màn hình Thêm cây trồng (52)
      • 7.3.6. Màn hình Lịch (54)
      • 7.3.7. Màn hình Thông tin cá nhân (56)
      • 7.3.8. Màn hình Tài khoản (58)
      • 7.3.9. Màn hình Đăng ký (60)
      • 7.3.10. Màn hình Đăng nhập (62)
  • CHƯƠNG 8. CÀI ĐẶT VÀ KIỂM THỬ (65)
    • 8.1. Môi trường cài đặt và kiểm thử (65)
    • 8.2. Kết quả kiểm thử (65)
  • CHƯƠNG 9. KẾT LUẬN (67)
    • 9.1. Kết quả đạt được (67)
    • 9.2. Hạn chế (67)
      • 9.2.1. Về việc tổ chức quản lí nhóm (67)
      • 9.2.2. Về sản phẩm phần mềm (68)
    • 9.3. Hướng phát triển (68)
  • TÀI LIỆU THAM KHẢO..........................................................................................64 (69)

Nội dung

ĐỀ 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

Ngày đăng: 04/09/2023, 20:42

HÌNH ẢNH LIÊN QUAN

Hình 5.1: Mô hình Bloc - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 5.1 Mô hình Bloc (Trang 20)
Bảng 5.1: Bảng chi tiết các thành phần trong hệ thống - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Bảng 5.1 Bảng chi tiết các thành phần trong hệ thống (Trang 21)
5.1. Sơ đồ Use-case: - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
5.1. Sơ đồ Use-case: (Trang 23)
Bảng 6.4: Use-case Đăng kí - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Bảng 6.4 Use-case Đăng kí (Trang 25)
Bảng 6.6: Use-case Thêm cây trồng - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Bảng 6.6 Use-case Thêm cây trồng (Trang 28)
Bảng 6.7: Use-case Thêm công việc - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Bảng 6.7 Use-case Thêm công việc (Trang 29)
5.4. Sơ đồ trình tự: - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
5.4. Sơ đồ trình tự: (Trang 30)
5.5. Sơ đồ hoạt động: - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
5.5. Sơ đồ hoạt động: (Trang 33)
5.6. Sơ đồ trạng thái: - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
5.6. Sơ đồ trạng thái: (Trang 37)
Hình 8.2: Sơ đồ liên kết các màn hình - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 8.2 Sơ đồ liên kết các màn hình (Trang 43)
7.2. Sơ đồ liên kết các màn hình: - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
7.2. Sơ đồ liên kết các màn hình: (Trang 43)
Hình 8.4: Giao diện Navigation Bar sau đăng nhập - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 8.4 Giao diện Navigation Bar sau đăng nhập (Trang 44)
Hình 8.5: Giao diện màn hình Trang chủ - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 8.5 Giao diện màn hình Trang chủ (Trang 46)
Hình 8.6: Giao diện màn hình Chi tiết cây trồng - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 8.6 Giao diện màn hình Chi tiết cây trồng (Trang 48)
Hình 8.7: Giao diện màn hình Chi tiết sản phẩm - Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng
Hình 8.7 Giao diện màn hình Chi tiết sản phẩm (Trang 52)
w