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

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

69 2 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 đề Đồ Án 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 Công Nghệ Thông Tin - Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại đề tài
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 4,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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 (12)
      • 2.2.1. Khách quan (12)
      • 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 (14)
    • 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 (17)
    • 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 (24)
      • 5.3.1. Đăng nhập (24)
      • 5.3.2. Đăng kí (25)
      • 5.3.3. Quên mật khẩu (26)
      • 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 (67)
    • 9.3. Hướng phát triển (68)
  • TÀI LIỆU THAM KHẢO (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, 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

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

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w