CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI. Lý do chọn đề tài. Mục tiêu đề tài.
Khách quan. Đối tượng sử dụng. Phạm vi đề tài. Phạm vi môi trường.
Phạm vi chức năng. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ. Google Maps API. PHÂN TÍCH THIẾT KẾ HỆ THỐNG.
Phân tích yêu cầu. Yêu cầu chức năng. Yêu cầu phi chức năng. Phân tích Use case.
Danh sách tác nhân. Danh sách Use case. Đặc tả Use case và Sơ đồ luồng hoạt động. Kiến trúc hệ thống.
Mô tả kiến trúc. Thiết kế cơ sở dữ liệu. Lược đồ cơ sở dữ liệu. Mô tả cơ sở dữ liệu.
Thiết kế giao diện. Danh sách các màn hình. Sơ đồ liên kết các màn hình. Giao diện các màn hình.
Kết quả đạt được. Hướng phát triển. 78 TÀI LIỆU THAM KHẢO. TỔNG QUAN ĐỀ TÀI 1.
Lý do chọn đề tài Việc tìm phòng trọ là một trong những nỗi lo lớn của nhiều người, đặc biệt là sinh viên và những người mới đến một thành phố lạ. Vì trên thị trường nhà ở hiện nay, tình trạng khan hiếm phòng trọ và sự cạnh tranh khốc liệt khiến việc tìm kiếm một nơi ở phù hợp trở nên khó khăn. Đối với sinh viên và những người mới đến thành phố, việc thiếu thời gian, kiến thức về khu vực và kinh nghiệm trong việc tìm phòng trọ càng làm gia tăng áp lực và khó khăn trong quá trình này. Vì vậy, nhóm đã quyết định chọn đề tài Xây dựng ứng dụng thuê trọ nhằm giúp người dùng tiết kiệm thời gian và công sức trong việc tìm kiếm và thuê phòng trọ.
Ứng dụng sẽ cung cấp một giao diện đơn giản và dễ sử dụng, cho phép người dùng tìm kiếm và so sánh các phòng trọ dựa trên các tiêu chí như vị trí, giá cả, diện tích và tiện nghi. Nhóm cũng hỗ trợ cung cấp thông tin chi tiết về từng phòng trọ, bao gồm hình ảnh và mô tả, thông tin tiện ích, giá một số phí sinh hoạt cụ thể .và thông tin chi tiết của những chủ trọ, giúp người dùng có cái nhìn chính xác và tổng quan về các lựa chọn có sẵn. Ngoài ra, với ứng dụng này, người dùng có thể liên lạc với chủ nhà một cách nhanh chóng và thuận tiện, từ đó đưa ra được quyết định thuê phòng và thực hiện việc đặt cọc an toàn, đảm bảo độ tin cậy ngay trên chính ứng dụng. Nhóm mong muốn có thể tạo ra một ứng dụng thuê phòng thuận tiện và đáng tin cậy, giúp người dùng dễ dàng tìm kiếm và thuê được nơi ở phù hợp với nhu cầu của họ.
Hy vọng rằng ứng dụng này sẽ giảm bớt gánh nặng và lo lắng trong quá trình tìm kiếm phòng trọ và mang lại trải nghiệm thuê trọ trọn vẹn và tốt đẹp cho người dùng. Mục tiêu đề tài 1. Khách quan Tạo ra một ứng dụng di động dễ sử dụng và tiện ích để giúp người dùng tìm kiếm và đặt phòng trọ một cách thuận tiện và nhanh chóng. Điều này giúp giảm bớt thời gian và công sức mà người dùng phải bỏ ra khi tìm kiếm phòng trọ truyền thống.
1 Cung cấp các tính năng tìm kiếm và lọc phù hợp để người dùng có thể tìm kiếm phòng trọ dựa trên các tiêu chí như vị trí, giá cả, diện tích, tiện nghi và các yêu cầu khác. Điều này giúp tối ưu hóa quá trình tìm kiếm và giúp người dùng tìm thấy phòng trọ phù hợp với nhu cầu của họ một cách dễ dàng. Cung cấp tính năng gửi yêu cầu thuê phòng, cho phép người dùng liên lạc với chủ nhà thông qua ứng dụng. Điều này tạo ra sự tiện lợi và thuận tiện cho người dùng và giúp tăng tính hiệu quả trong quá trình thuê phòng.
Chủ quan Nghiên cứu, áp dụng các kĩ thuật lập trình hiện đại vào đề tài: thiết kế hướng đối tượng, lập trình bất đồng bộ, sử dụng các mô hình kiến trúc,… Nghiên cứu, áp dụng các thư viện phổ biến trong lập trình Flutter để tối ưu hóa quá trình phát triển, cụ thể: • Sử dụng thư viện GetX để quản lý trạng thái ứng dụng hiệu quả • Firebase SDK để lưu trữ dữ liệu, xác thực người dùng,… • Thực hiện gọi API với Google Maps và cổng thanh toán để tích hợp các tính năng địa lý và thanh toán vào ứng dụng • Tìm hiểu và tích hợp các thư viện giải quyết các vấn đề phổ biến như điều hướng, giao diện người dùng,… Nghiên cứu, áp dụng các tiêu chuẩn và quy tắc thiết kế của ngôn ngữ lập trình Dart và bộ công cụ phát triển ứng dụng đa nền tảng Flutter để mang lại hiệu quả tối đa. Đối tượng sử dụng Người thuê trọ: là những người đang tìm kiếm phòng trọ để thuê, Họ có thể là sinh viên, người đi làm, người mới chuyến đến,. Người thuê phòng sử dụng ứng dụng để tìm kiếm phòng trọ phù hợp với nhu cầu của mình, bao gồm các thông tin như: vị trí, giá cả, diện tích, nội thất, tiện ích… Chủ nhà trọ: là những người đang có phòng trọ cho thuê. Họ sử dụng ứng dụng để dăng tin cho thuê phòng, quản lý phòng trọ và tương tác với người thuê phòng.
Chủ nhà trọ có thể sử dụng các tính năng của ứng dụng như: đăng tin cho thuê phòng, 2 quản lý tin đăng, xem thông tin người thuê phòng, trao đổi thông tin với người thuê phòng,… Phân tích cụ thể nhu cầu của từng đối tượng sử dụng: • Người thuê phòng: o Nhu cầu tìm kiếm phòng trọ nhanh chóng, tiện lợi. o Nhu cầu tìm kiếm phòng trọ phù hợp với nhu cầu và khả năng tài chính o Nhu cầu được cung cấp thông tin đầy đủ, chính xác về phòng trọ. o Nhu cầu được tương tác với chủ nhà trọ để trao đổi thông tin và thương lượng giá cả. • Chủ nhà trọ: o Nhu cầu đăng tin cho thuê phòng nhanh chóng, hiệu quả o Nhu cầu quản lý tin đăng hiệu quả o Nhu cầu tương tác với người thuê phòng để trao đổi thông tin và thương lượng giá cả o Nhu cầu thu hút khách hàng tiềm năng 1.
Phạm vi đề tài 1. Phạm vi môi trường • Hệ điều hành: iOS và Android • Phiên bản hệ điều hành: iOS (phiên bản 10.0 trở lên) và Android (phiên bản 5.0 trở lên) • Điều kiện mạng và kết nối: Ứng dụng được thiết kế để hoạt động trong mọi điều kiện mạng (bao gồm cả 3G/4G, Wifi,…) • Sử dụng quyền truy cập thư viện để tải ảnh, quyền truy cập thông báo và GPS để lấy vị trí địa lý 1. Phạm vi chức năng Ứng dụng cho phép người dùng: 3 • Thực hiện quy trình thuê phòng và trả phòng thuận tiện, đảm bảo độ tin cậy cao cho cả người thuê và chủ nhà. • Tìm kiếm phòng trọ theo khu vực, bộ lọc tìm kiếm theo giá cả, tiện ích, giới tính, số lượng, loại phòng,… • Xem lịch sử tìm kiếm.
• Xem chi tiết các phòng theo bộ lọc tìm kiếm • Xem các phòng đã thích và các phòng đã xem để người dùng tiện cho việc tìm kiếm lại thông tin phòng. • Xem các phòng trong khu vực nổi bật • Cho phép người dùng liên hệ với chủ phòng theo nhiều cách tiếp cận khác nhau: gọi điện, nhắn tin. • Cho phép xem thông tin của chủ phòng trọ để người dùng có cái nhìn khách quan hơn về độ uy tín của chủ phòng trọ. • Tính năng Google Maps có thể giúp người có góc nhìn trực quan hơn cho việc tìm kiếm phòng trọ gần nơi mình sinh sống.
• Đăng/sửa bài về phòng mình cho thuê: giá cả, vị trí, các tiện ích,… • Nhận thông báo về phòng mình cho thuê được duyệt bởi hệ thống, thông báo tin nhắn khi người thuê phòng liên hệ. • Tự động xóa bài đăng phòng nếu hết hạn. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2. Flutter Flutter là một framework phát triển ứng dụng di động đa nền tảng được phát triển bởi Google.
Sử dụng ngôn ngữ lập trình Dart, Flutter cho phép bạn xây dựng các ứng dụng di động đẹp và tương tác trên cả nền tảng iOS và Android từ một mã nguồn duy nhất. Flutter đi kèm với một bộ công cụ phong phú, cho phép bạn xây dựng giao diện người dùng đáp ứng và quản lý trạng thái ứng dụng một cách hiệu quả. 4 Ưu điểm: • Đa nền tảng: Flutter cho phép bạn xây dụng ứng dụng di động trên cả iOS và Android từ một mã nguồn duy nhât. • Hiệu suất cao: Flutter sử dụng kỹ thuật rendering riêng (skia) và không cần thông qua bridge như các framework khác, giúp cải thiện hiệu suất ứng dụng.
• Giao diện người dùng đẹp: Flutter cung cấp bộ widget phù hợp với giao diện người dùng tương tác, cho phép bạn tạo ra ứng dụng với giao diện đẹp và mượt mà. • Tích hợp dễ dàng: Flutter cung cấp các plugin và thư viện mạnh mẽ để tích hợp với các dịch vụ và API bên ngoài. Nhược điểm: • Hạn chế số lượng plugin: So vói các framwork khác, Flutter có số lượng plugin hạn chế hơn, đặc biết đối với các tính năng phức tạp và đặc thù của từng nền tảng. • Kích thước file lớn: Ứng dụng Flutter có kích thước tương đối lớn do bao gồm các framework và thư viện cần thiết.
GetX GetX là một thư viện Flutter cung cấp công cụ quản lý trạng thái và dependency injection, Với GetX, bạn có thể dễ dạng quản lý trạng thái ứng dụng mà không cần sử dụng các thư viện phức tạp khác. Thư viện này cung cấp các lớp hỗ trợ như GetBuilder, GetX, Obx, giúp bạn theo dõi và cập nhật trạng thái ứng dụng một cách thuận tiện và hiệu quả. Ưu điểm: • Quản lý trạng thái dễ dàng, GetX cung cấp các lớp hỗ trợ giúp bạn quản lý trạng thái ứng dụng một các thuận tiện và hiệu quả. 5 • Dependency injection: Thư viện này cung cấp công cụ dependency injection giúp quản lý và tiếp cận các thành phần ứng dụng một cách linh hoạt và dễ dàng.
• Tích hợp đơn giản: GetX tích hợp dễ dàng với Flutter và không đòi hỏi cấu hình phức tạp. Nhược điểm: • Hạn chế tài liệu và cộng đồng: So với các thư viện quản lý trạng thái khác, GetX có một cộng đồng nhỏ hơn và tài liệu hạn chế hơn, dẫn đến việc tìm kiếm hỗ trợ có thể khó 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ụ đám mây để phát triển ứng dụng báo gồm xác thực người dùng, lưu trữ dữ liệu thông qua cơ sở dữ liệu realtime, push notifications, phân tích và nhiều dịch vụ khác.