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

Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ

78 85 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 đề Xây Dựng Ứng Dụng Hỗ Trợ Các Dịch Vụ Liên Quan Ở Trọ
Tác giả Trương Hoàng Nam
Người hướng dẫn ThS. Lê Thanh Trọng
Trường học Đại học Quốc gia TP. HCM
Chuyên ngành Công nghệ Phần mềm
Thể loại báo cáo tổng kết
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 78
Dung lượng 2,94 MB

Cấu trúc

  • Chương 1. TỔNG QUAN VỀ ĐỀ TÀI (0)
    • 1.1. Giới thiệu đề tài (15)
    • 1.2. Lý do chọn đề tài (15)
    • 1.3. Mục tiêu (16)
    • 1.4. Phạm vi (16)
    • 1.5. Phương pháp thực hiện (16)
    • 1.6. Ý nghĩa thực tiễn (17)
    • 1.7. Kết quả dự kiến (17)
    • 1.8. Hiện trạng bài toán (17)
      • 1.8.1. Các ứng dụng liên quan (18)
        • 1.8.1.1. Ứng dụng OHANA (18)
        • 1.8.1.2. Ứng dụng Nhà trọ 360 (19)
      • 1.8.2. Đánh giá hiện trạng và hướng giải quyết (20)
        • 1.8.2.1. Đánh giá hiện trạng (20)
        • 1.8.2.2. Hướng giải quyết (20)
  • Chương 2. XÂY DỰNG ỨNG DỤNG HỖ TRỢ CÁC DỊCH VỤ LIÊN QUAN Ở TRỌ (0)
    • 2.1. Phân tích yêu cầu hệ thống (21)
      • 2.1.1. Phân tích yêu cầu chức năng (21)
        • 2.1.1.1. Yêu cầu lưu trữ (21)
        • 2.1.1.2. Yêu cầu về tính năng (22)
      • 2.1.2. Phân tích yêu cầu phi chức năng (23)
      • 2.1.3. Phân tích yêu cầu người dùng (23)
        • 2.1.3.1. Mô hình use case toàn hệ thống (24)
        • 2.1.3.2. Danh sách các Actors (25)
        • 2.1.3.3. Danh sách các use case (25)
        • 2.1.3.4. Một số use case của hệ thống (27)
    • 2.2. Phân tích thiết kế hệ thống (33)
      • 2.2.1. Thiết kế xử lý (33)
        • 2.2.1.1. Lược đồ tuần tự thao tác đăng nhập (34)
        • 2.2.1.2. Lược đồ tuần tự thao tác tìm trọ (37)
        • 2.2.1.3. Lược đồ tuần tự thao tác tìm kiếm dịch vụ vận chuyển (39)
        • 2.2.1.4. Lược đồ tuần tự thao tác tạo bài đăng tìm người ở ghép (40)
        • 2.2.1.5. Lược đồ tuần tự thao tác tạo bài đăng bán đồ dùng cũ (42)
        • 2.2.1.6. Lược đồ tuần tự thao tác chat (43)
      • 2.2.2. Thiết kế cơ sở dữ liệu (45)
        • 2.2.2.1. Lược đồ cơ sở dữ liệu (45)
        • 2.2.2.2. Mô tả các bảng dữ liệu (46)
      • 2.2.3. Công nghệ sử dụng (55)
        • 2.2.3.1. React Native (55)
        • 2.2.3.2. Firebase (56)
        • 2.2.3.3. Google Maps Platform (58)
        • 2.2.3.4. Algolia (59)
        • 2.2.3.5. Thư viện React Native Firebase (60)
        • 2.2.3.6. Thư viện React Redux (60)
      • 2.2.4. Thiết kế kiến trúc hệ thống (61)
        • 2.2.4.1. Kiến trúc tổng thể (61)
        • 2.2.4.2. Kiến trúc ứng dụng (62)
      • 2.2.5. Thiết kế giao diện (63)
        • 2.2.5.1. Danh sách màn hình (63)
        • 2.2.5.2. Giao diện một số màn hình của ứng dụng (66)
    • 2.3. Triển khai hệ thống (73)
      • 2.3.1. Firebase (73)
      • 2.3.2. Algolia (74)
      • 2.3.3. Ứng dụng di động (74)
  • Chương 3. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 3.1. Kết quả đạt được (75)
    • 3.2. Thuận lợi và khó khăn (76)
    • 3.3. Hướng phát triển (76)
  • TÀI LIỆU THAM KHẢO (77)

Nội dung

TỔNG QUAN VỀ ĐỀ TÀI

Giới thiệu đề tài

Tìm trọ là vấn đề quen thuộc với nhiều người, đặc biệt là sinh viên và những người lao động từ nơi khác đến Theo nghiên cứu gần đây, hơn 66% sinh viên cần tìm chỗ ở và nhiều người trong số họ phải chuyển trọ nhiều lần trong thời gian học Tại TP.HCM, 69% trong số 274,600 lao động ngoại tỉnh cũng phải thuê phòng trọ Khi tìm kiếm chỗ ở, người thuê thường chú trọng đến giá cả, diện tích và cơ sở vật chất, do đó, việc lựa chọn trọ phù hợp thường tốn nhiều thời gian và công sức.

Việc tìm trọ không chỉ đơn thuần là tìm kiếm chỗ ở, mà còn đi kèm với nhiều vấn đề phát sinh như chuyển trọ, thuê xe vận tải để di chuyển đồ đạc cồng kềnh, và tìm người ở ghép để chia sẻ chi phí Nhiều người gặp khó khăn trong việc liên hệ với dịch vụ vận tải, trong khi đó, nhu cầu mua bán đồ dùng cũ cũng gia tăng khi chuyển trọ Để hỗ trợ việc tìm trọ và giải quyết các vấn đề liên quan một cách hiệu quả, đề tài này đã được nêu lên và thực hiện.

Lý do chọn đề tài

Hiện nay, để giải quyết các vấn đề liên quan đến việc tìm kiếm chỗ ở, nhiều giải pháp đã được áp dụng, trong đó nổi bật là các nhóm trên mạng xã hội Facebook Những nhóm này không chỉ cho phép chủ nhà trọ quảng bá dãy trọ của mình mà còn tạo cơ hội cho những người có nhu cầu mua bán thiết bị và đồ gia dụng trao đổi thông tin.

1 Tham khảo từ: https://tapchicongthuong.vn/bai-viet/nghien-cuu-hanh-vi-thue-nha-tro-cua-sinh-vien-truong- dai-hoc-cong-nghiep-ha-noi-73954.html

2 Tham khảo từ: https://nld.com.vn/cong-doan/tphcm-phan-lon-cong-nhan-phai-thue-nha-tro-gia-re-

Mặc dù có nhiều bài post tìm trọ, nhưng người dùng thường phải lướt qua từng bài để tìm kiếm thông tin phù hợp, dẫn đến việc khó tiếp cận và dễ bị bỏ lỡ Để khắc phục vấn đề này, một số ứng dụng như OHANA, Nhà Trọ 360 và Tìm trọ đã được phát triển, giúp người dùng tìm kiếm chỗ ở hoặc người ở ghép Tuy nhiên, những ứng dụng này chỉ tập trung vào việc tìm trọ mà không cung cấp các dịch vụ bổ sung như mua bán đồ dùng cũ hay vận chuyển khi chuyển trọ.

Để giải quyết những vấn đề nêu trên, đề tài đã được xây dựng nhằm tạo ra một nền tảng thuận tiện cho người thuê trọ, người cho thuê trọ và dịch vụ vận chuyển, giúp họ dễ dàng trao đổi thông tin và kết nối với nhau.

Mục tiêu

- Nắm bắt thực trạng về vấn đề tìm trọ và các vấn đề khác liên quan đến ở trọ

Xây dựng ứng dụng hỗ trợ dịch vụ liên quan đến việc ở trọ, bao gồm tìm kiếm chỗ ở, cho thuê phòng, vận chuyển đồ đạc từ nơi ở cũ đến nơi ở mới, và chia sẻ không gian sống.

- Ứng dụng có độ hoàn thiện cao, có khả năng triển khai trong thực tế

- Ứng dụng có giao diện thân thiện với người dùng, dễ sử dụng

- Thông qua quá trình xây dựng ứng dụng, học tập được những kiến thức công nghệ mới.

Phạm vi

Đề tài này tập trung vào việc giải quyết các vấn đề liên quan đến tìm kiếm chỗ ở, bao gồm dịch vụ vận chuyển, tìm người ở ghép và bán đồ dùng cũ cho những người có nhu cầu thuê trọ trên toàn quốc Ngoài ra, nó còn hỗ trợ tìm kiếm người thuê và dịch vụ vận chuyển cho chủ trọ và chủ xe Ứng dụng được phát triển trên nền tảng Android 10.

Phương pháp thực hiện

- Làm việc theo hình thức cá nhân cùng với sự giúp đỡ, tư vấn của giảng viên

- Bám sát kế hoạch của đề tài và liên tục trao đổi với giảng viên hướng dẫn

- Tìm hiểu các giải pháp đã có

- Tìm hiểu, ứng dụng các công nghệ để hoàn thiện ứng dụng.

Ý nghĩa thực tiễn

- Tạo môi trường kết nối chủ trọ, chủ dịch vụ vận chuyển, người tìm trọ và những người muốn mua bán đồ dùng cũ lại với nhau

- Giúp cho việc tìm trọ, tìm dịch vụ vận chuyển, tìm người ở ghép và mua bán đồ dùng cũ trở nên dễ dàng hơn.

Kết quả dự kiến

Đối với chức năng ứng dụng:

- Hoàn thiện các chức năng đã đề ra

- Giao diện thân thiện dễ sử dụng Đối với cá nhân người thực hiện đề tài:

- Vận dụng kiến thức đã học vào trong đề tài

- Tìm hiểu, học hỏi những công nghệ mới được áp dụng trong đề tài

- Có kiến thức lẫn kinh nghiệm đáp ứng cho doanh nghiệp sau khi ra trường.

Hiện trạng bài toán

Tìm trọ là vấn đề lâu đời mà nhiều người vẫn gặp phải, đặc biệt là khi cần tìm kiếm những dãy trọ có giá cả phải chăng Hiện nay, nhiều người đã chuyển sang sử dụng mạng xã hội và ứng dụng để tìm kiếm thông tin về các dãy trọ phù hợp, giúp tiết kiệm thời gian và công sức Tuy nhiên, việc sử dụng các nền tảng này vẫn còn tồn tại một số hạn chế nhất định Để giảm bớt chi phí thuê trọ, nhiều người cũng lựa chọn phương án tìm bạn cùng phòng.

6 chung bằng cách lên Facebook để tìm, cách này hiệu quả cũng không cao

Khi chuyển đồ từ nơi ở cũ sang nhà mới, việc vận chuyển các đồ dùng lớn như tủ áo quần, tủ lạnh và máy giặt thường cần thuê xe tải Điều này dẫn đến việc phải tìm kiếm dịch vụ vận chuyển, gây tốn thời gian cho mọi người.

Khi chuyển trọ, nhiều người thường mang theo đồ dùng cũ, nhưng cũng không ít người bỏ lại những món đồ này, trong đó có nhiều thứ còn mới Việc vứt bỏ đồ dùng vẫn còn giá trị sử dụng không chỉ lãng phí mà còn khiến những người khác cần dùng những món đồ này không có cơ hội tiếp cận.

1.8.1 Các ứng dụng liên quan

Sau khi thực hiện khảo sát hiện trạng, tác giả đã khám phá một số ứng dụng liên quan, đáp ứng một số yêu cầu trong việc giải quyết vấn đề đã nêu.

Hình 1.1: Logo ứng dụng OHANA 3

OHANA là ứng dụng thông minh kết nối người thuê với người cho thuê, giúp tìm phòng, nhà trọ và bạn ở ghép Ứng dụng này mang đến giải pháp hiệu quả cho vấn đề Ở và SỐNG thông qua mô hình thương mại điện tử Những ưu điểm nổi bật của OHANA bao gồm sự tiện lợi trong việc tìm kiếm chỗ ở, khả năng kết nối nhanh chóng, tiết kiệm thời gian và chi phí, cùng với sự đa dạng trong lựa chọn chỗ ở phù hợp với nhu cầu của người dùng.

- Hỗ trợ các chức năng cho việc tìm trọ

- Có sẵn trên cả nền tảng Android, IOS và web

- Có chức năng tìm người ở ghép

- Có chức năng yêu thích để thêm trọ vào phần yêu thích

3 Nguồn: https://www.ohanaliving.vn/

4 Trích phần giới thiệu ứng dụng trên cửa hàng Google Play: https://play.google.com/store/apps/details?id=com.bayleaf_mobile&hl=vi

- Bất kỳ ai cũng có thể đăng trọ

- Cho phép chia sẻ lên mạng xã hội

- Khi lọc kết quả sử dụng nhiều thao tác của người dùng

- Chỉ hỗ trợ một số tỉnh thành nhất định

- Chưa có phần đánh giá của người dùng đối với trọ

- Trả phí để đăng bài tìm người ở ghép

- Trả phí để xác thực phòng

Hình 1.2: Logo ứng dụng Nhà Trọ 360 5

Ứng dụng Nhà Trọ 360 mang đến cho người dùng giải pháp nhanh chóng và tiện lợi trong việc tìm kiếm nhà trọ hoặc thuê nhà, với khả năng hỗ trợ tìm kiếm trên toàn bộ các tỉnh thành trong nước.

- Hỗ trợ đa nền tảng từ Android, IOS đến Web

- Hỗ trợ nhiều hình thức đăng nhập bằng mạng xã hội như Zalo, Facebook, Google

- Hỗ trợ hầu hết các tỉnh/thành phố trên cả nước

- Có thể tìm người ở ghép hoặc tìm phòng

- Có chức năng hiển thị vị trí trọ trên bản đồ

- Bất kỳ ai cũng có thể đăng trọ, hoặc tìm bài

- Cho phép lưu trọ lại để xem sau

- Cho phép chia sẻ lên mạng xã hội

- Ứng dụng hoạt động dưới dạng tin tức, những trọ mới đăng sẽ hiển thị lên đầu Các bài đăng dễ bị trôi

- Chức năng tìm người ở ghép không tách biệt khỏi chức năng tìm trọ

- Chỉ được chọn các bộ lọc sau khi tìm kiếm

1.8.2 Đánh giá hiện trạng và hướng giải quyết

Ngày nay, sự phát triển công nghệ đã làm cho việc tìm kiếm chỗ ở trở nên dễ dàng hơn bao giờ hết Nhiều ứng dụng và giải pháp mới đã ra đời, giúp giải quyết các vấn đề liên quan đến việc thuê trọ, và ngày càng được cải tiến để đáp ứng nhu cầu của người dùng Một số ứng dụng nổi bật đã giải quyết hầu hết các vấn đề tìm trọ, nhưng vẫn còn tồn tại những vấn đề khác chưa được tích hợp Bên cạnh đó, một số tính năng mất phí cũng gây cản trở cho người dùng trong quá trình tìm kiếm.

Ứng dụng hỗ trợ người dùng tìm kiếm chỗ ở và giải quyết các vấn đề liên quan đến việc ở trọ, kế thừa các chức năng của những ứng dụng tìm trọ hiện có như tìm chỗ ở và tìm người ở ghép Bên cạnh đó, ứng dụng còn phát triển thêm tính năng đăng tin mua bán đồ dùng cũ và tìm dịch vụ vận chuyển Đặc biệt, ứng dụng cũng tích hợp các chức năng chat, bình luận và đánh giá, giúp người dùng dễ dàng tương tác và trao đổi thông tin Nhờ đó, ứng dụng mang lại sự hỗ trợ toàn diện hơn cho người dùng trong việc tìm kiếm và quản lý chỗ ở.

XÂY DỰNG ỨNG DỤNG HỖ TRỢ CÁC DỊCH VỤ LIÊN QUAN Ở TRỌ

Phân tích yêu cầu hệ thống

2.1.1 Phân tích yêu cầu chức năng

2.1.1.1 Yêu cầu lưu trữ Để hệ thống hoạt động tốt theo đúng yêu cầu, ta cần lưu trữ các thông tin sau:

- Thông tin trọ: Thông tin trọ được chủ trọ đăng tải bao gồm tên trọ, địa chỉ, giá cả, mô tả, tiền điện nước, hình ảnh, chủ trọ, …

Dịch vụ vận chuyển cung cấp thông tin chi tiết từ các chủ xe hoặc dịch vụ, bao gồm tên dịch vụ, mức giá, thông tin chủ xe, số điện thoại liên lạc và khu vực hoạt động.

- Thông tin bài đăng tìm người ở ghép: bao gồm nội dung đăng, chủ bài đăng, vị trí tìm trọ, …

- Thông tin bài đăng bán đồ gia dụng: bao gồm nội dung đăng, danh sách đồ dùng cần bán, mô tả đồ dùng cần bán, giá đồ dùng, …

- Thông tin cá nhân: Các thông tin cơ bản của người dùng như tên, tuổi, nghề nghiệp, vị trí, …

Cuộc trò chuyện bao gồm thông tin chi tiết về hai người dùng, bao gồm danh sách người tham gia, nội dung tin nhắn, người gửi và thời gian gửi tin.

- Thông tin bình luận: Chứa thông tin bình luận về các bài đăng

- Thông tin đánh giá: Chứa thông tin đánh giá về trọ hoặc dịch vụ vận chuyển

Báo cáo vi phạm trong ứng dụng cung cấp thông tin quan trọng về các hành vi không đúng quy định Ứng dụng yêu cầu tính năng lưu trữ hình ảnh để người dùng có thể dễ dàng gửi báo cáo và minh chứng cho các vi phạm.

10 thể đăng tải hình ảnh của trọ, của dịch vụ vận chuyển và các hình ảnh liên quan khác

2.1.1.2 Yêu cầu về tính năng Ứng dụng chạy trên nền tảng Android, yêu cầu phải kết nối internet để sử dụng ứng dụng Ứng dụng bao gồm các chức năng để hỗ trợ cho các vấn đề liên quan ở trọ như sau:

Chức năng tìm trọ trong ứng dụng cho phép người dùng dễ dàng tìm kiếm chỗ ở mong muốn, trong khi chủ trọ có thể đăng tải, cập nhật và xóa thông tin về trọ Ứng dụng còn hỗ trợ các bộ lọc giúp người dùng hạn chế kết quả tìm kiếm theo nhu cầu cụ thể Bên cạnh đó, người dùng có thể tìm kiếm và xem các chỗ trọ trên bản đồ một cách thuận tiện.

Chức năng tìm dịch vụ vận chuyển giúp người dùng dễ dàng tìm kiếm dịch vụ vận chuyển phù hợp Đồng thời, chủ dịch vụ cũng có thể đăng tải, cập nhật và xóa thông tin dịch vụ của mình Hệ thống còn hỗ trợ nhiều bộ lọc, giúp người dùng tìm kiếm hiệu quả hơn.

Chức năng tìm người ở ghép cho phép người dùng tạo và chỉnh sửa bài đăng, giúp tìm kiếm người ở ghép dễ dàng hơn Ngoài ra, người dùng có thể lọc kết quả bài đăng để tìm kiếm phù hợp với nhu cầu Hệ thống cũng hỗ trợ cung cấp thêm thông tin về chỗ trọ cho những người đã có nơi ở.

Chức năng bán đồ gia dụng cho phép người dùng dễ dàng đăng bài bán các sản phẩm gia dụng, tìm kiếm đồ gia dụng theo nhu cầu và lọc kết quả bài đăng để tìm kiếm thông tin một cách nhanh chóng và hiệu quả.

- Chức năng Chat: Cho phép người dùng trao đổi với nhau

- Chức năng đánh giá: Cho phép người dùng đánh giá trọ hoặc dịch vụ vận chuyển

- Chức năng bình luận: Cho phép người dùng bình luận vào các bài đăng tìm người ở ghép hoặc bài đăng bán đồ gia dụng

- Chức năng report: Cho phép người dùng báo cáo các vi phạm trong ứng dụng

2.1.2 Phân tích yêu cầu phi chức năng

- Ứng dụng sử dụng tiếng Việt, giao diện thân thiện đối với người sử dụng Ứng dụng hoạt động tốt trên nền tảng Android 10

- Sử dụng các công cụ, tài nguyên miễn phí để phát triển ứng dụng

- Các thông tin cá nhân cần được bảo mật một cách hợp lý để bảo vệ quyền riêng tư cho người dùng

2.1.3 Phân tích yêu cầu người dùng

Thông qua việc khảo sát hiện trạng, chúng ta tiến hành phân tích các yêu cầu và chức năng của hệ thống Các yêu cầu này được thể hiện bằng ngôn ngữ mô hình hóa, giúp đảm bảo tính chính xác và rõ ràng trong quá trình phát triển hệ thống.

2.1.3.1 Mô hình use case toàn hệ thống

Hình 2.1: Sơ đồ Use case tổng quát

1 Khách Khách là những người chưa đăng nhập vào ứng dụng Cần đăng nhập để sử dụng ứng dụng

2 Người dùng Người dùng là người đã đăng nhập vào hệ thống

Bảng 2.1: Danh sách các Actors

2.1.3.3 Danh sách các use case

STT Tên Use case Mô tả Use case

1 Đăng nhập Người dùng có thể đăng nhập vào ứng dụng bằng cách sử dụng số điện thoại hoặc Facebook

Người dùng có thể dễ dàng tìm kiếm chỗ trọ thông qua ứng dụng, với các bộ lọc hỗ trợ giúp giới hạn phạm vi tìm kiếm theo nhu cầu Bên cạnh đó, ứng dụng còn cung cấp tính năng hiển thị các nhà trọ trên bản đồ, giúp người dùng xác định vị trí một cách thuận tiện.

3 Tìm dịch vụ vận chuyển

Người dùng có thể tìm dịch vụ vận chuyển để chở đồ từ chỗ ở cũ sang chỗ ở mới

4 Tìm người ở ghép Người dùng có thể tìm người ở ghép hoặc quản lý các bài viết tìm người ở ghép của mình

5 Thêm bài viết tìm người ở ghép

Là use case mở rộng của tìm người ở ghép Người dùng có thể đăng bài để tìm người ở ghép

6 Sửa bài viết tìm người ở ghép

Là use case mở rộng của tìm người ở ghép Người dùng có thể chỉnh bài viết tìm người ở ghép đã đăng tải

7 Xóa bài viết tìm Là use case mở rộng của tìm người ở ghép Người

14 người ở ghép dùng có thể xóa bài viết tìm người ở ghép đã đăng của mình

Là use case mở rộng của tìm người ở ghép Người dùng có thể tìm người ở ghép phù hợp thông qua các bộ lọc tích hợp sẵn

9 Tìm đồ dùng cũ Người dùng có thể tìm mua đồ dùng cũ được đăng bán trên ứng dụng

10 Đăng bài bán đồ dùng cũ

Người dùng có thể đăng bài bán đồ dùng cũ

11 Chỉnh sửa bài đăng bán đồ dùng cũ

Người dùng có thể cập nhật các bài đăng bán đồ dùng cũ của mình

12 Xóa bài đăng bán đồ dùng cũ

Người dùng có thể xóa bài đăng bán đồ dùng cũ

13 Chat Cho phép người dùng có thể trao đổi thông tin với nhau

14 Quản lý hồ sơ trọ Người dùng có thể quản lý hồ sơ trọ của mình

15 Thêm hồ sơ trọ Là use case mở rộng của quản lý hồ sơ trọ Người dùng có thể thêm hồ sơ trọ vào ứng dụng

16 Cập nhật hồ sơ trọ Là use case mở rộng của quản lý hồ sơ trọ Người dùng có thể cập nhật hồ sơ trọ đã đăng

17 Xóa hồ sơ trọ Là use case mở rộng của quản lý hồ sơ trọ Người dùng có thể xóa hồ sơ trọ đã đăng

18 Quản lý dịch vụ vận chuyển

Cho phép người dùng quản lý hồ sơ dịch vụ vận chuyển đã đăng

19 Thêm dịch vụ vận Là use case mở rộng của quản lý dịch vụ vận

15 chuyển chuyển Người dùng có thể thêm hồ sơ dịch vụ vận chuyển vào ứng dụng

20 Cập nhật dịch vụ vận chuyển

Là use case mở rộng của quản lý hồ sơ dịch vụ vận chuyển Người dùng có thể cập nhật hồ sơ dịch vụ vận chuyển của mình

21 Xóa dịch vụ vận chuyển

Là use case mở rộng của quản lý hồ sơ dịch vụ vận chuyển Người dùng có thể xóa hồ sơ dịch vụ vận chuyển của mình

22 Quản lý thông tin cá nhân

Người dùng có thể quản lý thông tin cá nhân

23 Nhập thông tin cá nhân

Là use case mở rộng của quản lý thông tin cá nhân Người dùng có thể nhập thông tin cá nhân

24 Chỉnh sửa thông tin cá nhân

Là use case mở rộng của quản lý thông tin cá nhân Người dùng có thể chỉnh sửa thông tin cá nhân

Bảng 2.2: Danh sách các use case

2.1.3.4 Một số use case của hệ thống a Use case đăng nhập hệ thống

Hình 2.2: Use case đăng nhập

Tên use case Đăng nhập

Mô tả Người dùng có thể đăng nhập vào ứng dụng bằng số điện thoại hoặc tài khoản Facebook

Tiền điều kiện Thiết bị cài sẵn ứng dụng và có kết nối internet Hậu điều kiện Người dùng đăng nhập được vào hệ thống

Luồng sự kiện chính 1 Ứng dụng hiển thị màn hình đăng nhập

2 Người dùng chọn đăng nhập bằng số điện thoại hoặc facebook

3 Ứng dụng kiểm tra thông tin đăng nhập

4 Ứng dụng hiển thị màn hình trang chủ Luồng sự kiện phụ Ứng dụng hiển thị thông báo lỗi

Bảng 2.3: Đặc tả use case đăng nhập b Use case tìm trọ

Hình 2.3: Use case tìm trọ

Tên use case Tìm trọ

Người dùng có thể dễ dàng tìm kiếm trọ bằng cách sử dụng các bộ lọc sẵn có như vị trí, giá cả và diện tích Ngoài ra, họ cũng có thể tìm kiếm trọ trực tiếp trên bản đồ để có cái nhìn tổng quát hơn về khu vực.

Tiền điều kiện Người dùng đã đăng nhập vào hệ thống

Hậu điều kiện Người dùng tìm được trọ mong muốn

Luồng sự kiện chính 1 Người dùng nhập vị trí cần tìm

2 Người dùng chọn các bộ lọc bổ sung

3 Người dùng nhấn tìm kiếm

4 Ứng dụng hiển thị danh sách trọ cho người dùng xem

Luồng sự kiện phụ Người dùng tìm trọ trên bản đồ:

1 Người dùng chọn hiển thị trên bản đồ

2 Ứng dụng chuyển qua chế độ tìm kiếm trên bản đồ

3 Người dùng chọn địa điểm cần tìm

4 Người dùng thiết lập bán kính tìm kiếm hoặc các bộ lọc khác

5 Người dùng chọn tìm kiếm

6 Ứng dụng hiển thị trọ có trong khu vực tìm kiếm

Bảng 2.4: Đặc tả use case tìm trọ

18 c Use case tìm dịch vụ vận chuyển

Hình 2.4: Use case tìm dịch vụ vận chuyển

Tên use case Tìm dịch vụ vận chuyển

Mô tả Người dùng có thể tìm kiếm dịch vụ vận chuyển

Tiền điều kiện Người dùng đã đăng nhập vào hệ thống

Hậu điều kiện Người dùng tìm được dịch vụ vận chuyển mong muốn

Luồng sự kiện chính 1 Ứng dụng hiển thị màn hình dịch vụ vận chuyển

2 Người dùng đặt các giá trị cho bộ lọc

3 Người dùng nhấn tìm kiếm

4 Ứng dụng hiển thị danh sách dịch vụ vận chuyển

Luồng sự kiện phụ Không có

Bảng 2.5: Đặc tả use case tìm dịch vụ vận chuyển

19 d Use case thêm bài viết tìm người ở ghép

Hình 2.5: Use case thêm bài viết tìm người ở ghép

Tên use case Thêm bài viết tìm người ở ghép

Mô tả Người dùng có thể thêm một bài viết để tìm người ở ghép

Người dùng cần đăng nhập vào hệ thống để bắt đầu quá trình tìm kiếm người ở ghép Sau khi hoàn tất, họ có thể tạo bài đăng để tìm kiếm người ở ghép phù hợp.

Luồng sự kiện chính 1 Người dùng chọn tạo bài đăng tìm người ở ghép

2 Ứng dụng hiển thị màn hình tạo bài đăng

3 Người dùng điền nội dung bài đăng, vị trí và các thông tin giới hạn về độ tuổi, giới tính, …

5 Ứng dụng lưu bài đăng và thông báo kết quả tạo cho người dùng

Luồng sự kiện phụ Không có

Bảng 2.6: Đặc tả use case thêm bài viết tìm người ở ghép

20 e Use case đăng bài bán đồ dùng cũ

Hình 2.6: Use case đăng bài bán đồ dùng cũ

Tên use case Đăng bài bán đồ dùng cũ

Mô tả Người dùng có thể đăng bài để bán đồ dùng cũ

Người dùng cần đăng nhập vào hệ thống để mở màn hình bài đăng bán đồ dùng cũ, sau đó tìm kiếm và đăng bài thành công lên ứng dụng.

Luồng sự kiện chính 1 Người dùng chọn tạo bài đăng bán đồ dùng cũ

2 Ứng dụng hiển thị màn hình tạo bài đăng

3 Người dùng điền nội dung bài đăng, vị trí, và những món đồ cần bán

5 Ứng dụng lưu bài đăng và thông báo kết quả tạo cho người dùng

Luồng sự kiện phụ Không có

Bảng 2.7: Đặc tả use case đăng bài bán đồ dùng cũ

Mô tả Người dùng có thể chat với người dùng khác trong ứng dụng

Tiền điều kiện Người dùng đã đăng nhập

Hậu điều kiện Người dùng chat được với người dùng khác

Luồng sự kiện chính 1 Ứng dụng hiển thị màn hình chat

2 Người dùng chọn người muốn chat

3 Ứng dụng hiển thị màn hình chi tiết chat

4 Người dùng nhập tin nhắn cần gửi, rồi nhấn gửi

5 Ứng dụng gửi tin nhắn đến người dùng còn lại Luồng sự kiện phụ Không có

Bảng 2.8: Đặc tả use case chat

Phân tích thiết kế hệ thống

2.2.1 Thiết kế xử lý Đề tài sử dụng lược đồ tuần tự (Sequence Diagram) để mô tả phương thức xử lý vấn đề của hệ thống Sau đây là một số lược đồ tuần tự cho các chức năng của hệ

2.2.1.1 Lược đồ tuần tự thao tác đăng nhập

Để nâng cao trải nghiệm người dùng, ứng dụng cho phép đăng nhập dễ dàng thông qua số điện thoại hoặc tài khoản Facebook Trong đó, phương thức đăng nhập bằng số điện thoại mang lại sự tiện lợi và nhanh chóng cho người dùng.

Hình 2.8: Lược đồ tuần tự thao tác đăng nhập bằng số điện thoại

Mô tả: Người dùng có thể đăng nhập bằng số điện thoại

- Người dùng nhập số điện thoại để thực hiện login (1)

- Số điện thoại được gửi xuống phần xử lý để (2)

- Phần xử lý gửi yêu cầu đăng nhập bằng số điện thoại lên firebase authentication (3)

- Firebase authentication sẽ gửi một mã xác thực về số điện thoại của người

- Thông tin xác thực sẽ được gửi về lại ứng dụng (5)

- Hiển thị màn hình xác thực để người dùng nhập mã xác thực (6)

- Người dùng nhập mã xác thực nhận được từ tin nhắn (7)

- Mã xác thực được gửi xuống tầng xử lý để tiến hành kiểm tra (8)

- Tầng xử lý tiến hành kiểm tra mã xác thực (9)

- Hiển thị lỗi xác thực nếu có (10)

- Chuyển tới màn hình nhập thông tin cá nhân nếu người dùng là người dùng mới của ứng dụng (11.1)

- Chuyển tới màn hình chính nếu người dùng đã nhập thông tin cá nhân vào hệ thống (11.2)

Hình 2.9: Lược đồ tuần tự thao tác đăng nhập bằng Facebook

Mô tả: Cho phép người dùng đăng nhập bằng tài khoản Facebook

- Người dùng chọn đăng nhập bằng Facebook (1)

- Yêu cầu được xử lý xuống phần xử lý (2)

- Phần xử lý gửi yêu cầu đến Facebook login manager để thực hiện đăng nhập bằng tài khoản Facebook (3)

- Facebook login Manager hiển thị giao diện cho phép người dùng đăng nhập bằng Facebook (4)

- Người dùng tiến hành đăng nhập bằng tài khoản Facebook của mình (5)

- Facebook login manager trả lại thông tin đăng nhập cho ứng dụng (6)

- Phần xử lý sử dụng thông tin đã nhận để gửi yêu cầu đăng nhập đến Firebase Authentication (7)

- Firebase Authentication trả lại kết quả đăng nhập cho phần xử lý (8)

- Phần xử lý điều hướng đến màn hình nhập thông tin cá nhân nếu người dùng là người dùng mới của ứng dụng (9.1)

- Phần xử lý điều hướng đến màn hình chính nếu người dùng là người dùng cũ của ứng dụng (9.2)

2.2.1.2 Lược đồ tuần tự thao tác tìm trọ

Hình 2.10: Lược đồ tuần tự thao tác tìm trọ

Mô tả: Người dùng thực hiện các thao tác cần thiết để tìm trọ

- Hiển thị màn hình tìm trọ cho người dùng (1)

- Người dùng có thể nhập một đoạn văn bản bất kỳ để tìm kiếm (2)

Người dùng có thể dễ dàng lọc kết quả tìm kiếm bằng cách mở bộ lọc Sau khi bộ lọc hiển thị, người dùng chỉ cần đặt giá trị cho các bộ lọc để giới hạn kết quả tìm kiếm một cách hiệu quả.

- Người dùng nhấn chọn tìm kiếm (6) để ứng dụng tìm và hiển thị kết quả phù

- Yêu cầu tìm kiếm được truyền từ giao diện xuống thành phần xử lý (7)

- Thành phần xử lý tổng hợp, phân tích yêu cầu (8), sau đó gửi yêu cầu lấy dữ liệu đến tầng dịch vụ (9)

- Dựa trên yêu cầu nhận được, tầng dịch vụ sẽ lấy dữ liệu phù hợp từ Firebase hoặc Algolia (10)

- Kết quả danh sách trọ sẽ được trả về lại cho tầng dịch vụ (11), sau đó chuyển tiếp về cho thành phần xử lý (12)

- Thành phần xử lý xử lý danh sách trọ, lưu danh sách trọ vào bộ nhớ tạm thời của ứng dụng (13)

- Danh sách trọ được đưa về giao diện (14), tầng giao diện sẻ hiển thị lên cho người dùng xem (15)

2.2.1.3 Lược đồ tuần tự thao tác tìm kiếm dịch vụ vận chuyển

Hình 2.11: Lược đồ tuần tự thao tác tìm kiếm dịch vụ vận chuyển

Mô tả: Cho phép người dùng tìm kiếm dịch vụ vận chuyển

- Màn hình dịch vụ vận chuyển được hiển thị cho người dùng (1)

- Người dùng có thể mở bộ lọc để giới hạn tìm kiếm (2)

- Nếu người dùng nhấn chọn bộ lọc, bộ lọc sẽ được hiển thị (3) và người dùng có thể đặt các giá trị cho bộ lọc (4)

- Người dùng nhấn chọn tìm kiếm (5)

- Yêu cầu tìm kiếm được gửi xuống tầng xử lý (6)

- Tầng xử lý xử lý yêu cầu của người dùng (7) rồi gửi yêu cầu lấy dữ liệu đến tầng dịch vụ (8)

- Tầng dịch vụ lấy dữ liệu tương ứng trong cơ sở dữ liệu (9) rồi nhận về danh

28 sách dịch vụ vận chuyển (10)

- Danh sách dịch vụ vận chuyển được chuyển tiếp về tầng xử lý (11)

- Tầng xử lý xử lý danh sách dịch vụ vận chuyển để lưu vào trong bộ nhớ tạm thời của ứng dụng (12)

- Danh sách dịch vụ vận chuyển thay đổi sẽ thông báo cho tầng giao diện cập nhật nội dung

- Danh sách dịch vụ vận chuyển được hiển thị lên cho người dùng xem (14)

2.2.1.4 Lược đồ tuần tự thao tác tạo bài đăng tìm người ở ghép

Hình 2.12: Lược đồ tuần tự thao tác tạo bài đăng tìm người ở ghép

Mô tả: Cho phép người dùng tạo mới một bài đăng tìm người ở ghép trên ứng dụng

- Người dùng chọn tạo bài đăng tìm người ở ghép trên màn hình tìm người ở ghép(1)

- Ứng dụng hiển thị màn hình tạo bài đăng tìm người ở ghép (2)

- Người dùng nhập nội dung bài đăng tìm người ở ghép (3) Sau đó, bấm chọn nút tạo để chuyển thông tin bài đăng tìm người ở ghép đến tầng xử lý (4)

Tầng xử lý sẽ kiểm tra nội dung bài đăng tìm người ở ghép (5) và nếu nội dung đáp ứng yêu cầu của ứng dụng, nó sẽ gửi yêu cầu tạo đến tầng dịch vụ (6).

- Dựa vào yêu cầu của tầng xử lý, tầng dịch vụ thực hiện tạo bài đăng tìm người ở ghép đến Firestore (7)

- Kết quả tạo bài đăng được trả về tầng dịch vụ (8) Sau đó, tầng dịch vụ chuyển tiếp dữ liệu về tầng xử lý (9)

Tầng xử lý sẽ kiểm tra kết quả tạo (10); nếu thành công, bài đăng tìm người ở ghép sẽ được lưu vào bộ nhớ tạm thời của ứng dụng Ngược lại, nếu không thành công, tầng giao diện sẽ hiển thị thông báo lỗi.

- Kết quả tạo bài đăng tìm người ở ghép được hiển thị lên giao diện (11) để cho người dùng biết (12)

2.2.1.5 Lược đồ tuần tự thao tác tạo bài đăng bán đồ dùng cũ

Hình 2.13: Lược đồ tuần tự thao tác tạo bài đăng bán đồ dùng cũ

Mô tả: Cho phép người dùng tạo mới một bài đăng bán đồ dùng cũ trên ứng dụng

- Người dùng chọn tạo bài đăng trên màn hình đồ dùng cũ (1)

- Ứng dụng hiển thị màn hình tạo bài đăng bán đồ dùng cũ (2)

Người dùng chỉ cần nhập nội dung cho bài đăng bán đồ dùng cũ và nhấn nút "Tạo" để gửi thông tin bài đăng đến hệ thống xử lý.

- Tầng xử lý kiểm tra nội dung bài đăng bán đồ dùng cũ (5), nếu nội dung

31 đã phù hợp với yêu cầu của ứng dụng thì gửi yêu cầu tạo đến tầng dịch vụ (6)

- Dựa vào yêu cầu của tầng xử lý, tầng dịch vụ thực hiện tạo bài đăng bán đồ dùng cũ đến Firestore (7)

- Kết quả tạo bài đăng được trả về tầng dịch vụ (8) Sau đó, tầng dịch vụ chuyển tiếp dữ liệu về tầng xử lý (9)

Nếu tầng xử lý tạo kết quả thành công, bài đăng bán đồ dùng cũ sẽ được lưu vào bộ nhớ tạm thời của ứng dụng Ngược lại, nếu không thành công, tầng giao diện sẽ hiển thị thông báo lỗi.

- Kết quả tạo bài đăng tìm người ở ghép được hiển thị lên giao diện (11) để cho người dùng biết (12)

2.2.1.6 Lược đồ tuần tự thao tác chat

Hình 2.14: Lược đồ tuần tự thao tác chat

Mô tả: Cho phép người dùng chat với một người dùng khác

- Ứng dụng hiển thị màn hình chat (1)

- Người dùng chọn người chat (2)

- Ứng dụng hiển thị màn hình chat chi tiết (3)

- Người dùng nhập tin nhắn cần gửi (4), sau đó nhấn gửi (5)

- Nội dung tin nhắn được gửi đến tầng xử lý (6)

- Tầng xử lý yêu cầu gửi tin nhắn đến tầng dịch vụ (7)

- Tin nhắn được lưu vào cơ sở dữ liệu (8), rồi gửi kết quả lưu về lại tầng dịch vụ (9)

- Tầng dịch vụ chuyển tiếp kết quả lưu trữ về tầng xử lý (10)

Kết quả từ tầng xử lý sẽ được kiểm tra; nếu có lỗi, hệ thống sẽ thông báo cho người dùng Nếu không có lỗi, nội dung tin nhắn sẽ được lưu vào bộ nhớ tạm thời của ứng dụng, sau đó yêu cầu cập nhật lại tin nhắn.

- Ứng dụng hiển thị tin nhắn cho người dùng (13)

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

2.2.2.1 Lược đồ cơ sở dữ liệu

Hình 2.15: Lược đồ cơ sở dữ liệu

2.2.2.2 Mô tả các bảng dữ liệu

Bảng dữ liệu User: Lưu thông tin về tài khoản người dùng

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

UUID Là duy nhất Khóa chính để phân biệt các tài khoản với nhau

2 Name String Tên hiển thị

3 PhoneNumber String Số điện thoại của người sử dụng

4 Hometown String Quê quán của người dùng

5 Job Number Nghề nghiệp của người dùng

6 Gender Number Giới tính của người dùng

7 Birthday Datetime Ngày sinh của người dùng

8 Avatar String Hình đại diện của người dùng

9 Role Number Vai trò của người dùng

Bảng 2.9: Danh sách các thuộc tính bảng User

Bảng dữ liệu Inn: Lưu thông tin phòng trọ

STT Tên thuộc tín Kiểu dữ liệu Ràng buộc Ý nghĩa

1 Id UUID Khóa chính Khóa chính để phân

35 biệt các phòng trọ với nhau

2 Name String Tên phòng trọ

Khóa ngoại đến bảng User để xác định ai là chủ trọ

5 Area Number Diện tích phòng

6 Deposit Number Tiền đặt cọc

9 Wifi Boolean Có Wifi hay không

10 Packing Boolean Có chỗ gửi xe hay không

11 ExactAddress String Địa chỉ chính xác của phòng trọ

Lưu giữ thông tin quận huyện của nhà trọ

13 PhoneNumber String Số điện thoại chủ trọ

14 AirConditioner Boolean Có điều hòa hay không

15 Closet Boolean Có tủ áo quần hay không

16 Tivi Boolean Có tivi hay không

17 WashingMachine Boolean Có máy giặt hay không

18 MaxRoommate Number Số người ở tối đa được phép

19 Kitchen Boolean Có nhà bếp hay không

20 PetsAllow Boolean Cho phép nuôi thú cưng hay không

21 Refrigerator Boolean Có tử lạnh hay không

22 Bed Boolean Có giường ngủ hay không

23 Images Array Hình ảnh nhà trọ

24 Notes String Mô tả trọ

25 Attention String Mô tả các chú ý

26 Coordinate Geo Vị trí của trọ trên bản đồ

27 AvailableStatus Boolean Trạng thái khả dụng của trọ

Bảng 2.10: Danh sách các thuộc tính bảng Inn

Bảng dữ liệu Logistic: Lưu thông tin dịch vụ vận chuyển

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 Id UUID Khóa chính Khóa chính để phân

37 biệt các dịch vụ vận chuyển với nhau

2 Name String Tên dịch vụ vận chuyển

3 Price String Giá dịch vụ vận chuyển

Danh sách vùng hoạt động của dịch vụ vận chuyển

Tỉnh/thành phố nơi dịch vụ vận chuyển hoạt động

Quận/Huyện nơi dịch vụ vận chuyển hoạt động

7 ExactAddress String Địa chỉ của dịch vụ vận chuyển

8 FullAdressObject Object Địa chỉ của dịch vụ vận chuyển dưới dạng Object

9 Image String Hình ảnh dịch vụ vận chuyển

Khóa ngoại đến bảng User để xác định ai là chủ dịch vụ vận chuyển

Số điện thoại liên hệ với dịch vụ vận chuyển

12 CreatedAt Datetime Ngày tạo dịch vụ vận chuyển

Bảng 2.11: Danh sách các thuộc tính bảng Logistic

Bảng dữ liệu Roommate: Lưu thông tin bài đăng tìm người ở ghép

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa chính để phân biết các bài đăng tìm người ở ghép với nhau

2 Content String Nội dung bài đăng

3 Age String Độ tuổi tìm kiếm

4 City String Tỉnh/thành phố tìm kiếm

5 District String Quận/huyện tìm kiếm

6 Gender Number Giới tính cần tìm

7 Job Number Công việc của người ở chung mong muốn

Có thông tin trọ bổ sung hay không Đối với những người đã thuê phòng và tìm kiếm người ở chung

9 InnAddress String Địa chỉ trọ có sẵn

10 InnArea Number Diện tích phòng có sẵn

11 InnDeposit Number Tiền đặt cọc

Khóa ngoại đến bảng User để biết ai là chủ trọ

Liên kết đến bảng User để biết ai là người đăng

18 IsActive Boolean Trạng thái bài đăng

Bảng 2.12: Danh sách các thuộc tính bảng Roommate

Bảng dữ liệu Houseware: Lưu thông tin bài đăng bán đồ dùng cũ

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa chính để phân biệt các bài đăng bán đồ dùng cũ với nhau

2 Content String Nội dung bài đăng

3 City String Tỉnh/thành phố bán

4 District String Quận/huyện bán

5 IsActive Boolean Trạng thái bài đăng

6 CreatedAt Datetime Ngày đăng bài

Bảng 2.13: Danh sách các thuộc tính bảng Houseware

Bảng dữ liệu Message: Lưu thông tin cuộc trò chuyện

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa ngoại liên kết đến người dùng là người gửi tin nhắn

Khóa ngoại liên kết đến người dùng là người nhận tin nhắn

3 Text String Nội dung tin nhắn

4 SendAt Datetime Thời gian gửi

Bảng 2.14: Danh sách các thuộc tính bảng Message

Bảng dữ liệu Item: Lưu thông tin các đồ dùng cũ được bán trong bài đăng bán đồ dùng cũ

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

1 Id UUID Khóa chính Khóa chính để phân biệt các đồ dùng cũ

2 Description String Mô tả cho đồ dùng cũ

3 Price Number Giá của đồ dùng cũ

4 HousewareId UUID Khóa ngoại Khóa ngoại liên kết đến bảng Houseware

41 để biết đồ dùng này thuộc bài đăng nào

Bảng 2.15: Danh sách các thuộc tính bảng Item

Bảng dữ liệu Review: Lưu thông tin các bài đánh giá trọ hoặc dịch vụ vận chuyển STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa chính phân biệt giữa các Review khác nhau

2 PostId UUID Khóa ngoại Liên kết tới bài post

3 Text String Nội dung bài review

4 Star Number Số sao được đánh giá

5 SendAt Datetime Cho biết thời gian viết đánh giá

Liên kết đến bảng User để biết ai là người viết đánh giá

7 Type String Loại bài post

Bảng 2.16: Danh sách các thuộc tính bảng Review

Bảng dữ liệu Comment: Lưu thông tin bình luận cho bài đăng tìm người ở ghép và bài đăng bán đồ cũ

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa chính phân biệt giữa các bình luận khác nhau

2 PostId UUID Khóa ngoại Liên kết tới bài post

3 Text String Nội dung bình luận

4 SendAt Datetime Cho biết thời gian viết bình luận

Liên kết đến bảng User để biết ai là người viết bình luận

6 Type String Loại bài post

Bảng 2.17: Danh sách các thông tin thuộc tính bảng Comment

Bảng dữ liệu Report: Lưu thông tin báo cáo vi phạm

STT Thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa

Khóa chính phân biệt giữa các báo cáo khác nhau

2 PostId UUID Khóa ngoại Liên kết tới bài post

3 Reason Object Lý do báo cáo

4 SendAt Datetime Cho biết thời gian viết bình luận

Liên kết đến bảng User để biết ai là người viết bình luận

6 Type String Loại bài post

Bảng 2.18: Danh sách các thuộc tính bảng Report

React Native, được phát hành bởi Facebook vào năm 2015, là một framework mạnh mẽ cho phép xây dựng ứng dụng đa nền tảng trên Android và iOS Sử dụng ngôn ngữ JavaScript và cách chỉnh sửa giao diện tương tự CSS, React Native giúp các nhà phát triển web dễ dàng tiếp cận và làm quen Với cộng đồng đông đảo và nhiều thư viện hỗ trợ, những người mới bắt đầu có thể nhanh chóng học hỏi và phát triển ứng dụng Hiện nay, React Native đã trở thành một trong những framework phổ biến nhất cho phát triển ứng dụng di động đa nền tảng.

Sử dụng trong đề tài: Ứng dụng được xây dựng từ React Native

7 Nguồn: https://en.wikipedia.org/wiki/React_Native

Firebase là nền tảng phát triển ứng dụng do Google cung cấp, giúp tăng tốc quá trình xây dựng ứng dụng chất lượng cao Nền tảng này hỗ trợ nhiều tính năng như định danh người dùng, lưu trữ file và dịch vụ cloud database, đáp ứng hầu hết các nhu cầu cần thiết cho ứng dụng Một số dịch vụ nổi bật của Firebase bao gồm Cloud Firestore, Storage, Cloud Functions, Realtime Database và Firebase Authentication Đặc biệt, nhiều dịch vụ của Firebase được cung cấp miễn phí trong giới hạn sử dụng lớn, giúp các ứng dụng vừa và nhỏ tiết kiệm chi phí triển khai đáng kể.

Trong đề tài cũng có sử dụng những dịch vụ mà Firebase cung cấp nhằm giảm chi phí và đơn giản hóa quá trình phát triển a Cloud Firestore

Cloud Firestore là cơ sở dữ liệu NoSQL linh hoạt và mở rộng, lý tưởng cho phát triển ứng dụng di động, web và máy chủ từ Firebase và Google Cloud Nó cho phép lưu trữ dữ liệu một cách dễ dàng và hỗ trợ tính năng Offline Support, giúp người dùng sử dụng ứng dụng ngay cả khi không có kết nối internet Dữ liệu sẽ được tự động cập nhật khi kết nối được khôi phục Ngoài ra, Cloud Firestore còn cung cấp khả năng truy vấn dữ liệu đa dạng và nhanh chóng.

Cloud Firestore organizes data into collections, which are similar to tables in SQL Each collection contains multiple documents, with each document representing a data record Within each document, data is stored in a key-value format.

8 Nguồn: https://firebase.google.com/

9 Nguồn: https://firebase.google.com/docs/firestore

45 value Firebase hỗ trợ nhiều kiểu dữ liệu cho value như string, number, array, geo hay một object dữ liệu khác

Hình 2.18: Hình ảnh cách lưu trữ dữ liệu trên Cloud Firestore 10

Cloud Firestore là database lưu trữ hầu hết các dữ liệu của đề tài b Firebase Authentication

Hình 2.19: Hình ảnh các cách xác thực bằng Firebase Authentication 11

Firebase Authentication đơn giản hóa quá trình xác thực người dùng cho ứng dụng thông qua các nhà cung cấp như Google, Facebook, Gmail và số điện thoại Bên cạnh đó, các nhà phát triển có thể tạo ra phương thức xác thực tùy chỉnh cho ứng dụng của mình, mang lại sự linh hoạt và đáp ứng nhu cầu đa dạng của người dùng.

10 Nguồn: https://firebase.google.com/docs/firestore

11 Nguồn: https://firebase.google.com/docs/auth

Để đăng nhập vào ứng dụng một cách nhanh chóng và dễ dàng, chúng ta có thể sử dụng 46 phương thức khác nhau Trong đó, hai phương pháp xác thực phổ biến được cung cấp bởi Firebase là xác thực qua Facebook và xác thực bằng số điện thoại Ngoài ra, Firebase Storage cũng đóng vai trò quan trọng trong việc lưu trữ dữ liệu.

Firebase Storage là giải pháp lý tưởng cho việc lưu trữ các tệp tin do người dùng tải lên trong ứng dụng, bao gồm hình ảnh, tài liệu Word, PDF và nhiều định dạng khác.

Hình ảnh trọ, dịch vụ vận chuyển hay những hình ảnh khác trong ứng dụng được lưu trữ tại Firebase Storage d Realtime Database

Triển khai hệ thống

2.3.1 Firebase Ứng dụng sử dụng Firebase để lưu trữ hầu hết các dữ liệu Plan free của Firebase có những lợi ích sau:

- Cho phép chứng thực 10.000 lần mỗi tháng

- Firestore cho phép lưu trữ 1GB miễn phí, cùng với việc cho 50000 lượt đọc,

20000 lượt viết và 20000 lượt xóa tài liệu miễn phí mỗi ngày

- Cloud Storage hỗ trợ lưu trữ 5GB để lưu trữ các hình ảnh, các file dữ liệu trong ứng dụng

Những lợi ích của Plan free giúp giảm thiểu chi phí triển khai của ứng dụng Đồng thời cho phép triển khai ứng dụng nhanh chóng hơn

Hình 2.51: Hình ảnh xác thực tài khoản với firebase authentication

Hình 2.52: Hình ảnh lưu trữ dữ liệu với Firestore Database

Algolia cung cấp khả năng lưu trữ cho các chức năng tìm kiếm toàn văn và lọc dữ liệu nâng cao mà Firebase không hỗ trợ Đặc biệt, Algolia cho phép miễn phí 10.000 yêu cầu mỗi tháng.

Hình 2.53: Hình ảnh sử dụng Algolia để lưu trữ các thông tin trọ

2.3.3 Ứng dụng di động Ứng dụng được cài đặt và chạy trên thiết bị Redmi 7 với hệ điều hành Android 10.

Ngày đăng: 20/04/2022, 09:28

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] W. Saman, “ReactNative best practices With best folder structure”, 10 Dec 2020. [online]. Available: https://samanw.medium.com/reactnative-best-practices-with-best-folder-structure-6d2716d3d9cb [Accessed 27 Mar 2021] Sách, tạp chí
Tiêu đề: ReactNative best practices With best folder structure
[2] T. Ken, “Firebase Firestore Text Search and Pagination”, 26 Feb 2019. [online]. Available: https://medium.com/@ken11zer01/firebase-firestore-text-search-and-pagination-91a0df8131ef [Accessed 23 Apr 2021] Sách, tạp chí
Tiêu đề: Firebase Firestore Text Search and Pagination
[3] B. Ross, “React Native Lists: Load More by Scrolling”, 14 Aug 2020. [online]. Available: https://rossbulat.medium.com/react-native-lists-load-more-by-scrolling-378a1c5f56a6 [Accessed 24 Apr 2021] Sách, tạp chí
Tiêu đề: React Native Lists: Load More by Scrolling
[4] S. Nicholas, “Setup Facebook Login using Firebase”, 28 May 2020. [online]. Available: https://medium.com/@nicholasstano/setup-facebook-login-using-firebase-84ced79e7f5e [Accessed 28 Apr 2021] Sách, tạp chí
Tiêu đề: Setup Facebook Login using Firebase
[5] R. Umang, “Facebook login in React Native apps”, 30 Aug 2019. [online]. Available: https://medium.com/enappd/facebook-login-in-react-native-apps-6ff5995e1932 [Accessed 28 Apr 2021] Sách, tạp chí
Tiêu đề: Facebook login in React Native apps
[6] K. Vadim, “Building in-app notification system in React Native” 2 Sep 2019. [online]. Available: https://medium.com/@vadimkorr/building-in-app-notification-system-in-react-native-96efd478ef31 [Accessed 25 May 2021] Sách, tạp chí
Tiêu đề: Building in-app notification system in React Native
[7] Facebook, “Core Components and Native Components”. [online]. Available: https://reactnative.dev/docs/intro-react-native-components Sách, tạp chí
Tiêu đề: Core Components and Native Components
[8] Google, “Add Firebase to your JavaScript project”, Available: https://firebase.google.com/docs/web/setup [Accessed 2 Apr 2021] Sách, tạp chí
Tiêu đề: Add Firebase to your JavaScript project
[9] Google, “Paginate data with query cursors”, Available: https://firebase.google.com/docs/firestore/query-data/query-cursors [Accessed 2 Apr 2021] Sách, tạp chí
Tiêu đề: Paginate data with query cursors
[10] Jscrambler Blog, “Build a Chat App with Firebase and React Native”, 24 Apr 2019. [online]. Available: https://blog.jscrambler.com/build-a-chat-app-with- Sách, tạp chí
Tiêu đề: Build a Chat App with Firebase and React Native
[1] N.M. Quan, “Làm việc với Firebase Realtime Database”, 10/20/2016. [Trực tuyến]. Địa chỉ: https://viblo.asia/p/lam-viec-voi-firebase-realtime-database-ZjlvalVXkqJ [Truy cập 23/04/2021] Sách, tạp chí
Tiêu đề: Làm việc với Firebase Realtime Database
[2] Tapchicongthuong, “Nghiên cứu hành vi thuê nhà trọ của sinh viên Trường Đại học Công nghiệp Hà Nội”, 13/08/2020. [Trực tuyến]. Địa chỉ:https://tapchicongthuong.vn/bai-viet/nghien-cuu-hanh-vi-thue-nha-tro-cua-sinh-vien-truong-dai-hoc-cong-nghiep-ha-noi-73954.htm [Truy cập 13/03/2021] Sách, tạp chí
Tiêu đề: Nghiên cứu hành vi thuê nhà trọ của sinh viên Trường Đại học Công nghiệp Hà Nội
[3] HueDiemDue, “Sử dụng svg và animation render view trong react native”, 10/05/2019. [Trực tuyến]. Địa chỉ: https://viblo.asia/p/su-dung-svg-va-animation-render-view-trong-react-native-Az45bGrgKxY [Truy cập 01/04/2021] Sách, tạp chí
Tiêu đề: Sử dụng svg và animation render view trong react native
[4] L.T.T. Vinh và N.T. Phong, “Điều tra nhu cầu và khả năng tìm kiếm phòng trọ của sinh viên trường Đại học Vinh”. [Ngoại tuyến] Sách, tạp chí
Tiêu đề: Điều tra nhu cầu và khả năng tìm kiếm phòng trọ của sinh viên trường Đại học Vinh
23/04/2018. [Trực tuyến]. Địa chỉ: https://nld.com.vn/cong-doan/tphcm-phan-lon-cong-nhan-phai-thue-nha-tro-gia-re-20180423073842761.htm [Truy cập14/03/2021] Link

HÌNH ẢNH LIÊN QUAN

7. Hình ảnh, sơ đồ minh họa chính: - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
7. Hình ảnh, sơ đồ minh họa chính: (Trang 4)
1 STT Số thứ tự Số thứ tự trong bảng 2 HTTP HyperText - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
1 STT Số thứ tự Số thứ tự trong bảng 2 HTTP HyperText (Trang 12)
2.1.3.1. Mô hình usecase toàn hệ thống - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
2.1.3.1. Mô hình usecase toàn hệ thống (Trang 24)
Bảng 2.2: Danh sách các usecase - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Bảng 2.2 Danh sách các usecase (Trang 27)
Bảng 2.3: Đặc tả usecase đăng nhập b. Use case tìm trọ - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Bảng 2.3 Đặc tả usecase đăng nhập b. Use case tìm trọ (Trang 28)
Bảng 2.4: Đặc tả usecase tìm trọ - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Bảng 2.4 Đặc tả usecase tìm trọ (Trang 29)
Bảng 2.5: Đặc tả usecase tìm dịch vụ vận chuyển - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Bảng 2.5 Đặc tả usecase tìm dịch vụ vận chuyển (Trang 30)
Hình 2.4: Usecase tìm dịch vụ vận chuyển - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.4 Usecase tìm dịch vụ vận chuyển (Trang 30)
2. Ứng dụng hiển thị màn hình tạo bài đăng - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
2. Ứng dụng hiển thị màn hình tạo bài đăng (Trang 31)
Hình 2.5: Usecase thêm bài viết tìm người ở ghép - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.5 Usecase thêm bài viết tìm người ở ghép (Trang 31)
Hình 2.7: Usecase chat - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.7 Usecase chat (Trang 33)
Hình 2.8: Lược đồ tuần tự thao tác đăng nhập bằng số điện thoại Mô tả: Người dùng có thể đăng nhập bằng số điện thoại - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.8 Lược đồ tuần tự thao tác đăng nhập bằng số điện thoại Mô tả: Người dùng có thể đăng nhập bằng số điện thoại (Trang 34)
- Phần xử lý điều hướng đến màn hình nhập thông tin cá nhân nếu người dùng là người dùng mới của ứng dụng (9.1) - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
h ần xử lý điều hướng đến màn hình nhập thông tin cá nhân nếu người dùng là người dùng mới của ứng dụng (9.1) (Trang 37)
Hình 2.11: Lược đồ tuần tự thao tác tìm kiếm dịch vụ vận chuyển Mô tả: Cho phép người dùng tìm kiếm dịch vụ vận chuyển - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.11 Lược đồ tuần tự thao tác tìm kiếm dịch vụ vận chuyển Mô tả: Cho phép người dùng tìm kiếm dịch vụ vận chuyển (Trang 39)
Hình 2.12: Lược đồ tuần tự thao tác tạo bài đăng tìm người ở ghép - Xây dựng ứng dụng hỗ trợ các dịch vụ liên quan ở trọ
Hình 2.12 Lược đồ tuần tự thao tác tạo bài đăng tìm người ở ghép (Trang 40)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w