Tìm hiểu về ứng dụng tìm kiếm nhà trọ trên di động cho sinh viên

Đồ án kỹ thuật nghiên cứu hcmute tìm hiểu xây dựng ứng dụng tìm kiếm nhà trọ trên di động, thiết kế chi tiết, tính toán kỹ thuật theo tiêu chuẩn, đánh giá tính khả thi dự án.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2020

112
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CÁM ƠN

LỜI CAM ĐOAN

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. KOTLIN

1.2. TỔNG QUAN VỀ XMPP

1.3. TỔNG QUAN VỀ WEBRTC

2. CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

2.1. KHẢO SÁT HIỆN TRẠNG

2.2. XÁC ĐỊNH YÊU CẦU

3. CHƯƠNG 3: MÔ HÌNH HÓA YÊU CẦU

3.1. Lược đồ user case của User và Admin

3.2. Thống kê nghiệp vụ cho từng đối tượng

3.3. Quản trị viên (Admin)

3.4. Quản trị viên cao nhất (Super Admin)

4. CHƯƠNG 4: THIẾT KẾ PHẦN MỀM

4.1. Lược đồ lớp cho user

4.2. LƯỢC ĐỒ TUẦN TỰ (SEQUENCE DIAGRAM)

4.3. Chức năng đăng nhập

4.4. Tìm và lọc nhà trọ

4.5. Xem nhà trọ trên bản đồ

4.6. Sửa thông tin cá nhân

4.7. Sửa thông tin nhà trọ

4.8. Xem chi tiết nhà trọ

4.9. Thống kê nhà trọ (Admin và Super Admin)

4.10. Thống kê User (Admin và Super Admin)

4.11. Duyệt bài đăng (Admin và Super Admin)

4.12. Sửa thông tin cá nhân (Admin và Super Admin)

4.13. Lược đồ cơ sở dữ liệu (CSDL)

4.14. Hình ảnh CSDL

4.15. Giải thích CSDL

4.16. Bảng tbl_user

4.17. Bảng tbl_userinfor

4.18. Bảng tbl_thanhpho

4.19. Bảng tbl_quan

4.20. Bảng tbl_qlnhatro

4.21. Bảng tbl_nhatro

4.22. Bảng tbl_hinhanh

4.23. Bảng tbl_danhgia

4.24. Bảng tbl_chitietnt

4.25. Bảng tbl_bl_nhatro

4.26. Bảng tbl_bl_nguoidung

4.27. Bảng tbl_binhluan

4.28. Bảng tbl_admin

4.29. Bảng tbl_admininfor

5. CHƯƠNG 5: THIẾT KẾ GIAO DIỆN

5.1. GIAO DIỆN USER

5.1.1. Giao diện Home

5.1.2. Giao diện tìm kiếm

5.1.3. Giao diện cá nhân

5.1.4. Giao diện chi tiết nhà trọ

5.1.5. Giao diện bản đồ

5.1.6. Giao diện lọc

5.1.7. Giao diện đăng trọ

5.1.8. Giao diện xem nhà trọ đã đăng

5.1.9. Giao diện sửa nhà trọ

5.1.10. Giao diện đăng nhập

5.1.11. Giao diện quên mật khẩu

5.1.12. Giao diện đổi mật khẩu

5.1.13. Giao diện đặt mật khẩu mới

5.1.14. Giao diện đăng ký

5.1.15. Giao diện danh sách tin nhắn

5.1.16. Giao diện xem tin nhắn

5.1.17. Giao diện nhận cuộc gọi

5.1.18. Giao diện gọi

5.2. GIAO DIỆN ADMIN

5.2.1. Giao diện đăng nhập

5.2.2. Giao diện trang chủ

5.2.3. Giao diện sửa đổi thông tin

5.2.4. Giao diện quản lý nhà trọ

5.2.5. Giao diện quản lý User

5.2.6. Giao diện quản lý Admin

5.2.7. Giao diện thêm Admin

5.3. Triển khai hệ thống gợi ý cho người dùng (RS)

5.4. Ứng dụng thuật toán Collaborative Filtering Recommend System Pearson correlation

5.5. Thuật toán Pearson correlation

5.6. Tính toán sự tương quan giữa hai người dùng

5.7. Tính toán độ tương quan giữa hai nhà trọ dựa vào các đặc tính của nhà trọ

6. CHƯƠNG 6: KIỂM THỬ PHẦN MỀM

6.1. Cài đặt ứng dụng

6.2. Các bước cài đặt

PHẦN KẾT LUẬN

DANH MỤC THAM KHẢO

Tóm tắt

I. Ứng dụng tìm kiếm nhà trọ sinh viên Tổng quan và nhu cầu

Tìm kiếm nhà trọ luôn là thách thức đối với sinh viên, đặc biệt ở các thành phố lớn. Ứng dụng tìm kiếm nhà trọ sinh viên trên di động giải quyết vấn đề này. App tìm kiếm nhà trọ, phần mềm tìm kiếm nhà trọ, và website tìm kiếm nhà trọ sinh viên cung cấp giải pháp tiện lợi. Sinh viên có thể tìm nhà trọ online, tìm phòng trọ sinh viên, và thuê nhà trọ sinh viên dễ dàng. Ứng dụng tìm kiếm nhà trọ trên điện thoại đáp ứng nhu cầu truy cập thông tin mọi lúc mọi nơi. Tìm kiếm nhà trọ tiện lợi là ưu điểm vượt trội. Đây là giải pháp tìm kiếm nhà trọ cho sinh viên hiệu quả.

1.1 Thực trạng tìm kiếm nhà trọ sinh viên truyền thống

Trước đây, sinh viên chủ yếu tìm nhà trọ qua mạng xã hội, người quen, hoặc thông tin dán ở các khu vực công cộng. Phương pháp này có nhiều bất cập. Thông tin thiếu chính xác, cập nhật chậm. Sinh viên khó so sánh giá nhà trọ. Việc đánh giá nhà trọ sinh viên cũng khó khăn. Thiếu hình ảnh, ảnh nhà trọ sinh viên, video nhà trọ sinh viên, hoặc bản đồ nhà trọ sinh viên chi tiết. Tìm kiếm theo khu vực, giá cả cũng gặp nhiều khó khăn. Sinh viên phải mất nhiều thời gian và công sức. Khó tìm nhà trọ sinh viên giá rẻ, nhà trọ gần trường đại học, hoặc nhà trọ có tiện nghi đầy đủ. Kinh nghiệm tìm nhà trọ cũng được chia sẻ hạn chế, gây khó khăn cho sinh viên mới.

1.2 Vai trò của ứng dụng di động trong việc tìm kiếm nhà trọ

Ứng dụng tìm kiếm nhà trọ tốt nhất trên di động khắc phục nhiều hạn chế. Ứng dụng cung cấp cơ sở dữ liệu nhà trọ lớn, cập nhật thường xuyên. Sinh viên dễ dàng tìm nhà trọ theo khu vực, tìm nhà trọ theo giá, và tìm nhà trọ có tiện nghi. Ứng dụng cho phép so sánh giá nhà trọ trực tiếp. Ảnh nhà trọ sinh viên, video nhà trọ sinh viên, và thông tin chi tiết giúp sinh viên ra quyết định. Ứng dụng tìm kiếm nhà trọ miễn phí hoặc tính phí hợp lý. Ứng dụng tìm kiếm nhà trọ uy tín cung cấp môi trường an toàn cho sinh viên. Ứng dụng tìm kiếm nhà trọ Androidứng dụng tìm kiếm nhà trọ iOS đáp ứng đa dạng thiết bị. Lưu ý khi tìm nhà trọ cũng được ứng dụng cung cấp. Mẹo tìm nhà trọ giá rẻ giúp sinh viên tiết kiệm chi phí. Ứng dụng giúp kết nối chủ nhà và người thuê hiệu quả. Nhà trọ cho thuê, cho thuê nhà trọ sinh viên, nhà trọ gần trường, nhà trọ đầy đủ tiện nghi, nhà trọ an ninh tốt đều được cập nhật đầy đủ.

II. Phân tích chức năng của ứng dụng tìm kiếm nhà trọ

Ứng dụng cần có giao diện thân thiện, dễ sử dụng. Chức năng tìm kiếm đa dạng, lọc kết quả chính xác. Cung cấp đầy đủ thông tin nhà trọ: hình ảnh, video, mô tả, giá cả, tiện ích. Hệ thống đánh giá, bình luận giúp sinh viên tham khảo. Chức năng liên hệ chủ nhà nhanh chóng, tiện lợi. Bản đồ tích hợp giúp định vị nhà trọ dễ dàng. Tính năng lưu nhà trọ yêu thích, lịch sử tìm kiếm. Cơ chế bảo mật thông tin người dùng.

2.1 Tính năng tìm kiếm và lọc

Hệ thống tìm kiếm mạnh mẽ, cho phép tìm kiếm theo nhiều tiêu chí: khu vực, giá cả, tiện ích, loại phòng. Bộ lọc đa dạng giúp thu hẹp kết quả tìm kiếm. Tìm kiếm theo từ khóa linh hoạt. Hiển thị kết quả tìm kiếm trên bản đồ. Chức năng gợi ý, đề xuất nhà trọ phù hợp với nhu cầu người dùng. Tìm nhà trọ theo khu vựctìm nhà trọ theo giá là tính năng cần thiết. Tích hợp bản đồ giúp người dùng định vị nhanh chóng. Ứng dụng tìm kiếm nhà trọ tốt nhất cho sinh viên cần có tính năng này. Tìm kiếm nhà trọ tiện lợi là yếu tố quan trọng.

2.2 Tính năng quản lý và tương tác

Chức năng đăng ký, đăng nhập an toàn. Quản lý thông tin cá nhân. Chức năng liên hệ với chủ nhà trực tiếp qua tin nhắn hoặc gọi điện. Hệ thống đánh giá, bình luận giúp người dùng chia sẻ kinh nghiệm. Báo cáo sự cố, phản hồi đến nhà phát triển. Tích hợp hệ thống thanh toán an toàn. Nhà trọ cho thuê cần có tính năng quản lý nhà trọ. Cho thuê nhà trọ sinh viên cần tính năng tương tác với người thuê. Nhà trọ gần trườngnhà trọ đầy đủ tiện nghi cần được quản lý hiệu quả. Nhà trọ an ninh tốt cần được nhấn mạnh.

01/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. KOTLIN - Kotlin là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn JavaScript hay sử dụng cơ sở hạ tầng trình biên dịch LLVM. Nó được tài trợ và phát triển bởi JetBrains. Mặc dù cú pháp không tương thích với Java, nhưng hiện thực JVM của thư viện chuẩn Kotlin được thiết kế để tương tác với mã Java và dựa vào mã Java từ Java Class Library có sẵn, ví dụ như collections framework.

Kotlin sử dụng suy luận kiểu một cách tích cực để xác định kiểu của giá trị và biểu thức vốn không được nêu rõ. Điều này giúp giảm tính dài dòng của ngôn ngữ so với Java, vốn thường đòi hỏi toàn bộ đặc kiểu một cách dư thừa mãi đến phiên bản 10. Mã Kotlin có thể chạy trên JVM đến phiên bản Java 11 mới nhất.[1] - Một số ưu điểm của Kotlin:  Kotlin có khả năng tương thích cao với Java.  Ngắn gọn hơn Java.

 An toàn hơn Java: tránh được các lỗi null pointer.  Kotlin hỗ trợ tốt hơn cho lập trình chức năng. TỔNG QUAN VỀ XMPP Extensible Messaging and Presence Protocol (XMPP) là một giao thức hiện diện và nhắn tin mở rộng, là một tập hợp công nghệ dùng cho việc nhắn tin tức thời, thông tin hiện diện, trò chuyện nhiều bên, thực hiện cuộc gọi thoại và video, cung cấp nội dung và định tuyến dữ liệu XML tổng quát. Một số lợi ích của XMPP:  Miễn phí - các giao thức XMPP là miễn phí, mở, công khai và dễ hiểu.

 Tiêu chuẩn - Lực lượng Chuyên trách về Kỹ thuật Liên mạng (Internet Engineering Task Force - IETF) đã chính thức thông báo các giao thức truyền phát XML là một công nghệ hiện diện và nhắn tin tức thời được thừa nhận. 4 do an  Đã được chứng minh - các công nghệ Jabber / XMPP đầu tiên được phát triển bởi Jeremie Miller vào năm 1998 và hiện khá ổn định, hàng trăm nhà phát triển đang làm việc trên các công nghệ này và có hàng chục ngàn máy chủ XMPP đang chạy trên Internet ngày nay.  Phân cấp - kiến trúc của mạng XMPP tương tự như email; kết quả là, bất kỳ ai cũng có thể chạy máy chủ XMPP của riêng họ, cho phép các cá nhân và tổ chức kiểm soát trải nghiệm liên lạc của họ.  Bảo mật - mọi máy chủ XMPP có thể được cách ly khỏi mạng công cộng (ví dụ: trên mạng nội bộ của công ty) và bảo mật mạnh mẽ bằng cách sử dụng SASL và TLS đã được tích hợp vào các thông số kỹ thuật XMPP cốt lõi.

Ngoài ra, cộng đồng nhà phát triển XMPP đang tích cực làm việc về mã hóa đầu cuối để nâng cao bảo mật.  Có thể mở rộng - bất kỳ ai cũng có thể xây dựng chức năng tùy chỉnh trên các giao thức cốt lõi.  Linh hoạt - Các ứng dụng XMPP ngoài Instance Message bao gồm quản lý mạng, cung cấp nội dung, công cụ cộng tác, chia sẻ tệp, chơi trò chơi, giám sát hệ thống từ xa, dịch vụ web, phần mềm trung gian nhẹ, điện toán đám mây và nhiều hơn nữa.  Phong phú - một loạt các công ty và các dự án nguồn mở sử dụng XMPP để xây dựng và triển khai các ứng dụng và dịch vụ thời gian thực.

TỔNG QUAN VỀ WEBRTC WebRTC (Web Real-Time Communication) là một web API được phát triển bởi World Wide Web Consortium (W3C), khả năng hỗ trợ trình duyệt (browser) giao tiếp với nhau thông qua Video Call, Voice Call hay transfer data "Peer-to-Peer" (P2P) mà không cần browser phải cài thêm plugins hay phần mềm hỗ trợ nào từ bên ngoài. WebRTC đã được hình thành ý tưởng từ những năm 2009 bởi nhóm kỹ sư Google Hangouts. Thay vì sử dụng Flash để truyền video, hình ảnh trên web, họ quyết định tự tạo ra một sản phẩm của riêng mình. Năm 2010, khi hai công ty On2 và Global IP Solutions(GIPS) chính thức bị Google thâu tóm, công nghệ truyền dữ liệu thời gian thực cũng được lấy làm nền tảng 5 do an cho WebRTC.

Đến tháng 5 năm 2011, dự án nguồn mở hỗ trợ giao tiếp thời gian thực giữa trình duyệt mang tên WebRTC mới chính thức được ra mắt. Cùng lúc đó, W3C và Hiệp Hội Kỹ Sư Quốc Tế(IETF) cũng phát triển các giao thức kết nối thời gian thực. Vì thế, họ đã quyết định bắt tay để cùng nhau xây dựng sản phẩm này. Tháng 10 năm 2011, phiên bản đầu tiên của WebRTC chính thức ra mắt, đến tháng 11, Chrome 23 ra đời và trở thành trình duyệt đầu tiên tích hợp sẵn WebRTC.

Tính năng nổi bật nhất của WebRTC chắc chắn chính là khả năng truyền tải video, âm thanh, gửi dữ liệu theo thời gian thực giữa hai hay nhiều thiết bị mà không qua trung gian, không cần cài thêm plugin. Một số lợi ích của WebRTC  Mã nguồn mở miễn phí: WebRTC là một dự án mã nguồn mở miễn phí. Google cho biết đây là một công cụ truyền thông thời gian thực hoàn toàn miễn phí và có sẵn trên mọi trình duyệt.  Hỗ trợ đa nền tảng: có thể sử dụng trên cả web và mobile  Bảo mật voice và video: Giao thức SRTP (Secure Real-Time Transport Protocol) được dùng để mã hóa và xác thực dữ liệu media.

Chống lại các khả năng bị nghe trộm trong quá trình thực hiện tác vụ video hay voice.  Không cần plugin hay phần mềm hỗ trợ: Yếu tố quan trọng giúp WebRTC được đánh giá rất cao chính là khả năng hoạt động không cần đến plugin bên thứ ba mang đến sự tiện lợi, tối ưu tốc độ, tiết kiệm chi phí,…  Tương đối dễ sử dụng: WebRTC có thể được tích hợp trong các dịch vụ web bằng cách dùng JavaScript APIs, các Framework có sẵn. Sử dụng bằng thông hiệu quả: Hỗ trợ nhiều kiểu media và các thiết bị đầu cuối khác nhau, WebRTC sử dụng băng thông hiệu quả hơn, hoạt động tốt trong mọi điều kiện đường truyền mạng. Tổng quan Node.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ web.

Chương trình được viết bằng JavaScript, sử dụng kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối tiểu tổng chi 6 do an phí và tối đại khả năng mở rộng.js bao gồm có V8 JavaScript engine của Google, libUV, và vài thư viện khác.js được tạo bởi Ryan Dahl từ năm 2009, và phát triển dưới sự bảo trợ của Joyent. [1] Mục tiêu ban đầu của Dahl là làm cho trang web có khả năng push như trong một số ứng dụng web như Gmail. Sau khi thử với vài ngôn ngữ Dahl chọn Javascript vì một API Nhập/Xuất không đầy đủ. Điều này cho phép anh có thể định nghĩa một quy ước Nhập/Xuất điểu khiển theo sự kiện, non-blocking.

[1] Vài môi trường tương tự được viết trong các ngôn ngữ khác bao gồm Twisted cho Python, Perl Object Environment cho Perl, libevent cho C và EventMachine cho Ruby. Khác với hầu hết các chương trình Javascript, Nodejs không chạy trên một trình duyệt mà chạy trên Server.js sử dụng nhiều chi tiết kỹ thuật của CommonJS.[6] Nó cung cấp một môi trường REPL cho kiểm thử tương tác.js được InfoWorld bình chọn là "Công nghệ của năm" năm 2012. [1]  Một số khái niệm trong Nodejs. Event: NodeJS hỗ trợ các sự kiện trong các ứng dụng rất hoàn hảo.

Mỗi hành động trong máy tính được gọi là 1 sự kiện (event). NodeJS sử dụng quy tắc FIFO (First In First Out), điều này có nghĩa là những yêu cầu đến trước sẽ được xử lý trước. [1] Callbacks: Máy chủ NodeJS có thể nhận rất nhiều các yêu cầu (request) từ rất nhiều người dùng. Vì vậy để nâng cao khả năng phục vụ, tất cả các API của NodeJS được thiết kế hỗ trợ Callback.

"callback" là môt hàm (function), nó sẽ được gọi khi NodeJs hoàn thành một tác vụ (task) cụ thể. [1] Message: nội dung thông báo tương ứng với từng Callbacks. [1] Blocking I/O: là cơ chế được ứng dụng trong phân lớn các ngôn ngữ server-side, cơ chế này quản lý các request đến server và lân lượt cho thưc hiện yêu câu của request tiếp theo khi request đang xử lý đã hoàn thành. Từ đây dễ thấy được 7 do an rằng nếu các yêu câu xử lý của request đến sớm tiêu tốn nhiều thời gian thì các request đến sau bắt buộc phải đợi toàn bộ thời gian xử lý này.

Với NodeJS việc quản lý các request yêu câu được thay thế bằng cơ chế xử lý Non-Blocking I/O để giải quyết vấn đề thời gian chờ nêu trên. [1] Thread Pool: là một chương trình viết bằng ngôn ngữ C++ được tích hợp bên trong NodeJS, chương trình này cho phép xử lý đa luồng. Đây chính là môi trường xử lý chính cho tất cả tác vụ được server NodeJS xử lý và các tác vụ này cũng được xử lý trên các luồng khác nhau. [1] Event Loop: là một vòng lặp vô tận, nó chuyển các yêu câu đã nhận sang Thread Pool, đồng thời mỗi một yêu câu cũng được tư động đăng ký một Callback, khi yêu câu được xử lý xong hàm Callback tương ứng sẽ được thưc thi.

Nguyên tắc hoạt động của cơ chế bất đồng bộ [3] Bất đồng bộ(Asynchronous): Không theo thứ tự, các hành động có thể xảy ra đồng thời hoặc chí ít, mặc dù các hành động bắt đầu theo thứ tự nhưng kết thúc thì không. Một hành động có thể bắt đầu (và thậm chí kết thúc) trước khi hành động trước đó hoàn thành. Vì thế, trong thời gian chờ kết quả trả về nó vẫn hoạt động do đó cơ chế xử lý bất đồng bộ tối ưu được thời gian xử lý. 1: Nguyên tắc hoạt động của cơ chế bất đồng bộ 8 do an Heap : là vùng nhớ được dùng để chưa kết quả tạm phục vụ cho việc thực thi các hàm trong stack.

Heap càng lớn thì khả năng tính toán càng cao. Stack: là một vùng nhớ đặc biệt trên con chip máy tính phục vụ cho quá trình thực thi các dòng lệnh mà cụ thể là các hàm. Hàm chẳng qua là một nhóm các lệnh và chương trình thì gồm một nhóm các hàm phối hợp với nhau. Mỗi khi một hàm được triệu gọi thì nó sẽ được đẩy vào một hàng đợi đặc biệt có tên là stack.

Stack là một hàng đợi kiểu LIFO (Last In First Out) nghĩa là vào đầu tiên thì ra sau cùng. Một hàm chỉ được lấy ra khỏi stack khi nó hoàn thành và return. Js runtime engine là khu thực thi câu lệnh js gồm Heap và stack. Web APIs là nơi chức các tác vụ được cung cấp bởi trình duyệt.

Callback queue: là hàng đợi công việc kiểu FIFO(first in first out). Vào trước ra trước. Event Loop: là đọc Stack và Event Queue.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Ứng dụng tìm kiếm nhà trọ trên di động: Giải pháp tiện lợi cho sinh viên" giới thiệu về một ứng dụng hữu ích giúp sinh viên dễ dàng tìm kiếm và lựa chọn nhà trọ phù hợp với nhu cầu của mình. Ứng dụng này không chỉ tiết kiệm thời gian mà còn cung cấp thông tin chi tiết về các địa điểm, giá cả và các tiện ích đi kèm, giúp sinh viên có thể đưa ra quyết định thông minh hơn. Bên cạnh đó, việc sử dụng ứng dụng trên di động mang lại sự tiện lợi tối đa, cho phép người dùng tìm kiếm mọi lúc, mọi nơi.

Nếu bạn muốn tìm hiểu thêm về các ứng dụng liên quan đến việc đặt phòng, hãy tham khảo bài viết "Tiểu luận đề tài xây dựng ứng dụng đặt phòng khách sạn và karaoke trên di động", nơi bạn sẽ khám phá cách công nghệ hỗ trợ trong việc đặt phòng khách sạn. Ngoài ra, bài viết "Đồ án hcmute xây dựng ứng dụng tìm nhà trọ" cũng sẽ cung cấp cho bạn cái nhìn sâu sắc hơn về các giải pháp tìm kiếm nhà trọ. Cuối cùng, nếu bạn quan tâm đến việc phát triển ứng dụng cho dịch vụ du lịch, hãy xem bài viết "Phát triển ứng dụng đặt phòng dịch vụ du lịch homestay trên nền tảng android luận văn thạc sĩ" để mở rộng kiến thức của mình.