Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy Nguyễn Đình Toản TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC ? BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI NGHIÊN CỨU LẬP TRÌNH DI ĐỘNG ĐA N.Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy Nguyễn Đình Toản TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC ? BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI NGHIÊN CỨU LẬP TRÌNH DI ĐỘNG ĐA N.
Mục tiêu nghiên cứu
Mục tiêu của đồ án là tìm ra giải pháp hiệu quả để giải quyết công cho thuê phòng trọ Các mục tiêu cụ thể của đề tài gồm:
- Tìm ra phương pháp hiệu quả trong việc cho thuê phòng trọ của người cho thuê.
- Tìm ra phương pháp hiệu quả trong việc đi tìm phòng trọ của người đi thuê.
- Tìm ra phương pháp quản lí hiệu quả các hợp đồng cho thuê, hoá đơn chi trả điện, nước, tiền thuê hàng tháng,…
- Ứng dụng ngôn ngữ Dart và công nghệ Flutter vào xây dựng ứng dụng di động cho thuê phòng trọ.
- Ứng dụng ngôn ngữ GoLang và công nghệ GraphQL và GRPC vào xây dựng backend cho ứng dụng.
- Ứng dụng công nghệ React JS vào xây dựng website quản lí cho người quản trị.
Phương pháp nghiên cứu
Phương pháp lý thuyết được triển khai bằng cách nghiên cứu có hệ thống các tài liệu liên quan đến nội dung nghiên cứu, đặc biệt tập trung vào các ngôn ngữ lập trình và các framework phổ biến như Flutter, GoLang và ReactJS Thông qua rà soát và phân tích các nguồn tài liệu này, bài viết xác định các yếu tố kỹ thuật và chức năng cần thiết cho hệ thống quản lý cho thuê, đồng thời làm rõ nhu cầu và hành vi của hai nhóm người dùng chủ đạo là người cho thuê và người đi thuê Kết quả của quá trình này cung cấp cơ sở lý thuyết vững chắc để lựa chọn công nghệ phù hợp và định hình khung chức năng cho dự án, từ đó tối ưu hóa hiệu suất phát triển và trải nghiệm người dùng.
Phương pháp thực nghiệm tập trung vào nghiên cứu và xây dựng các phương thức đặt cọc, thuê phòng và tìm phòng, đồng thời tối ưu hóa trao đổi thông tin qua tin nhắn và quản lý hiệu quả quá trình thuê trọ Đồng thời phát triển một ứng dụng cho thuê phòng trọ và tiến hành đánh giá kết quả để cải thiện trải nghiệm người dùng và hiệu suất vận hành trên thị trường cho thuê phòng.
Ý nghĩa của đề tài
Đề tài tập trung ứng dụng công nghệ thông tin vào lĩnh vực bất động sản, đặc biệt là ứng dụng cho thuê phòng trọ, nhằm đẩy mạnh quá trình số hóa và tối ưu hóa giao dịch Mục tiêu hướng đến mọi người dùng, đặc biệt hữu ích cho sinh viên, người lao động xa nhà và người môi giới, giúp họ tiếp cận dịch vụ cho thuê nhanh chóng, an toàn và tiện lợi hơn thông qua các kênh CNTT Đóng góp chính của nghiên cứu là đề xuất phương pháp cho thuê và cho thuê lại phù hợp, rõ ràng và nhanh chóng, đi kèm đầy đủ các mẫu hợp đồng, hoá đơn thanh toán và các cuộc trao đổi qua tin nhắn để tăng tính minh bạch và hiệu quả giao dịch.
Bố cục của đề tài
Dựa trên các nội dung nghiên cứu, nhằm đạt mục tiêu đề ra và đảm bảo tính logic, ngoài phần mở đầu và phần kết luận, đồ án được tổ chức thành các chương có trình tự hợp lý nhằm trình bày đầy đủ quá trình nghiên cứu từ tổng quan và cơ sở lý thuyết tới phương pháp, kết quả và đánh giá; các chương này đảm bảo người đọc dễ theo dõi và nắm bắt nội dung một cách có hệ thống.
Chương 1: Cơ sở lý thuyết trình bày kết quả nghiên cứu về lập trình đa nền tảng và các cơ sở lý thuyết của ngôn ngữ lập trình Dart, GoLang và JavaScript, đồng thời giới thiệu các framework tương ứng Flutter, GraphQL, gRPC và ReactJS được sử dụng trong việc xây dựng đề tài nhằm làm rõ các phương pháp phát triển đa nền tảng hiệu quả.
Chương 2: Phân tích và thiết kế hệ thống trình bày bài toán và các mô hình hệ thống, đề xuất ý tưởng và chức năng cho phần mềm; đồng thời giới thiệu mô hình thực thể–quan hệ (ER) và sơ đồ phân cấp chức năng làm cơ sở cho thiết kế Việc phân tích chi tiết các chức năng của người dùng và người quản lý giúp xác định các yêu cầu và ưu tiên chức năng, từ đó thiết kế giao diện người dùng trực quan và cơ sở dữ liệu phù hợp, đồng thời xác định các chức năng cốt lõi của hệ thống.
Chương 3: Cài đặt chương trình và kết quả Trong chương này, nêu kết quả thực hiện được của đề tài và trình bày cách cài đặt chương trình.
Đóng góp của đồ án
Trong đồ án thực tập tốt nghiệp này, chúng em đã vận dụng linh hoạt các kiến thức đã học trên giảng đường để triển khai đề tài Bên cạnh đó, chúng em đã cùng nhau trao đổi, bàn bạc và đề xuất ý tưởng với đơn vị thực tập nhằm định hướng các tác vụ của người dùng và xây dựng một sản phẩm thân thiện với người sử dụng, tạo nên một đồ án thực tập tốt nghiệp hoàn chỉnh Những đóng góp chính của đồ án được thể hiện qua việc kết hợp hiệu quả giữa lý thuyết và thực tiễn, tối ưu trải nghiệm người dùng và đáp ứng các yêu cầu từ đơn vị thực tập.
Phân tích rõ ràng vai trò của người sử dụng trong hệ thống
Đối với người đi thuê trọ hoặc căn hộ, người dùng có thể tìm kiếm các tòa nhà hoặc dãy trọ và đặt cọc cho phòng mình muốn thuê Người dùng có thể thanh toán các hoá đơn tiền điện, tiền nước và phí thuê phòng, đồng thời quản lý tất cả hoá đơn trên ứng dụng để đảm bảo sự rõ ràng và chính xác giữa người cho thuê và người thuê Hợp đồng thuê phòng được thể hiện một cách cụ thể và đầy đủ các thông tin cần thiết.
Người cho thuê trọ hoặc căn hộ có thể đăng tải đầy đủ thông tin về tòa nhà hoặc dãy trọ và từng phòng, gồm các tiện ích, điều kiện, giá đặt cọc và giá thuê Họ cũng là người xác nhận các yêu cầu đặt cọc từ người thuê để lập hợp đồng thuê Chủ nhà có thể tạo hoá đơn điện, nước và chi phí thuê cho từng phòng, đồng thời quản lý việc thanh toán hoá đơn trên ứng dụng tiện lợi.
- Đối với người quản lí, họ có thể quản lí toàn bộ các thông tin người dùng, toà nhà, căn hộ, hoá đơn, hợp đồng của hệ thống
Phân tích và thiết kế chức năng thanh toán hoá đơn trực tuyến
Nghiên cứu và triển khai thử nghiệm chức năng thanh toán hoá đơn trực tuyến nhằm đáp ứng sự nhanh chóng, tiện lợi và tiết kiệm thời gian cho người dùng Thanh toán hoá đơn trực tuyến giúp người dùng dễ dàng quản lý tài chính và theo dõi trạng thái hoá đơn một cách trực quan, từ đó nâng cao khả năng kiểm soát chi tiêu Việc thanh toán qua mạng còn tăng tính chuyên nghiệp cho hoạt động kinh doanh và tối ưu quy trình vận hành của ứng dụng.
Thiết kế chức năng nhắn tin cá nhân và nhắn tin nhóm cho ứng dụng
Việc liên lạc giữa người cho thuê và người đi thuê là thực sự cần thiết để trao đổi về hợp đồng, hóa đơn, điện nước và các vấn đề liên quan đến phòng đang thuê Chức năng nhắn tin cá nhân hoặc nhắn tin nhóm đáp ứng nhu cầu trao đổi một cách thuận tiện cho người dùng mà không cần phải dùng một ứng dụng khác để trao đổi các vấn đề liên quan Qua các cuộc trò chuyện này, hai bên có thể nhanh chóng cập nhật và giải quyết các yêu cầu về hợp đồng, thanh toán hóa đơn và các vấn đề liên quan đến phòng cho thuê.
CƠ SỞ LÝ THUYẾT
Tổng quan về ngôn ngữ Dart
Hoàn thành nội dung và viết báo cáo chương 1
Tổng quan về ngôn ngữ Golang
Hệ quản trị cơ sở dữ liệu PostgetQL
Chương 2: Phân tích và thiết kế hệ thống
2.1 Phân tích yêu cầu đề tài
Trịnh Nhật Hạ Vy Nguyễn Đình Toản
Hoàn thành nội dung và viết báo cáo chương 2.
Hoàn thiện mã nguồn cho tất cả chức năng của ứng dụng và trang web (bao gồm Frontend và Backend).
2.4 Biểu đồ ca sử dụng Trịnh Nhật Hạ Vy
2.5 Biểu đồ hoạt động Trịnh Nhật Hạ Vy
2.6 Biểu đồ tuần tự Nguyễn Đình Toản
2.7 Thiết kế cơ sở dữ liệu Nguyễn Đình Toản
Lập trình giao diện cơ bản ứng dụng Trịnh Nhật Hạ Vy
Lập trình giao diện dành cho doanh nghiệp của ứng dụng
Lập trình giao diện dành cho người
Lập trình trang web cho người quản trị
Lập trình giao diện tin nhắn ứng dụng
Lập trình giao diện phương thức thanh toán cho ứng dụng
Lập trình API cơ bản
Lập trình API cho doanh nghiệp
Lập trình API cho người thuê
Lập trình API cho người quản trị
Lập trình API tin nhắn
Lập trình API phương thức thanh toán
Chương 3: Cài đặt chương trình và kết quả
Trịnh Nhật Hạ Vy Nguyễn Đình Toản
04/04/2022 – 08/04/2022 Hoàn thành nội dung và viết báo cáo chương 3.
Chương 4: Kết luận và hướng phát triển
Trịnh Nhật Hạ Vy Nguyễn Đình Toản
11/04/2022 – 15/04/2022Hoàn thành chương 4 Hoàn thiện sản phẩm và báo cáo TTTN4.2 Định hướng phát triển
KẾ HOẠCH THỰC HIỆN ĐỀ TÀI CỦA NHÓM
DANH MỤC BẢNG BIỂU vi
DANH MỤC HÌNH VẼ vii
1 Lí do chọn đề tài 2
3 Đối tượng và phạm vi nghiên cứu 4
6 Bố cục của đề tài 4
7 Đóng góp của đồ án 5
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 7
1.1 Tổng quan về ngôn ngữ Dart 7
1.1.2 Lịch sử hình thành ngôn ngữ Dart 7
1.1.3 Tại sao sử dụng ngôn ngữ Dart 8
1.2 Tổng quan về framework Flutter 10
1.2.5 Ưu và nhược điểm của Flutter 14
1.3 Tổng quan về ngôn ngữ Javascript 15
1.3.4 Ưu điểm và nhược điểm của Javascript 18
1.3.5 Sự khác nhau giữa Javascript với các ngôn ngữ lập trình web khác 20
1.4 Tổng quan về framework ReactJS 21
1.4.3 Ưu và nhược điểm của ReactJS 23
1.4.4 Sự phát triển của ReactJS 24
1.5 Tổng quan về ngôn ngữ Golang 25
1.5.2 Lịch sử hình thành ngôn ngữ Golang 25
1.5.4 Ưu và nhược điểm của Golang 27
1.5.5 Các lĩnh vực ứng dụng Golang 28
1.6.3 Ưu và nhược điểm của gRPC 31
1.7.4 Ưu và nhược điểm GraphQL 34
1.8 Hệ quản trị cơ sở dữ liệu PostgetQL 34
1.8.4 So sánh PostgetSQL và MySQL 36
CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 40
2.1 Phân tích yêu cầu đề tài 40
2.4 Biểu đồ ca sử dụng 44
2.4.1 Biểu đồ ca sử dụng của hệ thống 46
2.4.2 Biểu đồ ca sử dụng quản lí (dành cho người quản trị) 46
2.4.3 Biểu đồ ca sử dụng nhắn tin của hệ thống 47
2.5.1 Biểu đồ hoạt động đăng kí 49
2.5.2 Biểu đồ hoạt động đăng nhập 50
2.5.3 Biểu đồ hoạt động khôi phục mật khẩu 50
2.5.4 Biểu đồ hoạt động tạo toà nhà 51
2.5.5 Biểu đồ hoạt động chỉnh sửa toà nhà 51
2.5.6 Biểu đồ hoạt động xoá toà nhà 51
2.5.7 Biểu đồ hoạt động thêm phòng 52
2.5.8 Biểu đồ hoạt động chỉnh sửa phòng 52
2.5.9 Biểu đồ hoạt động xoá phòng 52
2.5.10 Biểu đồ hoạt động tạo hoá đơn 52
2.5.11 Biểu đồ hoạt động chỉnh sửa hoá đơn 53
2.5.12 Biểu đồ hoạt động xoá hoá đơn 53
2.5.13 Biểu đồ hoạt động đặt cọc 53
2.5.14 Biểu đồ hoạt động xác nhận đặt cọc 54
2.5.15 Biểu đồ hoạt động rút lại tiền đặt cọc 54
2.5.16 Biểu đồ hoạt động thanh toán hoá đơn 55
2.5.17 Biểu đồ hoạt động xác nhận trạng thái hoá đơn 55
2.5.18 Biểu đồ hoạt động tạo cuộc trò chuyện 55
2.5.19 Biểu đồ hoạt động tạo nhóm hội thoại 56
2.5.20 Biểu đồ hoạt động cập nhật cuộc hội thoại nhóm 56
2.5.21 Biểu đồ hoạt động xoá cuộc hội thoại 56
2.5.22 Biểu đồ hoạt động nhắn tin 57
2.5.23 Biểu đồ hoạt động gửi hình ảnh 57
2.5.24 Biểu đồ hoạt động xoá tin nhắn 57
2.6.1 Biểu đồ tuần tự đăng kí với email 60
2.6.2 Biểu đồ tuần tự đăng nhập với email 60
2.6.3 Biểu đồ tuần tự tạo toà nhà 61
2.6.4 Biểu đồ tuần tự chỉnh sửa toà nhà 61
2.6.5 Biểu đồ tuần tự xoá toà nhà 62
2.6.6 Biểu đồ tuần tự thêm phòng 62
2.6.7 Biểu đồ tuần tự chỉnh sửa phòng 63
2.6.8 Biểu đồ tuần tự xoá phòng 63
2.6.9 Biểu đồ tuần tự đặt phòng 64
2.6.10 Biểu đồ tuần tự tạo hoá đơn 65
2.6.11 Biểu đồ tuần tự chỉnh sửa hoá đơn 66
2.6.12 Biểu đồ tuần tự thanh toán hoá đơn 66
2.7 Thiết kế cơ sở dữ liệu 67
2.7.1 Thiết kế bảng dữ liệu 67
2.7.2 Thiết kế biểu đồ lớp 75
2.7.3 Mô hình cơ sở dữ liệu 76
CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ 77
3.1.1 Cài đặt chương trình hệ thống 77
3.1.3 Cài đặt trang web quản lí 77
3.2.2 Giao diện đăng nhập/đăng kí 78
3.2.3 Giao diện tạo tài khoản doanh nghiệp 79
3.2.4 Giao diện tìm kiếm toà nhà 79
3.2.5 Giao diện chi tiết toà nhà 80
3.2.6 Giao diện chi tiết căn hộ 81
3.2.7 Giao diện đặt cọc phòng 81
3.2.8 Giao diện rút lại tiền cọc 82
3.2.9 Giao diện hoá đơn của người dùng 83
3.2.10 Giao diện thanh toán hoá đơn 83
3.2.12 Giao diện quản lí toà nhà 85
3.2.13 Giao diện quản lí căn hộ 85
3.2.14 Giao diện thêm toà nhà 86
3.2.15 Giao diện chỉnh sửa toà nhà 86
3.2.16 Giao diện xoá toà toà nhà 87
3.2.17 Giao diện thêm căn hộ 88
3.2.18 Giao diện chỉnh sửa căn hộ 88
3.2.19 Giao diện xoá căn hộ 89
3.2.21 Giao diện yêu cầu đặt cọc 90
3.2.22 Giao diện danh sách hợp đồng và hoá đơn 91
3.2.23 Giao diện tạo hoá đơn 91
3.2.24 Giao diện chỉnh sửa hoá đơn 92
3.2.25 Giao diện xoá hoá đơn 93
3.2.26 Giao diện xác nhận thanh toán 93
3.2.27 Giao diện danh sách cuộc trò chuyện 94
3.2.28 Giao diện chi tiết cuộc trò chuyện 95
3.2.29 Giao diện thông tin cuộc trò chuyện 95
3.2.30 Giao diện tạo nhóm trò chuyện 96
3.2.31 Giao diện thêm người dùng vào nhóm trò chuyện 96
3.2.32 Giao diện thông báo của ứng dụng 97
3.2.34 Giao diện cập nhật tài khoản 98
3.2.35 Giao diện đăng nhập (website quản lí) 98
3.2.36 Giao diện quản lí người dùng (website quản lí) 99
3.2.37 Giao diện quản lí toà nhà, căn hộ (website quản lí) 101
3.2.38 Giao diện quản lí hợp đồng (website quản lí) 106
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 109
2 Hạn chế của đề tài 110
Bảng 1: So sánh PostgetSQL và MySQL 36
Bảng 2: Đặc tả hệ thống 44
Bảng 9: Thực thể BUILDING_COMMENT 71
Bảng 12: Thực thể CHAT_ROOM 72
Bảng 13: Thực thể CHAT_MESSAGE 73
Bảng 14: Thực thể CHAT_MEMBER 73
Bảng 15: Thực thể USER_MESSAGE 74
Bảng 16: Thực thể USER_CHAT_ROOM 74
Hình 1: Tính năng của ngôn ngữ Dart 8
Hình 2: Kiến trúc của Flutter 11
Hình 3: Cách hoạt động của Javascript 18
Hình 4: Thành phần Vitural DOM 22
Hình 5: Mô hình giao tiếp client/server trong RPC 29
Hình 7: Các kí hiệu của biểu đồ ca sử dụng 46
Hình 8: Biểu đồ ca sử dụng của hệ thống 46
Hình 9: Biểu đồ ca sử dụng quản lí (dành cho người quản trị) 47
Hình 10: Biểu đồ ca sử dụng nhắn tin 47
Hình 11: Kí hiệu các hoạt động trong biểu đồ hoạt động 48
Hình 12: Kí hiệu đồng hoá các hoạt động trong biểu đồ hoạt động 48
Hình 13: Kí hiệu đồng hoá có điều kiện trong biểu đồ hoạt động 49
Hình 14: Kí hiệu quyết định trong biểu đồ hoạt động 49
Hình 15: Kí hiệu quyết định kết hợp trong biểu đồ hoạt động 49
Hình 16: Biểu đồ hoạt động đăng kí 50
Hình 17: Biểu đồ hoạt động đăng nhập 50
Hình 18: Biểu đồ hoạt động khôi phục mật khẩu 51
Hình 19: Biểu đồ hoạt động tạo toà nhà 51
Hình 20: Biểu đồ hoạt động chỉnh sửa toà nhà 51
Hình 21: Biểu đồ hoạt động xoá toà nhà 52
Hình 22: Biểu đồ hoạt động thêm phòng 52
Hình 23: Biểu đồ hoạt động chỉnh sửa phòng 52
Hình 24: Biểu đồ hoạt động xoá phòng 52
Hình 25: Biểu đồ hoạt động tạo hoá đơn 53
Hình 26: Biểu đồ hoạt động chỉnh sửa hoá đơn 53
Hình 27: Biểu đồ hoạt động xoá phòng 53
Hình 28: Biểu đồ hoạt động đặt cọc 54
Hình 29: Biểu đồ hoạt động xác nhận đặt cọc 54
Hình 30: Biểu đồ hoạt động rút lại tiền cọc 55
Hình 31: Biểu đồ hoạt động thanh toán hoá đơn 55
Hình 32: Biểu đồ hoạt động xác nhận trạng thái hoá đơn 55
Hình 33: Biểu đồ hoạt động tạo cuộc trò chuyện 56
Hình 34: Biểu đồ hoạt động tạo nhóm hội thoại 56
Hình 35: Biểu đồ hoạt động cập nhật cuộc hội thoại nhóm 56
Hình 36: Biểu đồ hoạt động xoá cuộc hội thoại 56
Hình 37: Biểu đồ hoạt động nhắn tin 57
Hình 38: Biểu đồ hoạt động gửi hình ảnh 57
Hình 39: Biểu đồ hoạt động xoá tin nhắn 57
Hình 40: Kí hiệu đối tượng trong biểu đồ tuần tự 57
Hình 41: Kí hiệu thời gian hoạt động trong biểu đồ tuần tự 58
Hình 42: Kí hiệu cách gửi thông điệp trong biểu đồ tuần tự 58
Hình 43: Kí hiệu thông điệp trả về trong biểu đồ tuần tự 58
Hình 44: Kí hiệu thông điệp gửi trong biểu đồ tuần tự 59
Hình 45: Kí hiệu tạo/huỷ phương thức trong biểu đồ tuần tự 59
Hình 46: Kí hiệu lặp thông điệp trong biểu đồ tuần tự 59
Hình 47: Kí hiệu lặp thông điệp có điều kiện trong biểu đồ tuần tự 59
Hình 48: Kí hiệu gửi phụ thuộc có điều kiện trong biểu đồ tuần tự 60
Hình 49: Kí hiệu đệ quy trong biểu đồ tuần tự 60
Hình 50: Biểu đồ tuần tự đăng kí với email 60
Hình 51: Biểu đồ tuần tự đăng nhập với email 61
Hình 52: Biểu đồ tuần tự tạo toà nhà 61
Hình 53: Biểu đồ tuần tự chỉnh sửa toà nhà 62
Hình 54: Biểu đồ tuần tự xoá toà nhà 62
Hình 55: Biểu đồ tuần tự thêm phòng 63
Hình 56: Biểu đồ tuần tự chỉnh sửa phòng 63
Hình 57: Biểu đồ tuần tự xoá phòng 64
Hình 58: Biểu đồ tuần tự đặt phòng 65
Hình 59: Biểu đồ tuần tự tạo hoá đơn 66
Hình 60: Biểu đồ tuần tự chỉnh sửa hoá đơn 66
Hình 61: Biểu đồ tuần tự thanh toán hoá đơn 67
Hình 62: Biểu đồ lớp của hệ thống 76
Hình 63: Sơ đồ quan hệ cơ sở dữ liệu 76
Hình 64: Giao diện khởi động 1 78
Hình 65: Giao diện khởi động 2 78
Hình 66: Giao diện khởi động 3 78
Hình 67: Màn hình tạo tài khoản 79
Hình 68: Màn hình đăng kí 79
Hình 69: Màn hình đăng nhập 79
Hình 70: Màn hình tạo tài khoản doanh nghiệp 1 79
Hình 71: Màn hình tạo tài khoản doanh nghiệp 2 79
Hình 72: Màn hình tìm kiếm 80
Hình 73: Màn hình tuỳ chỉnh 80
Hình 74: Màn hình xem bản đồ 80
Hình 75: Màn hình chi tiết 80
Hình 76: Màn hình bình luận toà nhà 80
Hình 77: Màn hình bản đồ vị trí của toà nhà 80
Hình 78: Màn hình chi tiết căn hộ 1 81
Hình 79: Màn hình chi tiết căn hộ 2 81
Hình 80: Màn hình chọn phương pháp 82
Hình 81: Màn hình thông báo 82
Hình 82: Màn hình rút lại tiền cọc 82
Hình 83: Màn hình xác nhận rút lại tiền cọc 82
Hình 84: Giao diện danh sách hoá đơn 83
Hình 85: Màn hình chi tiết hoá đơn 83
Hình 86: Màn hình chọn phương thức thanh toán 84
Hình 87: Màn hình xác nhận thanh toán thành công 84
Hình 88: Màn hình chờ xác nhận đã thanh toán 84
Hình 89: Màn hình danh sách hợp đồng 84
Hình 90: Màn hình chi tiết hoá đơn (của người dùng) 84
Hình 91: Màn hình quản lí toà nhà 85
Hình 92: Màn hình chi tiết toà nhà 85
Hình 93: Màn hình căn hộ 85
Hình 94: Màn hình căn hộ (1) 85
Hình 95: Màn hình căn hộ (2) 85
Hình 96: Màn hình thêm toà nhà (1) 86
Hình 97: Màn hình thêm toà nhà (2) 86
Hình 98: Màn hình ghim vị trí toà nhà trên bản đồ 86
Hình 99: Màn hình chọn chỉnh sửa 87
Hình 100: Màn hình chỉnh sửa toà nhà (1) 87
Hình 101: Màn hình chỉnh sửa toà nhà (2) 87
Hình 102: Màn hình xoá toà nhà (1) 87
Hình 103: Màn hình xoá toà nhà (2) 87
Hình 104: Màn hình thêm phòng mới (1) 88
Hình 105: Màn hình thêm phòng mới (2) 88
Hình 106: Màn hình chỉnh sửa phòng (1) 89
Hình 107: Màn hình chính sửa phòng (2) 89
Hình 108: Màn hình chỉnh sửa phòng (3) 89
Hình 109: Màn hình xoá phòng (1) 89
Hình 110: Màn hình xoá phòng (2) 89
Hình 111: Màn hình quản lí tài chính 90
Hình 112: Màn hình danh sách các yêu cầu đặt cọc 90
Hình 113: Màn hình danh sách các hợp đồng 91
Hình 114: Màn hình danh sách các hoá đơn 91
Hình 115: Màn hình tạo hoá đơn mới (1) 92
Hình 116: Màn hình tạo hoá đơn (2) 92
Hình 117: Màn hình chi tiết hoá đơn 92
Hình 118: Màn hình chỉnh sửa hoá đơn (1) 92
Hình 119: Màn hình chỉnh sửa hoá đơn (2) 92
Hình 120: Màn hình xoá hoá đơn 93
Hình 121: Màn hình xác nhận xoá hoá đơn 93
Hình 122: Màn hình xác nhận thanh toán 94
Hình 123: Màn hình thanh toán thành công 94
Hình 124: Màn hình danh sách các cuộc trò chuyện 94
Hình 125: Màn hình cuộc trò chuyện 1-1 95
Hình 126: Màn hình cuộc trò chuyện nhóm 95
Hình 127: Màn hình thông tin người trò chuyện 95
Hình 128: Màn hình thông tin trò chuyện nhóm 95
Hình 129: Màn hình danh bạ người dùng 96
Hình 130: Màn hình tạo nhóm trò chuyện 96
Hình 131: Màn hình chi tiết nhóm 97
Hình 132: Màn hình thêm người dùng 97
Hình 133: Màn hình sau khi thêm thành công 97
Hình 134: Màn hình thông báo (1) 97
Hình 135: Màn hình thông báo (2) 97
Hình 136: Màn hình tài khoản người dùng 98
Hình 137: Màn hình chỉnh sửa tài khoản 98
Hình 138: Màn hình chỉnh sửa mật khẩu 98
Hình 139: Trang web đăng nhập dành cho người quản lí 99
Hình 140: Trang web quản lí người dùng 99
Hình 141: Thông tin chi tiết của tài khoản 100
Hình 142: Form thêm mới tài khoản 100
Hình 143: Form chỉnh sửa tài khoản 101
Hình 145: Trang web quản lí toà nhà 102
Hình 146: Chi tiết toà nhà 102
Hình 147: Form thêm mới toà nhà 103
Hình 148: Form chỉnh sửa toà nhà 103
Hình 150: Chi tiết căn hộ 104
Hình 151: Form thêm mới căn hộ 105
Hình 152: Form chỉnh sửa căn hộ 106
Hình 154: Trang web quản lí hợp đồng 107
Hình 155: Chi tiết hợp đồng 107
Hình 156: Chỉnh sửa hợp đồng 108
Hình 157: Xác nhận kết thúc hợp đồng 108
1 Lí do chọn đề tài
Thuê trọ hiện nay là mối quan tâm hàng đầu của nhiều người, đặc biệt là sinh viên và người lao động xa nhà vì công việc và học tập, họ mong tìm một nơi ở phù hợp, an ninh, sạch sẽ và thuận tiện cho việc đến trường, đi làm Những yếu tố quan trọng khi chọn phòng trọ gồm an ninh đảm bảo, môi trường sạch sẽ và chi phí thuê phù hợp với khả năng chi trả, cùng với vị trí thuận tiện giao thông Thông thường nhà trọ được xây dựng ở mặt tiền đường để dễ tiếp cận, nhưng với nhu cầu ngày càng cao, nhiều khu trọ cũng xuất hiện ở hẻm, ngõ và ở các vị trí khác nhau, dẫn tới mức giá thuê đa dạng tùy khu vực.
Quản lý người thuê trọ là thách thức dù bạn vận hành một dãy nhà trọ nhỏ 10-20 phòng hay một khu nhà trọ quy mô lên tới hàng trăm phòng; mỗi căn phòng là một khách hàng riêng nên số lượng phòng càng nhiều thì phát sinh vấn đề càng nhiều Đối tượng khách hàng rộng và đa dạng—from sinh viên, người mới đi làm, công nhân, hộ gia đình trẻ cho tới người lao động nhập cư— khiến bài toán quản lý trở nên nan giải với nhiều nhà đầu tư Khối lượng công việc khi quản lý quy mô lớn là rất lớn, từ sửa chữa hư hỏng, tân trang, nâng cấp khu nhà trọ cho cách thức quản lý an ninh, nhắc nhở vi phạm nội quy, ghi chỉ số điện nước cho thuê cho đến thu tiền nhà, và tất cả đều có thể khiến chủ sở hữu đau đầu vì không phải khách thuê nào cũng chủ động tuân thủ.
Với sinh viên và người lao động đi tìm phòng trọ, khi chọn nơi ở họ cần quan tâm đến chất lượng phòng (tường chắc chắn, sơn không bong tróc, cửa và khóa an toàn, đủ cửa sổ và thông gió, mái che để tránh phòng bí bách, hệ thống cấp nước không rò rỉ hay tắc) và vấn đề vị trí, an ninh; người thuê cũng phải thận trọng khi giao dịch với chủ nhà hoặc môi giới để tránh bị lừa đảo do thiếu các giấy tờ như giấy sở hữu và các giấy tờ pháp lý chứng minh điều kiện cho thuê Giá thuê phụ thuộc vào quận/huyện và loại căn hộ, và còn các phí phụ như điện nước wifi gửi xe Hiện nay, thay vì tìm kiếm thủ công, người thuê có thể dùng Google, Facebook và các nhóm cho thuê trọ để xem vị trí, tiện ích, giá thuê và hình ảnh trực quan, nhưng các vấn đề liên quan đến thanh toán, thỏa thuận và hợp đồng vẫn cần được quản lý qua một ứng dụng để phù hợp giữa người thuê và người cho thuê.
Nhờ sự hỗ trợ mạnh mẽ của các ngôn ngữ lập trình và sự ra đời của các framework, nhóm đã chọn đề tài Nghiên cứu lập trình di động đa nền tảng và xây dựng ứng dụng cho thuê phòng trọ dựa trên sự kết hợp Flutter, Golang và GraphQL để thực hiện thực tập tốt nghiệp Đề tài nhằm đáp ứng yêu cầu của chương trình đào tạo đồng thời mong muốn ứng dụng công nghệ vào quá trình tìm hiểu và đề xuất một giải pháp tối ưu cho công việc cho thuê phòng trọ online.
Mục tiêu của đồ án là tìm ra giải pháp hiệu quả để giải quyết công cho thuê phòng trọ Các mục tiêu cụ thể của đề tài gồm:
- Tìm ra phương pháp hiệu quả trong việc cho thuê phòng trọ của người cho thuê.
- Tìm ra phương pháp hiệu quả trong việc đi tìm phòng trọ của người đi thuê.
- Tìm ra phương pháp quản lí hiệu quả các hợp đồng cho thuê, hoá đơn chi trả điện, nước, tiền thuê hàng tháng,…
- Ứng dụng ngôn ngữ Dart và công nghệ Flutter vào xây dựng ứng dụng di động cho thuê phòng trọ.
- Ứng dụng ngôn ngữ GoLang và công nghệ GraphQL và GRPC vào xây dựng backend cho ứng dụng.
- Ứng dụng công nghệ React JS vào xây dựng website quản lí cho người quản trị.
3 Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu gồm:
- Các chức năng của người cho thuê, người đi thuê.
- Thông tin các tỉnh/thành, quận/huyện, phường/xã.
- Thông tin liên quan đến hợp đồng cho thuê.
- Thông tin liên quan đến hoá đơn thanh toán.
- Cổng thanh toán ví điện tử.
- Các chức năng nhắn tin riêng và nhắn tin nhóm.
Giới hạn phạm vi nghiên cứu trong đề tài gồm:
Chúng tôi tập trung xây dựng một hệ thống cho thuê trọ kết nối hiệu quả giữa người cho thuê và người đi thuê, giúp hai phía dễ dàng tiếp cận và giao dịch với nhau Người cho thuê có thể đăng tin phòng trọ và quản lý thông tin cho thuê một cách thuận tiện, cập nhật trạng thái phòng nhanh chóng Người đi thuê có thể tìm kiếm phòng trọ theo giá cả hợp lý và các tiện ích phù hợp với nhu cầu, dễ dàng lọc theo khu vực và thời gian thuê Hệ thống cho thuê cho phép hai bên quản lý hợp đồng và thanh toán thuê một cách tiện lợi từ ký kết đến thanh toán định kỳ Nhờ tối ưu hóa công cụ tìm kiếm và các tiêu chí về giá, tiện ích và khu vực, trải nghiệm người dùng được cải thiện và quy trình cho thuê trở nên hiệu quả hơn.
- Đề tài được xây dựng bởi các ngôn ngữ lập trình như: Dart, Javascript,
Go, HTML, CSS, với công nghệ Flutter, GoLang, GraphQL, GRPC và ReactJS.
Phương pháp lý thuyết được triển khai thông qua việc phân tích và tổng hợp các tài liệu liên quan đến nội dung nghiên cứu, đặc biệt chú trọng đến các ngôn ngữ lập trình và các framework như Flutter, GoLang và ReactJS Việc rà soát nguồn tin giúp làm rõ các đặc điểm kỹ thuật, ưu nhược điểm và ứng dụng của từng ngôn ngữ, từ đó xác định sự phù hợp với các mục tiêu phát triển dự án Đồng thời, nghiên cứu xem xét nhu cầu của người cho thuê và người đi thuê để nắm bắt các yếu tố ảnh hưởng đến quyết định sử dụng công nghệ trong các giải pháp cho thuê và quản lý bất động sản Các kết quả từ quá trình phân tích được dùng để xây dựng khung phân tích và đề xuất các hướng tối ưu cho sản phẩm, đồng thời tối ưu hóa nội dung cho SEO bằng cách khai thác những từ khóa liên quan như Flutter, GoLang, ReactJS, ngôn ngữ lập trình, framework và nhu cầu thuê – cho thuê.
Phương pháp thực nghiệm được triển khai bằng nghiên cứu và xây dựng các phương pháp đặt cọc, thuê phòng, tìm phòng, đồng thời tối ưu hóa việc trao đổi thông tin qua tin nhắn và quản lý hiệu quả hoạt động cho thuê phòng trọ, với mục tiêu phát triển một ứng dụng thuê phòng trọ và tiến hành đánh giá kết quả nhằm cải thiện trải nghiệm người dùng và hiệu quả vận hành của dịch vụ cho thuê.
5 Ý nghĩa của đề tài Đề tài đang hướng vào ứng dụng công nghệ thông tin trong lĩnh vực bất động sản, cụ thể là ứng dụng cho thuê phòng trọ Việc ứng dụng công nghệ thông tin vào lĩnh vực này nhằm đẩy mạnh quá trình áp dụng công nghệ thông tin vào cuộc sống Và đề tài hướng đến người sử dụng là tất cả mọi người, đặc biệt có ích đối với các sinh viên, người lao động sống xa nhà, hay người môi giới,… Đóng góp chính của đề tài là đề xuất phương pháp thích hợp cho người đi thuê và người cho thuê một cách nhanh chóng và rõ ràng, gồm đầy đủ các bản hợp đồng, hoá đơn thanh toán và các cuộc trao đổi qua tin nhắn.
6 Bố cục của đề tài
Trên cơ sở các nội dung nghiên cứu, bài viết được thiết kế để đạt mục tiêu đề ra và đảm bảo tính logic cho toàn đồ án Ngoài phần mở đầu và phần kết luận, đồ án được tổ chức thành các chương nhằm trình bày một cách có hệ thống các nội dung từ cơ sở lý thuyết, phương pháp và dữ liệu đến phân tích, kết quả và thảo luận Hệ thống chương mục theo cách này giúp người đọc dễ theo dõi luận cứ, tối ưu hóa khả năng tra cứu và tăng tính nhất quán cho bài viết ở cả khía cạnh nội dung lẫn SEO.
Chương 1 Cơ sở lý thuyết Chương này trình bày kết quả nghiên cứu về lập trình đa nền tảng; trình bày các cơ sở lí thuyết về ngôn ngữ lập trình: Dart, GoLang, Javascript cùng các framework tương ứng Flutter, GraphQL, GRPC, ReactJS được sử dụng trong việc xây dựng đề tài.
Chương 2: Phân tích và thiết kế hệ thống Chương này giới thiệu bài toán và đưa ra các mô hình hệ thống; đề xuất các ý tưởng, chức năng cho phần mềm; trình bày các mô hình thực thể quan hệ, sơ đồ phân cấp chức năng Phân tích chi tiết các chức năng của người sử dụng và người quản lí; thiết kế giao diện người dùng và thiết dữ liệu, chức năng cho hệ thống.
Chương 3: Cài đặt chương trình và kết quả Trong chương này, nêu kết quả thực hiện được của đề tài và trình bày cách cài đặt chương trình.
7 Đóng góp của đồ án
Trong đồ án thực tập tốt nghiệp này, chúng em đã vận dụng linh hoạt những kiến thức đã học trên giảng đường để thực hiện đề tài; đồng thời, chúng em đã trao đổi, bàn bạc và đề xuất ý tưởng, xác định hướng các tác vụ của người dùng với đơn vị thực tập nhằm xây dựng một đồ án thực tập tốt nghiệp hoàn chỉnh và một sản phẩm thân thiện cho người sử dụng Những đóng góp chính của đồ án thực tập tốt nghiệp bao gồm việc kết nối lý thuyết với thực hành, tăng cường sự hợp tác giữa sinh viên và đơn vị thực tập, và cho ra một sản phẩm có trải nghiệm người dùng tốt cùng khả năng ứng dụng cao.
Phân tích rõ ràng vai trò của người sử dụng trong hệ thống
Đối với người đi thuê trọ/căn hộ, ứng dụng cho thuê cho phép tìm kiếm các tòa nhà/dãy trọ, chọn phòng và đặt cọc phòng mình muốn thuê Người dùng có thể thanh toán các hoá đơn tiền điện, nước và chi phí thuê phòng, đồng thời quản lý tất cả hoá đơn trên ứng dụng để đảm bảo tính rõ ràng và chính xác giữa người thuê và cho thuê Hợp đồng thuê phòng được hiển thị đầy đủ các thông tin cần thiết, giúp quá trình thuê diễn ra thuận tiện và an toàn.
Người cho thuê trọ/căn hộ có thể đăng tải thông tin chi tiết về tòa nhà hoặc dãy trọ và từng phòng, bao gồm tiện ích, điều kiện thuê, giá đặt cọc và giá thuê Họ là người xác nhận các yêu cầu đặt cọc từ người thuê để lập hợp đồng thuê Chủ nhà có thể tạo hóa đơn điện nước và chi phí thuê cho từng phòng, đồng thời quản lý thanh toán hóa đơn trên ứng dụng tiện lợi.
- Đối với người quản lí, họ có thể quản lí toàn bộ các thông tin người dùng, toà nhà, căn hộ, hoá đơn, hợp đồng của hệ thống
Phân tích và thiết kế chức năng thanh toán hoá đơn trực tuyến
Nghiên cứu và triển khai thực nghiệm chức năng thanh toán hoá đơn trực tuyến nhằm đáp ứng sự nhanh chóng, tiện lợi và tiết kiệm thời gian cho người dùng; đồng thời cho phép người dùng dễ dàng quản lý và kiểm soát tài chính, theo dõi trạng thái hoá đơn một cách trực quan Việc thanh toán trực tuyến cũng tăng tính chuyên nghiệp trong kinh doanh và tối ưu quy trình hoạt động của ứng dụng, nâng cao trải nghiệm người dùng và độ tin cậy của hệ thống.
Thiết kế chức năng nhắn tin cá nhân và nhắn tin nhóm cho ứng dụng