Đặt vấn đề Trong thời đại số hóa hiện nay, vấn đề quản lý rác thải và bảo vệ môi trường ngày càng trở nên quan trọng và cấp bách. Để đáp ứng nhu cầu này, các ứng dụng công nghệ đã và đang được phát triển mạnh mẽ nhằm hỗ trợ việc phân loại rác thải và tăng cường ý thức cộng đồng về bảo vệ môi trường. Việc sử dụng internet và các ứng dụng di động để phân loại rác thải không chỉ mang lại sự tiện lợi mà còn tạo ra một trải nghiệm giáo dục và ý nghĩa cho người dùng. Việc xây dựng một ứng dụng phân loại rác và gây quỹ cộng đồng sẽ giúp tối ưu hóa quy trình phân loại rác, từ đó nâng cao hiệu quả quản lý rác thải và bảo vệ môi trường.
Điều này không chỉ giúp giảm chi phí vận hành cho các cơ quan quản lý môi trường mà còn tạo điều kiện thuận lợi cho người dân trong việc tham gia bảo vệ môi trường một cách dễ dàng và hiệu quả. Mặc dù đã có nhiều ứng dụng hỗ trợ phân loại rác, nhưng vẫn còn nhiều thách thức cần được giải quyết. Cụ thể, một số vấn đề như tối ưu hóa giao diện người dùng, cải thiện tính năng nhận dạng và phân loại rác, và tăng cường tính bảo mật trong quá trình quyên góp tiền vẫn đang là những điểm đòi hỏi sự nâng cấp và phát triển. Mục đích và phạm vi của đề tài 1.
Mục đích Mục tiêu của dự án này là xây dựng một ứng dụng phân loại rác và gây quỹ cộng đồng đáp ứng tốt các yêu cầu của người dùng và cơ quan quản lý môi trường. Đặc biệt, ứng dụng sẽ được thiết kế với giao diện thân thiện, tính năng nhận dạng và phân loại rác hiệu quả, cùng với hệ thống quyên góp tiền an toàn và linh hoạt. Đồng thời, mục tiêu của dự án cũng là tối ưu hóa trải nghiệm người dùng và tăng cường ý thức bảo vệ môi trường trong cộng đồng. Phạm vi Mục tiêu chính của dự án là xây dựng một ứng dụng phân loại rác và gây quỹ cộng đồng có khả năng cung cấp cho người dùng một trải nghiệm tối ưu và hiệu quả.
Ứng dụng sẽ được thiết kế với giao diện thân thiện, dễ sử dụng và linh hoạt, giúp người dùng dễ dàng nhận dạng, phân loại rác thải và tham gia quyên góp tiền cho các hoạt động bảo vệ môi trường. Dự án sẽ tập trung vào việc phát triển các tính năng cơ bản như nhận dạng rác theo các tiêu chí như loại rác (giấy, thủy tinh, kim loại, nhựa, vải, bìa carton), và cung cấp thông tin về cách xử lý từng loại rác. Ngoài ra, ứng dụng cũng sẽ cung cấp tính năng theo dõi và đánh giá hiệu quả phân loại rác của người dùng. Một phần quan trọng của dự án là tích hợp các phương thức quyên góp tiền đa dạng và an toàn, bao gồm thanh toán trực tuyến và thanh toán sau khi hoàn thành hoạt động quyên góp.
Điều này giúp tăng cường tính tiện lợi và linh hoạt cho người dùng trong quá trình tham gia quyên góp. Ứng dụng phân loại rác và gây quỹ cộng đồng này sẽ dành cho mọi đối tượng người dùng, từ cá nhân đến doanh nghiệp, từ người dùng thông thường đến những người có nhu cầu tham gia các hoạt động bảo vệ môi trường thường xuyên. Việc đa dạng hóa tính năng và linh hoạt trong cung cấp dịch vụ sẽ giúp thu hút và phục vụ một đối tượng người dùng rộng lớn. Quy trình thực hiện Sau khi thảo luận và nhận được sự thống nhất của tất cả các thành viên, nhóm chúng tôi quyết định chia quy trình phát triển đề tài Nghiên cứu và xây dựng ứng dụng phân loại rác và gây quỹ cộng đồng thành 4 giai đoạn chính, cụ thể như sau: Giai đoạn 1: Khảo sát hiện trạng, xác định và mô hình hóa các yêu cầu của ứng dụng.
Giai đoạn 2: Phân tích và thiết kế 18 o Giai đoạn 2.1: Xác định các tính năng chính của từng nhóm người dùng o Giai đoạn 2.2: Phân tích chi tiết các thành phần xử lý, thành phần dữ liệu input/ output tương với từng tính năng chính o Giai đoạn 2.3: Thiết kế hệ thống o Giai đoạn 2.4: Thiết kế cơ sở dữ liệu o Giai đoạn 2.5: Thiết kế giao diện và chọn bảng màu phù hợp Giai đoạn 3: Cài đặt ứng dụng dựa trên các yêu cầu đã phân tích Giai đoạn 4: Kiểm thử và sửa các lỗi trong quá trình vận hành thử 19 Chương 2. Tổng quan về Flutter 2. Giới thiệu Flutter là một bộ công cụ giao diện người dùng mã nguồn mở được phát triển bởi Google. Nó cho phép các nhà phát triển xây dựng các ứng dụng di động, web và máy tính để bàn từ một codebase duy nhất.
Flutter sử dụng ngôn ngữ Dart và cung cấp một tập hợp các widget phong phú để xây dựng giao diện người dùng đẹp và hiệu suất cao. Ưu điểm Hiệu suất cao: Flutter biên dịch mã nguồn Dart sang mã máy (native code), giúp cải thiện hiệu suất của ứng dụng. Phát triển nhanh: Với tính năng Hot Reload, các thay đổi trong mã nguồn có thể được xem ngay lập tức mà không cần phải khởi động lại ứng dụng. Giao diện đẹp mắt: Flutter cung cấp nhiều widget tùy chỉnh, giúp tạo ra giao diện người dùng đẹp và nhất quán trên nhiều nền tảng.
Cross-platform: Một codebase duy nhất có thể triển khai trên nhiều nền tảng như Android, iOS, web và máy tính để bàn. Nhược điểm Kích thước ứng dụng lớn: Ứng dụng Flutter có thể có kích thước lớn hơn so với các ứng dụng native do phải bao gồm cả runtime của Flutter. Cộng đồng và tài liệu: Mặc dù Flutter đang phát triển nhanh, nhưng cộng đồng và tài liệu hỗ trợ vẫn còn hạn chế so với các công nghệ lâu đời hơn. Hiệu suất trên web: Ứng dụng Flutter trên web có thể không đạt hiệu suất cao như trên di động hoặc máy tính để bàn.
Tổng quan về Spring Boot 2. Giới thiệu Spring Boot là một framework mã nguồn mở dựa trên nền tảng Java, được phát triển bởi Pivotal Software, hiện thuộc VMware. Spring Boot được thiết kế để đơn giản hóa việc phát triển ứng dụng Java bằng cách cung cấp cấu hình mặc định và tự động hóa nhiều tác vụ thường gặp trong quá trình phát triển. Nó là một phần của hệ sinh thái Spring Framework, giúp xây dựng các ứng dụng microservices, web services, và các ứng dụng dựa trên RESTful API một cách nhanh chóng và hiệu quả.
Ưu điểm Cấu hình tự động: Spring Boot tự động cấu hình nhiều thành phần của ứng dụng, giảm thiểu thời gian và công sức cần thiết để cấu hình thủ công. Khởi động nhanh: Với các tính năng khởi động nhanh và tích hợp sẵn, Spring Boot giúp tăng tốc quá trình phát triển và triển khai ứng dụng. Tích hợp dễ dàng: Hỗ trợ tích hợp với nhiều thư viện và công cụ phổ biến như Hibernate, Thymeleaf, Spring Security, và nhiều hơn nữa. Hỗ trợ tốt cho Microservices: Cung cấp các công cụ và thư viện giúp phát triển và quản lý các ứng dụng microservices một cách hiệu quả.
Nhược điểm Kích thước ứng dụng lớn: Các ứng dụng Spring Boot có thể trở nên lớn và phức tạp do nhiều dependency và thư viện đi kèm. Độ phức tạp khi tùy chỉnh: Việc tùy chỉnh các cấu hình tự động có thể phức tạp và đôi khi khó kiểm soát. Tài nguyên tiêu thụ cao: Spring Boot có thể yêu cầu nhiều tài nguyên hệ thống hơn so với các framework khác khi triển khai các ứng dụng lớn. Tổng quan về Roboflow 2.
Giới thiệu Roboflow là một nền tảng toàn diện hỗ trợ các nhà phát triển xây dựng, quản lý và triển khai các mô hình học máy cho nhận dạng hình ảnh. Nó cung cấp các công cụ mạnh mẽ để thu thập, gắn nhãn, và chuẩn bị dữ liệu, cũng như tích hợp dễ dàng với các framework học máy phổ biến. Ưu điểm Dễ dàng sử dụng: Roboflow cung cấp giao diện người dùng thân thiện và các công cụ tự động hóa giúp đơn giản hóa quá trình xử lý dữ liệu và huấn luyện mô hình. Quản lý dữ liệu hiệu quả: Roboflow cho phép quản lý và gắn nhãn dữ liệu một cách hiệu quả, giúp tiết kiệm thời gian và nguồn lực trong quá trình chuẩn bị dữ liệu.
Tính linh hoạt: Roboflow hỗ trợ nhiều định dạng dữ liệu và mô hình, cho phép nhà phát triển lựa chọn và tối ưu hóa giải pháp phù hợp nhất với nhu cầu của mình. Cross-platform: Roboflow có thể được triển khai trên nhiều nền tảng khác nhau, bao gồm cả di động, web, và máy tính để bàn, đảm bảo tính linh hoạt trong việc ứng dụng. Nhược điểm Chi phí sử dụng: Một số tính năng nâng cao của Roboflow yêu cầu gói dịch vụ trả phí, có thể không phù hợp với các dự án có ngân sách hạn chế. Yêu cầu kỹ thuật cao: Để tận dụng tối đa các tính năng của Roboflow, nhà phát triển cần có hiểu biết về học máy và xử lý hình ảnh.
Cộng đồng và tài liệu: Mặc dù Roboflow đang phát triển nhanh, nhưng cộng đồng và tài liệu hỗ trợ vẫn còn hạn chế so với các công nghệ lâu đời hơn. Tổng quan về Yolov7 2. Giới thiệu YOLOv7 (You Only Look Once version 7) là một trong những mô hình phát hiện đối tượng tiên tiến nhất, nổi tiếng với tốc độ và độ chính xác cao. Được phát triển dựa trên kiến trúc YOLO, YOLOv7 mang lại hiệu suất vượt trội trong việc phát hiện đối tượng thời gian thực.
Ưu điểm Hiệu suất cao: YOLOv7 nổi bật với khả năng phát hiện đối tượng nhanh chóng và chính xác, lý tưởng cho các ứng dụng yêu cầu thời gian thực. Độ chính xác cao: Với kiến trúc được cải tiến, YOLOv7 đạt được độ chính xác cao trong việc nhận dạng và phân loại các đối tượng. Tốc độ xử lý nhanh: YOLOv7 có thể xử lý hình ảnh với tốc độ cao, phù hợp với các ứng dụng yêu cầu phản hồi nhanh như giám sát an ninh và lái xe tự động. Đa nền tảng: YOLOv7 có thể triển khai trên nhiều nền tảng khác nhau, bao gồm cả di động, web, và máy tính để bàn.
Nhược điểm Kích thước mô hình lớn: YOLOv7 có thể có kích thước lớn và yêu cầu tài nguyên tính toán cao, điều này có thể gây khó khăn cho các thiết bị có hiệu suất thấp.