1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

204 16 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 đề 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
Tác giả Trịnh Nhật Hạ Vy, Nguyễn Đình Toản
Người hướng dẫn TS. Nguyễn Thị Ngọc Anh
Trường học Trường Đại học Sư phạm Khoa Công nghệ Thông tin
Chuyên ngành Công nghệ Thông tin
Thể loại Báo cáo thực tập tốt nghiệp
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 204
Dung lượng 15,77 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

  • 1. Lí do chọn đề tài (30)
  • 2. Mục tiêu nghiên cứu (31)
  • 3. Đối tượng và phạm vi nghiên cứu (32)
  • 4. Phương pháp nghiên cứu (32)
  • 5. Ý nghĩa của đề tài (33)
  • 6. Bố cục của đề tài (34)
  • 7. Đóng góp của đồ án (34)
  • CHƯƠNG I: CƠ SỞ LÝ THUYẾT (36)
    • 1.1 Tổng quan về ngôn ngữ Dart (7)
    • 1.2 Tổng quan về framework Flutter (7)
    • 1.3 Tổng quan về ngôn ngữ Javascript (7)
    • 1.4 Tổng quan về framework ReactJS (7)
      • 1.4.1 Khái niệm về ReactJS (56)
      • 1.4.2 Đặc trưng của ReactJS (57)
      • 1.4.3 Ưu và nhược điểm của ReactJS (59)
      • 1.4.4 Sự phát triển của ReactJS (61)
    • 1.5 Tổng quan về ngôn ngữ Golang (7)
      • 1.5.1 Khái niệm Golang (61)
      • 1.5.2 Lịch sử hình thành ngôn ngữ Golang (62)
      • 1.5.3 Đặc điểm của Golang (62)
      • 1.5.4 Ưu và nhược điểm của Golang (63)
      • 1.5.5 Các lĩnh vực ứng dụng Golang (66)
    • 1.6 Tổng quan về gRPC (7)
      • 1.6.1 Khái niệm gRPC (66)
      • 1.6.2 Các kiểu gRPC APIs (69)
      • 1.6.3 Ưu và nhược điểm của gRPC (70)
    • 1.7 Tổng quan về GraphQL (7)
      • 1.7.1 Khái niệm GraphQL (70)
      • 1.7.2 Cấu trúc GraphQL (71)
      • 1.7.3 Đặc điểm GraphQL (72)
      • 1.7.4 Ưu và nhược điểm GraphQL (74)
    • 1.8 Hệ quản trị cơ sở dữ liệu PostgetQL (7)
      • 1.8.1 Khái niệm về PostgetQL (76)
      • 1.8.2 Tính năng của PostgetQL (76)
      • 1.8.3 Vai trò của PostgetSQL (77)
      • 1.8.4 So sánh PostgetSQL và MySQL (77)
    • 2.1 Phân tích yêu cầu đề tài (7)
      • 2.1.1 Phát biểu bài toán (83)
      • 2.1.2 Yêu cầu bài toán (85)
    • 2.2 Nghiên cứu hiện trạng (7)
    • 2.3 Đặc tả hệ thống (7)
    • 2.4 Biểu đồ ca sử dụng (7)

Nội dung

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Ề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À GRAP

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,…

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

- Ứ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 tập trung vào nghiên cứu hệ thống các tài liệu liên quan đến nội dung nghiên cứu, gồm tài liệu về các ngôn ngữ lập trình và các framework Flutter, GoLang và ReactJS; đồng thời xem xét các nhu cầu của người cho thuê và người đi thuê để nắm rõ bối cảnh thị trường Việc tổng hợp, đối chiếu và phân tích các nguồn tin giúp làm rõ các khía cạnh kỹ thuật, ưu nhược điểm của công nghệ và xu hướng phát triển của các framework được đề cập Nghiên cứu cũng phân tích ảnh hưởng của các yếu tố kinh tế và hành vi người dùng lên quyết định cho thuê và thuê, từ đó hình thành nền tảng lý thuyết cho phần phân tích sâu và cho chiến lược nội dung tối ưu SEO Các kết quả từ phương pháp này cung cấp cơ sở cho việc viết bài có cấu trúc rõ ràng, với các từ khóa liên quan như ngôn ngữ lập trình, Flutter, GoLang, ReactJS, cho thuê và thuê.

Phương pháp thực nghiệm được áp dụng để nghiên cứu và xây dựng các phương thức đặt cọc, quy trình thuê phòng, và công cụ tìm phòng trọ, đồng thời tối ưu hóa việc trao đổi thông tin qua lại dưới dạng tin nhắn nhằm quản lý hiệu quả hoạt động cho thuê phòng Bên cạnh đó, chúng tôi phát triển một ứng dụng thuê phòng trọ tích hợp các chức năng đặt phòng, quản lý thông tin thanh toán và hỗ trợ liên lạc giữa người cho thuê và người thuê Cuối cùng, chúng tôi tiến hành đánh giá kết quả dựa trên các tiêu chí về trải nghiệm người dùng, tốc độ xử lý giao dịch, độ tin cậy của hệ thống và hiệu quả tối ưu hóa quy trình đặt cọc, tìm phòng và nhận phòng.

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Ý nghĩa của đề tài

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp của Trịnh Nhật Hạ Vy và Nguyễn Đình Toản tập trung 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ọ, nhằm đẩy mạnh việc số hóa và tích hợp CNTT vào cuộc sống người dùng Đề tài hướng tới mọi người, đặc biệt hữu ích cho sinh viên, người lao động xa nhà và người môi giới, với mục tiêu tối ưu hóa quy trình thuê và cho thuê thông qua các giải pháp IT Đóng góp chính của đề tài là đề xuất một phương pháp cho thuê nhanh chóng và rõ ràng cho cả người đi thuê và người cho thuê, gồm đầy đủ các hợp đồng, hoá đơn thanh toán và các trao đổi qua tin nhắn, từ đó nâng cao tính minh bạch, tiện lợi và an toàn trong giao dịch bất động sản cho thuê phòng trọ.

Bố cục của đề tài

Trên cơ sở nội dung nghiên cứu, nhằm đạt mục tiêu đề ra và đảm bảo tính logic cho đồ á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 chính theo trình tự hợp lý: tổng quan tài liệu và cơ sở lý thuyết, phương pháp nghiên cứu, kết quả và phân tích, thảo luận và kết luận, nhằm cung cấp cấu trúc rõ ràng cho người đọc và tối ưu hóa khả năng nhận diện nội dung trên các công cụ tìm kiếm.

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 về 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 để xây dựng đề tài.

Chương 2: Phân tích và thiết kế hệ thống giới thiệu bài toán, đề xuất các mô hình hệ thống và ý tưởng chức năng cho phần mềm; đồng thời trình bày các mô hình thực thể–quan hệ (ER) và sơ đồ phân cấp chức năng như công cụ phân tích–thiết kế Chương cũng phân tích chi tiết các chức năng của người dùng và người quản trị, từ đó làm căn cứ cho thiết kế giao diện người dùng, thiết kế dữ liệu và 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 những kiến thức đã học trên giảng đường để triển khai đề tài một cách toàn diện và sâu sắc Bên cạnh đó, chúng em đã cùng nhau trao đổi, bàn bạc, đưa ra ý tưởng và đề xuất hướng các tác vụ của người dùng cù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 với người dùng Những đóng góp chính của đồ án thực tập tốt nghiệp tập trung vào việc áp dụng kiến thức nền tảng, tối ưu hoá trải nghiệm người dùng và tăng cường tính thực tiễn của sản phẩm.

Phân tích rõ ràng vai trò của người sử dụng trong hệ thống.

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

Người đi thuê trọ/căn hộ có thể dễ dàng tìm kiếm các tòa nhà hoặc dãy trọ, chọn phòng và đặt cọc phòng mà mình muốn thuê Người dùng có thể thanh toán các hoá đơ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 minh bạch và chính xác giữa người thuê và chủ cho thuê Hợp đồng thuê phòng được thể hiện đầy đủ và chi tiết với tất cả thông tin cần thiết, giúp hai bên nắm rõ quyền lợi và nghĩa vụ từ đầu.

- Đối với người cho thuê trọ/căn hộ, họ có thể đăng tải thông tin cần toà nhà/dãy trọ và các phòng trọ/căn hộ gồm các thông tin liên quan, tiện ích và giá đặt cọc, giá thuê Họ cũng là người xác nhận các yêu cầu đặt cọc phòng cho người thuê để tạo hợp đồng cho người thuê Người chủ có thể tạo các hoá đơn điện, nước, chi phí thuê ứng với phòng đó và quản lí việc chi trả hoá đơn trên ứng dụng.

- Đố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 được sự nhanh chóng, tiện dụng, tiết kiệm thời gian của người dùng Bên cạnh đó, khi thanh toán trực tuyến, người dùng dễ dàng quản lí, kiểm soát được tài chính, trạng thái hoá đơn của mình Ngoài ra, việc thanh toán trực tuyến làm tăng tính chuyên nghiệp trong kinh doanh cũng như quy trình hoạt động 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

Liên lạc giữa người cho thuê và người đi thuê là cần thiết để trao đổi các vấn đề liên quan đến hợp đồng, hoá đơn, điện nước và tình trạng của phòng đang cho thuê Hệ thố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 và nhanh chóng mà không cần phải dùng thêm ứng dụng khác, giúp hai bên thảo luận điều kiện thuê, xử lý hoá đơn, yêu cầu bảo trì và cập nhật thông tin một cách hiệu quả.

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

CƠ SỞ LÝ THUYẾT

Hệ quản trị cơ sở dữ liệu PostgetQL

Hoàn thành nội Nguyễn Đình Toản dung và viết báo cáo chương 1

Chương 2: Phân tích và thiết kế hệ thống

Phân tích yêu cầu đề tài

Biểu đồ ca sử dụng

2.7 Thiết kế cơ sở dữ liệu

Lập trình giao diện cơ bản ứng dụng

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 thuê của ứng dụng

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

Trịnh Nhật Hạ Vy Nguyễn Đình Toản

Trịnh Nhật Hạ Vy Trịnh Nhật Hạ Vy

Nguyễn Đình Toản Nguyễn Đình Toản

SỰ KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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à

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ả

3.1 Cài đặt chương trình Trịnh Nhật Hạ Vy

Nguyễn Đình Toản 3.2 Kết quả chương trình

Chương 4: Kết luận và hướng phát triển

Nguyễn Đình Toản 4.2 Định hướng phát triển

Hoàn thành nội dung và viết báo cáo chương 3.

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 TTTN

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

KẾ HOẠCH THỰC HIỆN ĐỀ TÀI CỦA NHÓM

DANH MỤC HÌNH VẼ v i i LỜI MỞ ĐẦU 2

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

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.1. 4 Tính năng của Dart 8

1.2 Tổng quan về framework Flutter 1

01.2.1 Khái niệm của Flutter 1 1.2. 1 Khái niệm của Flutter 1

5 Ưu và nhược điểm của Flutter 1

1.3 Tổng quan về ngôn ngữ Javascript 1

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

4 Ưu điểm và nhược điểm của Javascript 1

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

1.3.5 Sự khác nhau giữa Javascript với các ngôn ngữ lập trình web khác

1.4 Tổng quan về framework ReactJS 2

1.4.3 Ưu và nhược điểm của ReactJS 2

1.4.4 Sự phát triển của ReactJS 2

1.5 Tổng quan về ngôn ngữ Golang 2

1.5.2 Lịch sử hình thành ngôn ngữ Golang 2

1.5.4 Ưu và nhược điểm của Golang 2

1.5.5 Các lĩnh vực ứng dụng Golang 2

1.6.3 Ưu và nhược điểm của gRPC 3

1.7.4 Ưu và nhược điểm GraphQL 3

1.8 Hệ quản trị cơ sở dữ liệu PostgetQL 3

1.8.4 So sánh PostgetSQL và MySQL 3

6 CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 4

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

2.1 Phân tích yêu cầu đề tài 4

2.4 Biểu đồ ca sử dụng 4

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

Giao diện xoá toà toà nhà

7 Giao diện thêm căn hộ 8

Giao diện chỉnh sửa căn hộ 8 8 3.2.1 9

Giao diện xoá căn hộ 8

Giao diện yêu cầu đặt cọc 9 0 3.2.2

2 Giao diện danh sách hợp đồng và hoá đơn 9

Giao diện tạo hoá đơn 9

Giao diện chỉnh sửa hoá đơn 9 2 3.2.2

5 Giao diện xoá hoá đơn 9

Giao diện xác nhận thanh toán 9 3 3.2.2

7 Giao diện danh sách cuộc trò chuyện 9

Giao diện chi tiết cuộc trò chuyện 9 5 3.2.2 9

Giao diện thông tin cuộc trò chuyện 9 5 3.2.3

0 Giao diện tạo nhóm trò chuyện 9

Giao diện thêm người dùng vào nhóm trò chuyện 9 6 3.2.3

2 Giao diện thông báo của ứng dụng 9

Giao diện cập nhật tài khoản 9 8 3.2.3

5 Giao diện đăng nhập (website quản lí) 9

Giao diện quản lí người dùng (website quản lí) 9 9 3.2.3

7 Giao diện quản lí toà nhà, căn hộ (website quản lí) 1

8 Giao diện quản lí hợp đồng (website quản lí) 1

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 109

2 Hạn chế của đề tài

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

Trong bài viết này, các hình 11–13 nêu bật các ký hiệu trong biểu đồ hoạt động: hình 11 cho ký hiệu các hoạt động trong biểu đồ hoạt động 48; hình 12 cho ký hiệu đồng hoá các hoạt động nhằm thể hiện sự ghép và đồng bộ giữa các bước; và hình 13 cho ký hiệu đồng hoá có điều kiện trong biểu đồ hoạt động 49, cho thấy cách các nhánh điều kiện được xử lý khi các hoạt động được đồng hoá có điều kiện.

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

Bài viết giải thích các ký hiệu cơ bản trên biểu đồ tuần tự, từ ký hiệu thời gian hoạt động ở hình 41 đến ký hiệu gửi và trả lời thông điệp ở hình 42–43, tiếp tục với ký hiệu gửi thông điệp ở hình 44 và ký hiệu tạo/huỷ phương thức ở hình 45, sau đó là ký hiệu lặp thông điệp ở hình 46 và lặp thông điệp có điều kiện ở hình 47, cuối cùng là ký hiệu gửi phụ thuộc có điều kiện ở hình 48, nhằm giúp người đọc hiểu rõ luồng tương tác giữa các thành phần hệ thống qua biểu đồ tuần tự và tối ưu hóa thiết kế phần mềm.

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

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

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

1 Lí do chọn đề tài

Thuê trọ hiện nay là vấn đề được nhiều người quan tâm, đặc biệt là sinh viên và người lao động sống xa gia đình để học tập và làm việc, vì họ tìm kiếm một nơi ở an toàn, sạch sẽ, thoải mái và thuận tiện cho việc đến trường hoặc nơi làm việc 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 đa dạng, nhiều khu trọ cũng mọc ở hẻm, ngõ hoặc ở các vị trí khác nhau, khiến chi phí thuê có sự chênh lệch tùy theo vị trí và tiện ích xung quanh.

Quản lý người thuê trọ dù ở quy mô nhỏ (10–20 phòng) hay lớn (thậm chí hàng trăm phòng) đều đòi hỏi hệ thống quản lý chặt chẽ, vì mỗi căn phòng là một khách hàng và số lượng phòng càng nhiều sẽ càng phát sinh vấn đề Đối tượng khách hàng của loại hình này rất đa dạng, từ sinh viên, người mới đi làm, công nhân cho tới hộ gia đình trẻ và 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 chủ cho thuê Khi khối lượng công việc tăng lên theo số phòng, áp lực quản lý càng lớn và khó khăn hơn Để giữ chân khách trọ, chủ đầu tư cần có giải pháp xử lý sự cố và đáp ứng mong muốn của người thuê, như sửa chữa hư hỏng, tân trang và nâng cấp khu nhà trọ theo định kỳ, đồng thời quản lý an ninh, nhắc nhở vi phạm, ghi chỉ số điện nước và thu tiền nhà đúng hạn.

Khi đi tìm phòng trọ, đối tượng chủ yếu là sinh viên hoặc người lao động xa nhà do học tập và làm việc, nên việc chọn phòng cần xem xét đầy đủ nhiều yếu tố: chất lượng phòng ở như tường có chắc chắn hay sơn có bong tróc hay đã xuống cấp và chủ nhà có sửa chữa kịp thời khi có vấn đề hay không; an toàn cửa chính và ổ khóa bảo đảm chống trộm; số lượng cửa sổ và hệ thống thông gió; mái che để tránh phòng quá bí và ẩm; tình trạng đường ống nước và vòi nước có rò rỉ, hỏng hay tắc nghẽn; vị trí căn phòng và an ninh khu vực là những yếu tố đáng được quan tâm để có một chỗ ở tốt.

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Trong báo cáo thực tập tốt nghiệp, việc thuê nhà trọ cho sinh viên cần thận trọng khi giao dịch với chủ nhà hoặc người môi giới để tránh bị lừa đảo tiền và thiệt hại về lợi ích do thiếu giấy tờ pháp lý như giấy tờ sở hữu và các minh chứng đủ điều kiện cho thuê Giá thuê phụ thuộc vào quận/huyện và loại căn hộ; khu vực trung tâm hoặc các khu chung cư chất lượng cao thường có mức giá cao hơn, bên cạnh đó các bạn cần dự tính thêm các phí sinh hoạt như điện, nước, wifi, gửi xe Hiện nay, ngoài việc tìm kiếm trực tiếp, sinh viên có thể dùng Google và Facebook để tham gia các hội nhóm cho thuê trọ, nơi cung cấp đầy đủ thông tin về vị trí, tiện ích, giá thuê và hình ảnh thực tế Tuy nhiên các vấn đề liên quan đến chi trả, thương lượng và hợp đồng vẫn không thể trao đổi qua mạng xã hội mà cần một ứng dụng quản lý giao dịch để kết nối và lưu trữ thông tin giữa người cho thuê và người thuê một cách an toàn.

Sự hỗ trợ mạnh mẽ của các ngôn ngữ lập trình và sự xuất hiện của các framework đã thúc đẩy 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” Dự án tập trung vào phát triển ứng dụng di động đa nền tảng nhằm tối ưu hóa trải nghiệm người dùng trên mọi thiết bị, giảm thời gian phát triển và chi phí bảo trì Thông qua các framework hiện đại, nhóm khai thác khả năng tích hợp các chức năng quản lý phòng trọ, tìm kiếm, đặt phòng và thanh toán trực tuyến, đồng thời đảm bảo tính mở rộng và bảo mật cho người dùng và người cho thuê Đây là một giải pháp công nghệ tổng hợp giúp kết nối người thuê và chủ nhà một cách hiệu quả hơn, phù hợp với xu hướng số hóa trong lĩnh vực cho thuê phòng trọ.

Dự án mang tên “Flutter, Golang và GraphQL” được thực hiện để thực tập tốt nghiệp và phù hợp với chương trình đào tạo, đồng thời khai thác công nghệ này nhằm 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 là kết hợp Flutter cho giao diện người dùng thân thiện, Golang cho backend hiệu quả và GraphQL làm API linh hoạt, giúp tối ưu hóa quy trình đăng tin, tìm kiếm, quản lý phòng và thanh toán trực tuyến Thông qua dự án, sinh viên nắm vững cách triển khai hệ thống full-stack từ frontend đến backend, áp dụng các nguyên tắc thiết kế, bảo mật và tối ưu hiệu suất để đáp ứng nhu cầu thực tế của thị trường 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,…

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Báo cáo thực tập tốt nghiệp – Trịnh Nhật Hạ Vy & Nguyễn Đình Toản

- Ứ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 hệ thống cho thuê nhà trọ kết nối người cho thuê và người đi thuê một cách dễ dàng và hiệu quả Người cho thuê có thể đăng tải và quản lý thông tin phòng một cách nhanh chóng, trong khi người đi thuê có thể dễ dàng tìm kiếm phòng trọ với mức giá hợp lý và các tiện ích phù hợp Hệ thống cho phép hai bên quản lý hợp đồng, thanh toán và các giao dịch cho thuê một cách tiện lợi, giúp quá trình thuê nhà diễn ra suôn sẻ từ tìm kiếm đến ký kết và thanh toá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 áp dụng để tổng hợp và phân tích các tài liệu liên quan đến nội dung nghiên cứu, 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 Nghiên cứu cũng xem xét nhu cầu của người cho thuê và người đi thuê để làm rõ các yếu tố tác động đến hoạt động cho thuê và sự phát triển ứng dụng trên nền tảng web và di động.

Trong khuôn khổ nghiên cứu, chúng tôi trình bày phương pháp nghiên cứu và phát triển các phương pháp đặt cọc, quy trình thuê và tìm phòng trọ, cùng với cơ chế trao đổi thông tin qua lại dưới dạng tin nhắn để quản lý thuê phòng trọ một cách hiệu quả Nghiên cứu cũng tập trung vào xây dựng và thử nghiệm một ứng dụng cho thuê phòng trọ nhằm tối ưu hóa quy trình từ tìm phòng đến ký hợp đồng và giao tiếp giữa người thuê và chủ nhà Cuối cùng, chúng tôi tiến hành đánh giá kết quả để đo lường hiệu quả của các phương pháp đề xuất và khả năng ứng dụng thực tế của ứng dụng trong việc nâng cao trải nghiệm thuê phòng trọ.

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

KẾT HỢP FLUTTER, GOLANG VÀ GRAPHQL

Đề tài báo cáo thực tập tốt nghiệp của Trịnh Nhật Hạ Vy và Nguyễn Đình Toản tập trung 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ọ, nhằm đẩy mạnh việc tích hợp CNTT vào đời sống và hoạt động kinh doanh bất động sản Dự án nhắm tới 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 kết nối người cho thuê và người đi thuê một cách thuận tiện Đóng góp chính của đề tài là đề xuất phương pháp cho thuê nhanh chóng và minh bạch dành cho người đi thuê và người cho thuê, bao 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 để tăng tính rõ ràng, lưu trữ và an toàn giao dịch.

6 Bố cục của đề tài

Dựa trên các nội dung nghiên cứu đã trình bày, nhằm đạt mục tiêu đề ra và đảm bảo tính logic cho đồ án, ngoài phần mở đầu và phần kết luận, nội dung được tổ chức thành các chương như sau.

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

Ngày đăng: 09/12/2022, 18:16

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