XÂY DỰNG HỆ THỐNG
Mô hình tổng quan của hệ thống
Hình 04: Mô hình tổng quan của hệ thống
Hệ thống được thiết kế theo mô hình client-server, với một server Node.js triển khai và các client giao tiếp thông qua Restful API bằng các phương thức GET, POST, PUT, DELETE Server sử dụng cơ sở dữ liệu MySQL để lưu trữ thông tin, và tất cả các giao tiếp giữa client-server cũng như server-database đều sử dụng định dạng dữ liệu JSON.
Hệ thống gồm các chức năng chính như sau: Đăng ký: Chức năng này dành cho những người dùng chưa có tài khoản trên hệ thống
Nếu người dùng chưa có tài khoản Facebook, hệ thống cho phép họ nhanh chóng nhập thông tin cơ bản để tạo tài khoản Đối với những người đã có tài khoản, họ có thể đăng nhập bằng email và mật khẩu đã đăng ký hoặc thông qua tài khoản Facebook Sau khi đăng nhập, người dùng có thể đăng tin cho thuê phòng trọ, cung cấp thông tin chi tiết như địa chỉ, diện tích, giá thuê, số lượng người ở và hình ảnh liên quan.
Tìm kiếm phòng trọ là chức năng dành cho những ai cần thuê phòng mà không cần đăng nhập Người dùng có thể dễ dàng xem thông tin chi tiết về các phòng trọ, đồng thời tìm kiếm theo địa điểm, bán kính, hoặc gần các trường đại học, sử dụng các bộ lọc thông tin phù hợp.
Xem danh sách phòng trọ đã đăng: Chức năng này dành cho người sử dụng có bài đăng thực hiện việc xem bài đăng của mình
Lưu tin đăng vào mục yêu thích giúp người dùng dễ dàng quản lý thông tin mà họ quan tâm nhưng chưa có thời gian để liên hệ Bằng cách này, người dùng có thể tìm kiếm lại các bản tin yêu thích một cách thuận tiện hơn sau này.
Chức năng chỉnh sửa bài đăng cho phép người dùng cập nhật thông tin, phản hồi đánh giá từ người xem hoặc xóa bài đăng của mình một cách dễ dàng.
Chức năng xem thông tin tài khoản cho phép người dùng đã đăng ký hệ thống tra cứu thông tin cá nhân của mình một cách dễ dàng.
Chỉnh sửa thông tin tài khoản cho phép người dùng đã đăng ký cập nhật thông tin cá nhân của mình Ngoài ra, chức năng đánh giá bài đăng cũng dành cho người dùng đã đăng ký, giúp họ xem và đánh giá nội dung bài viết của người khác.
Liên hệ với người dùng khác là tính năng dành cho những người đã đăng ký tài khoản trong hệ thống, cho phép họ giao tiếp qua email, chat hoặc gọi điện thoại.
Phân tích
1 Phân tích chức năng và biểu đồ Use case của hệ thống
1.1 Phân tích Use case tổng quan hệ thống
Hình 05: Use case tổng quan
Tác nhân tham gia hệ thống:
User là người sử dụng hệ thống, có khả năng quản lý thông tin tài khoản, đăng tin phòng trọ và theo dõi danh sách phòng trọ đã đăng thông qua việc đăng nhập vào hệ thống.
User cũng có thể tìm kiếm phòng trọ nhưng không liên hệ được với người đăng nếu không đăng nhập
STT CaseID Tên Mô tả
1 UC_001 Đăng nhập Use case cho phép người sử dụng đăng nhập hệ thống
2 UC_002 Đăng kí Use case cho phép người sử dụng đăng kí tài khoản
3 UC_003 Xem thông tin tài khoản Use case cho phép người sử dụng có tài khoản cá nhân xem thông tin cá nhân của mình
4 UC_004 Chỉnh sửa thông tin tài khoản
Use case cho phép người sử dụng có tài khoản cá nhân chỉnh sửa thông tin cá nhân của mình
5 UC_005 Đăng tin phòng trọ Use case cho phép người sử dụng có tài khoản cá nhân, có phòng còn trống hoặc muốn ở ghép đăng tin
6 UC_006 Tìm kiếm phòng trọ Use case cho phép người sử dụng tìm kiếm phòng trọ
7 UC_007 Xem danh sách phòng trọ đã đăng
Use case cho phép người sử dụng xem danh sách phòng trọ đã đăng
8 UC_008 Chỉnh sửa bài đăng Use case cho phép người sử dụng chỉnh sửa bài đăng của mình hoặc xóa bài đăng
9 UC_009 Đánh giá bài đăng Use case cho phép người sử dụng đánh giá bài đăng
10 UC_010 Liên hệ với người dùng khác
Use case cho phép người sử dụng liên hệ với người dùng khác
11 UC_11 Thêm vào mục yêu thích Use case cho phém thêm các bài viết vào mục yêu thích
Bảng 01: Mô tả Use case
Nhap thong tin tai khoan
Hình 06: Use case Đăng nhập
ID ca sử dụng UC_001
Tác nhân User (Người dùng)
Mô tả Người dùng có thể đăng nhập hệ thống bằng 1 trong 2 cách,đăng nhập bằng tài khoản thường hoặc tài khoản facebook Điều kiện Có kết nối Internet
Luồng hoạt động B1: Click vào mục đăng nhập
B2: Nhập email và mật khẩu (tài khoản thường) hoặc click vào Login With Facebook, đợi kết quả trả về
Bảng 02: Mô tả Use case Đăng nhập
User Dang ky Nhap thong tin tai khoan
Hình 07: Use case Đăng kí
ID ca sử dụng UC_002
Tác nhân User (Người dùng)
Mô tả Người dùng có thể đăng kí tài khoản hệ thống Điều kiện Có kết nối Internet
Luồng hoạt động B1: Click vào mục đăng nhập
B2: Chọn mục đăng kí tài khoản B3: Nhập email, mật khẩu, xác nhận mật khẩu và họ tên, đợi kết quả trả về
Bảng 03: Mô tả Use case đăng kí
1.4 Use case Xem thông tin tài khoản
User Xem thong tin tai khoan Dang nhap
Hình 08: Use case xem thông tin tài khoản
ID ca sử dụng UC_003
Tên Xem thông tin tài khoản
Tác nhân User (Người dùng)
Chức năng xem thông tin tài khoản cho phép người dùng truy cập và kiểm tra các thông tin cá nhân như email, tên, địa chỉ và số điện thoại Để sử dụng tính năng này, người dùng cần phải đăng nhập vào hệ thống.
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
B2: Click vào mục tài khoản B3: Kết thúc
Bảng 04: Mô tả Use case Xem thông tin tài khoản
1.5 Use case Chỉnh sửa thông tin tài khoản
User Sua thong tin ca nhan
Nhap thong tin ca nhan
Hình 09: Use case chỉnh sửa thông tin tài khoản
ID ca sử dụng UC_004
Tên Chỉnh sửa thông tin tài khoản
Tác nhân User (Người dùng)
Cung cấp chức năng chỉnh sửa thông tin tài khoản cho người dùng, cho phép họ cập nhật các thông tin cá nhân như email, tên, địa chỉ và số điện thoại Để thực hiện việc này, người dùng cần phải đăng nhập vào hệ thống.
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
B2: Click vào mục tài khoản B3: Click vào mục chỉnh sửa thông tin cá nhân B3: Chỉnh sửa thông tin
Bảng 05: Mô tả Use case Chỉnh sửa thông tin tài khoản
1.6 Use case Đăng tin phòng trọ
Nhap thong tin phong tro
Hình 10: Use case đăng tin phòng trọ
ID ca sử dụng UC_005
Tên Đăng tin phòng trọ
Tác nhân User (Người dùng)
Chức năng đăng tin phòng trọ cho phép người dùng dễ dàng đăng tin cho thuê phòng hoặc tìm người ở ghép Để sử dụng tính năng này, người dùng cần phải đăng nhập vào hệ thống.
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
B2: Chọn tỉnh/thành phố nơi mình có phòng trọ B3: Click vào mục đăng tin phòng trọ
Để đăng tin phòng trọ, bạn cần thực hiện các bước sau: Thêm địa chỉ và vị trí cụ thể của phòng trọ (B4), cung cấp thông tin chi tiết về phòng trọ (B5), tải lên ảnh minh họa cho phòng trọ (B6), và liệt kê các tiện ích đi kèm (B7) Cuối cùng, hãy nhấn vào mục đăng tin phòng trọ để hoàn tất quá trình (B8) Kết thúc (B9).
Bảng 06: Mô tả Use case Đăng tin phòng trọ
1.7 Use case Tìm kiếm phòng trọ
User Tìm kiem phong tro
Tim kiem theo dia chi
Tim kiem theo ban kinh
Tim kiem theo dia diem
Tim kiem quanh vi tri hien tai
Loc theo thong tin phong tro
Hình 11: Use case tìm kiếm phòng trọ
ID ca sử dụng UC_006
Tên Tìm kiếm phòng trọ
Tác nhân User (Người dùng)
Cung cấp chức năng tìm kiếm phòng trọ cho người dùng, giúp người thuê dễ dàng tìm kiếm và lựa chọn phòng trọ phù hợp Để sử dụng tính năng này, người dùng cần có kết nối Internet.
Luồng hoạt động B1: Click vào mục tìm kiếm phòng trọ
Để tìm kiếm phòng trọ hiệu quả, bạn hãy click vào mục tìm kiếm và chọn một kiểu tìm kiếm phù hợp như tìm kiếm phòng trọ gần đây, theo tọa độ, theo từ khóa, theo bán kính, hoặc gần trường đại học Sau khi chọn, hãy chờ kết quả trả về và bạn có thể thiết lập bộ lọc để tinh chỉnh kết quả tìm kiếm nếu cần.
Bảng 07: Mô tả Use case Tìm kiếm phòng trọ
1.8 Use case Xem danh sách phòng trọ đã đăng
User Xem tin da dang
Hình 12: Use case xem danh sách phòng trọ đã đăng
ID ca sử dụng UC_007
Tên Xem danh sách phòng trọ đã đăng
Tác nhân User (Người dùng)
Mô tả Người dùng có bài đăng có thể xem bài đăng của mình Điều kiện Người dùng phải đăng nhập hệ thống
Người dùng có ít nhất 1 bài đăng
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
B2: Click vào mục danh sách phòng trọ đã đăng và đợi kết quả trả về B3: Chọn 1 bài đăng để xem B4: Kết thúc
Bảng 08: Mô tả Use case Xem danh sách phòng trọ đã đăng
1.9 Use case Chỉnh sửa bài đăng
User Chinh sua bai viet
Sua thong tin phong tro
Hình 13: Use case chỉnh sửa bài đăng
ID ca sử dụng UC_008
Tên Chỉnh sửa bài đăng
Tác nhân User (Người dùng)
Mô tả Người dùng có bài đăng có thể chỉnh sửa bài đăng của mình Điều kiện Người dùng phải đăng nhập hệ thống
Người dùng có ít nhất 1 bài đăng
Luồng hoạt động B1: Đăng nhập vào hệ thống
Để quản lý bài đăng phòng trọ, bạn hãy nhấp vào mục danh sách phòng trọ đã đăng và chờ kết quả Tiếp theo, chọn một bài đăng để xem chi tiết Cuối cùng, bạn có thể chỉnh sửa bài đăng, phản hồi đánh giá từ người xem hoặc xóa bài đăng nếu cần.
Bảng 09: Mô tả Use case Chỉnh sửa bài đăng
1.10 Use case Đánh giá bài đăng
Hình 14: Use case đánh giá bài đăng
ID ca sử dụng UC_009
Tên Đánh giá bài đăng
Tác nhân User (Người dùng)
Mô tả Người dùng có thể đánh giá bài đăng mình đang xem Điều kiện Người dùng phải đăng nhập hệ thống
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
Để tìm kiếm phòng trọ, trước tiên hãy nhấp vào mục tìm kiếm Tiếp theo, chọn một kiểu tìm kiếm phù hợp như tìm kiếm phòng trọ gần đây, theo tọa độ, từ khóa, bán kính hoặc gần trường đại học, sau đó chờ kết quả Bạn cũng có thể thiết lập bộ lọc kết quả nếu cần.
B5: Chọn 1 bài đăng để xem B6: Click vào mục đánh giá bài đăng B7: Xếp hạng bài đăng hoặc comment ý kiến phản hồi về bài đăng B8: Kết thúc
Bảng 10: Mô tả Use case Đánh giá bài đăng
1.11 Use case liên hệ với người đăng tin
Hình 15: Use case đánh giá bài đăng
ID ca sử dụng UC_010
Tên Liên hệ với người dùng khác
Tác nhân User (Người dùng)
Mô tả Người dùng có thể liên hệ với người dùng chủ của bài đăng mình đang xem Điều kiện Người dùng phải đăng nhập hệ thống
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
Để tìm kiếm phòng trọ hiệu quả, bạn hãy nhấp vào mục tìm kiếm và chọn một kiểu tìm kiếm phù hợp, như tìm kiếm phòng trọ gần đây, theo tọa độ, từ khóa, bán kính hoặc gần trường đại học Sau khi chọn, hãy đợi kết quả trả về Bạn cũng có thể thiết lập bộ lọc để tinh chỉnh kết quả tìm kiếm của mình.
B5: Chọn 1 bài đăng để xem B6: Click vào mục gửi email hoặc gọi điện thoại B7: Kết thúc
Bảng 11: Mô tả Use case Liên hệ với người đăng tin
1.12 Use case Thêm vào mục yêu thích
User Them vao muc yeu thich
Hình 16: Use case thêm vào yêu thích
ID ca sử dụng UC_011
Tên Thêm vào mục yêu thích
Tác nhân User (Người dùng)
Người dùng có thể dễ dàng lưu bài viết vào mục yêu thích để xem lại sau này, tuy nhiên, điều kiện bắt buộc là phải đăng nhập vào hệ thống.
Có kết nối Internet Luồng hoạt động B1: Đăng nhập vào hệ thống
Để tìm kiếm phòng trọ hiệu quả, bạn chỉ cần click vào mục tìm kiếm và chọn một kiểu tìm kiếm phù hợp như tìm phòng trọ gần đây, theo tọa độ, từ khóa, bán kính hoặc gần trường đại học Sau đó, hãy chờ kết quả trả về Bạn cũng có thể thiết lập bộ lọc kết quả để thu hẹp lựa chọn của mình.
B5: Chọn 1 bài đăng để xem B6: Click vào icon hình trái tim B7: Kết thúc
Bảng 12: Mô tả Use case thêm vào yêu thích
2 Phân tích nghiệp vụ và biểu đồ hoạt động của hệ thống
Nghiệp vụ Đối tác Thao tác Đăng nhập Người dùng
1 Nhập email đăng nhập và mật khẩu, hoặc đăng nhập bằng Facebook, gửi yêu cầu đăng nhập
2 Nhận kết quả đăng nhập từ phía hệ thống
1 Kiểm tra thông tin do người dùng cung cấp
2 Trả về kết quả cho người dùng Đăng kí Người dùng
1 Nhập thông tin vào mẫu đăng kí, gửi yêu cầu đăng kí
2 Nhận kết quả đăng kí từ phía hệ thống
1 Kiểm tra thông tin đăng kí
2 Trả về kết quả cho người dùng
Xem thông tin tài khoản
1 Gửi yêu cầu xem thông tin tài khoản
2 Nhận kết quả trả về và hiển thị ra màn hình
1 Nhận yêu cầu, lấy dữ liệu người dùng
2 Trả về cho người dùng Chỉnh sửa thông tin tài khoản
1 Nhập thông tin thay đổi tài khoản và gửi yêu cầu
2 Nhận kết quả chỉnh sửa tài khoản từ phía hệ thống
1 Nhận yêu cầu, cập nhật dữ liệu
2 Trả về kết quả cho người dùng Đăng tin phòng trọ
1 Nhập thông tin về phòng trọ theo mẫu, gửi yêu cầu đăng tin phòng trọ
2 Nhận kết quả trả về từ phía hệ thống
1 Nhận yêu cầu, them phòng trọ mới vào cơ sở dữ liệu
2 Trả về kết quả cho người dùng Tìm kiếm phòng trọ
1 Gửi yêu cầu tìm kiếm phòng trọ
2 Nhận kết quả trả về và hiển thị ra màn hình
1 Nhận yêu cầu, tìm kiếm kết quả phù hợp trong cơ sở dữ liệu
2 Trả về kết quả cho người dùng Xem danh sách phòng trọ đã đăng
Người dùng 1 Gửi yêu cầu xem thông tin danh sách phòng trọ đã đăng
2 Nhận kết quả trả về và hiển thị ra màn hình
Hệ thống 1 Nhận yêu cầu, lấy dữ liệu về phòng trọ người dùng đã đăng
2 Trả về kết quả cho người dùng Chỉnh sửa bài đăng
1 Nhập thông tin thay đổi phòng trọ theo mẫu và gửi yêu cầu
2 Hoặc gửi yêu cầu xóa phòng trọ
3 Hoặc xem thông tin đánh giá của người dùng khác, nhập bình luận và gửi yêu cầu bình luận
4 Nhận kết quả trả về
1 Nhận yêu cầu thay đổi thông tin phòng trọ, cập nhật cơ sở dữ liệu
2 Hoặc nhận yêu cầu xóa phòng trọ, cập nhật cơ sở dữ liệu
3 Hoặc nhận yêu cầu bình luận, cập nhật cơ sở dữ liệu
4 Trả về kết quả cho người dùng Đánh giá bài đăng
1 Nhập thông tin đánh giá theo mẫu, gửi yêu cầu
2 Nhận kết quả trả về
1 Nhận yêu cầu đánh giá, cập nhật cơ sở dữ liệu
2 Trả về kết quả cho người dùng Liên hệ với người dùng khác
Người dùng 1 Nhận thông tin về phòng trọ từ hệ thống, gửi yêu cầu liên hệ với người dùng khác
2 Trả về thông tin người đăng bài cho người dùng (email, số điện thoại )
Thêm vào mục yêu thích
1 Chọn tin đăng phù hợp với nhu cầu
2 Gửi yêu cầu lưu vào mục yêu thích
1 Nhận yêu cầu từ phía người dung
2 Lưu thông tin vào cơ sở dữ liệu tương ứng với người dùng đó
Bảng 12: Phân tích nghiệp vụ
2.2 Biểu đồ hoạt động chức năng Đăng nhập
Hình 17: Biểu đồ hoạt động chức năng Đăng nhập
Khi người dùng yêu cầu đăng nhập, hệ thống sẽ kiểm tra kết nối Internet của họ Nếu có kết nối, người dùng sẽ được chuyển đến màn hình đăng nhập, nơi họ có thể nhập thông tin tài khoản hoặc chọn đăng nhập bằng Facebook Hệ thống sẽ xác thực thông tin đăng nhập; nếu đúng, người dùng sẽ nhận thông báo đăng nhập thành công, ngược lại, họ sẽ phải nhập lại thông tin.
2.3 Biểu đồ hoạt động chức năng Đăng kí
Hình 18: Biểu đồ hoạt động chức năng Đăng kí
Người dùng yêu cầu đăng ký tài khoản, hệ thống sẽ kiểm tra kết nối Internet Nếu kết nối ổn định, người dùng sẽ được chuyển sang màn hình đăng ký để nhập thông tin cần thiết như email, mật khẩu, nhập lại mật khẩu và họ tên Hệ thống sẽ xác minh thông tin đăng ký; nếu thông tin chính xác, người dùng sẽ nhận được thông báo đăng ký thành công, còn nếu thông tin sai, hệ thống sẽ yêu cầu quay lại bước nhập thông tin.
2.4 Biểu đồ hoạt động chức năng Xem thông tin tài khoản
Hình 19: Biểu đồ hoạt động chức năng Xem thông tin tài khoản
Người dùng cần đăng nhập vào hệ thống để truy cập thông tin tài khoản Sau khi đăng nhập thành công, họ sẽ trở lại màn hình chính của ứng dụng và chọn mục xem thông tin tài khoản Hệ thống sẽ kiểm tra xem có thông tin tài khoản đã lưu hay chưa; nếu chưa có, nó sẽ tải thông tin tài khoản và chuyển sang màn hình hiển thị thông tin tài khoản.
2.5 Biểu đồ hoạt động chức năng Chỉnh sửa thông tin tài khoản
Hình 20: Biểu đồ hoạt động chức năng Chỉnh sửa thông tin tài khoản
Thiết kế
1 Thiết kế cơ sở dữ liệu
1.1 Sơ đồ thực thể liên kết
Hình 37: Sơ đồ thực thể liên kết
Trong sơ đồ thực thể liên kết trên, có 5 thực thể chính:
Người dùng là đại diện cho những cá nhân sở hữu tài khoản trong hệ thống, cho phép họ đăng tin, tìm kiếm phòng trọ, viết bình luận và đánh giá về các bài đăng Họ cũng có khả năng liên hệ với những người dùng khác.
- Guest: đại diện cho người dùng không có tài khoản hệ thống, guest có thể tìm kiếm phòng trọ
- Room: đại diện cho phòng trọ của hệ thống, mỗi 1 phòng trọ sẽ có 1 feedback
Feedback là phản hồi của người dùng về phòng trọ, thể hiện ý kiến và trải nghiệm của họ Mỗi feedback bao gồm nhiều bình luận từ người dùng, giúp tạo ra một điểm trung bình đánh giá cho phòng trọ.
Comment là đại diện cho nội dung phản hồi của người dùng, trong đó một feedback có thể chứa nhiều comment từ các người dùng khác nhau Mỗi người dùng có khả năng gửi nhiều comment riêng biệt.
Chú thích: Create: C, Read: R, Update: U, Delete: D
User Guest Room Feedback Comment Đăng nhập R - - - - Đăng kí CR - - - -
Xem thông tin tài khoản R - - - -
Chỉnh sửa thông tin tài khoản RU - - - - Đăng tin phòng trọ C - C C -
Xem danh sách phòng trọ đã đăng R - R R R
Chỉnh sửa bài đăng RUD - RUD RU RU Đánh giá bài đăng CR - R RU RU
Liên hệ với người dùng khác R - R - -
Bảng 13: Ma trận kiểm soát truy nhập CRUD
1.3 Thiết kế cơ sở dữ liệu
Hình 38: Thiết kế cơ sở dữ liệu
The system's database is stored in tables on the server, while three SQLite tables—Province, District, and Ward—are kept on the client for location queries.
Chi tiết các bảng trong cơ sở dữ liệu:
STT Tên bảng Chức năng
1 users Lưu trữ thông tin của User (người dùng), bao gồm:
- id (int): id của người dùng
- email (varchar): email của người dung
- password (text): mật khẩu của người dùng khi đăng ký bằng tài khoản email thường
- api_key (varchar): lưu api key của facebook
- facebook_id (varchar): id của tài khoản facebook
- facebook_access_tooken (varchar): mã truy cập facebook ứng với tài khoản của người dùng
- first_name (varchar): tên người dùng
- last_name (varchar): họ của người dùng
- gender (varchar): giới tính của người dùng
- birthday (varchar): ngày sinh của người dùng
- age (int): tuổi người dùng
- address (varchar): địa chỉ của người dùng
- avatar (varchar): link ảnh đại diện của người dùng
- description (varchar): thông tin giới thiệu của người dùng
- occupation (varchar): nghề nghiệp của người dùng
- phonenumber (varchar): số điện thoại của người dùng
- created (timestamp): ngày tạo tài khoản
2 rooms Lưu trữ thông tin của phòng trọ, bao gồm:
- id (int): id của phòng trọ
- user_id (int): id của người dùng
- created (timestamp): ngày tạo tin đăng
3 room_amentities Lưu trữ thông tin tiện ích của phòng trọ, bao gồm:
- rooms_id (int): id của phòng trọ
- amentities (text): các tiện ích chung của phòng trọ
4 room_properties Lưu trữ thông tin chung về phòng trọ,bao gồm:
- rooms_id (int): id của phòng trọ
- rent_per_month (float): tiền trọ hàng tháng
- electric (float): tiền điện/số hàng tháng
- water (float): tiền nước hàng tháng
- area (float): diện tích phòng trọ
- number_per_room (int): số người ở tối đa của phòng
- min_stay (int): số tháng ở tối thiểu
- available_from (datetime): phòng trọ ở được từ bao giờ
- room_type (varchar): kiểu phòng trọ (chung cư, nhà cấp 4,….)
- room_state: trạng thái phòng trọ (ở ghép hoặc cho thuê)
5 room_address Lưu trữ thông tin về địa chỉ của phòng trọ, bao gồm:
- room_id (int): id của phòng trọ
- provice_id (varchar): địa chỉ tỉnh/ thành phố
- district_id (varchar): địa chỉ quận huyện
- ward_id (varchar): địa chỉ xã/phường
- latitude (float): vĩ độ phòng trọ
- longitude (float): kinh độ phòng trọ
6 room_images Lưu trữ thông tin về ảnh phòng trọ, bao gồm:
- id (int): id của ảnh
- room_id (int): id phòng trọ
- link (text): đường link ảnh
- note (text): chú thích về bức ảnh
7 ratings Lưu trữ thông tin phản hồi của bài đăng, bao gồm:
- id (int): id của Feedback
- user_id (int): id của người dùng
- room_id (int): id của room
- rating (int): điểm đánh giá phòng trọ
8 comments Lưu trữ nội dung phản hồi của người dùng, bao gồm:
- id (int): id của bình luận
- user_id (int): id của người dùng
- room_id (int): id phòng trọ
- comment (text): nội dung đánh giá của người dùng
- created(timestamp): ngày tạo bình luận
9 room_favorite Lưu trữ thông tin của các tin đăng yêu thích, bao gồm có:
- id (int): id của tin yêu thích
- user_id (int): id của người dùng
- room_id (int): id của room
- created(timestamp): ngày tạo tin yêu thích
10 chats Lưu trữ thông tin mục nhắn tin của ứng dụng
- id (int): id của cuộc hội thoại
- user1_id (int): id của user thứ nhất
- user2_id (int): id của user thứ hai
- created (timestamp): ngày tạo cuộc hội thoại
11 chat_messager Lưu trữ thông tin nội dung tin nhắn giữa các cuộc hội thoại
- id (int): id cuộc hội thoại
- chat_id (int): id của tin gửi đi
- to_id (int): id của tin nhận về
- created (timestamp): ngày giờ gửi tin nhắn
- status (tinyint): trạng thái của người chat
12 Province Lưu trữ thông tin tỉnh/ thành phố Việt Nam, bao gồm:
- Province_id: id của tỉnh/ thành phố
- Name: tên của tỉnh/thành phố
13 District Lưu trữ thông tin vị trí của Quận/Huyện Việt Nam, bao gồm:
- District_id: id của quận/ huyện
- Name: tên của quận/ huyện
- Location: tọa độ của quận/ huyện trên bản đồ
- Province_id: id của tỉnh/ thành phố
14 Ward Lưu trữ thống tin vị trí của Phường/ Xã Việt Nam, bao gồm:
- Ward_id: id của phường/ xã
- Name: tên của phường/ xã
- Location: tọa độ của phường/ xã trên bản đồ
- District_id: id của quận/ huyện Bảng 14: Chi tiết các bảng trong cơ sở dữ liệu
2 Giao tiếp giữa client và server
Hành động Phương thức và đường link Đăng nhập bằng tài khoản bình thường
Phương thức: POST Đường link: http://shareroomchat-thelord1992.rhcloud.com/login Đăng nhập bằng tài khoản
To register an account, use the POST method at the link: http://shareroomchat-thelord1992.rhcloud.com/auth/local/singup For Facebook login, access the POST method at: http://shareroomchat-thelord1992.rhcloud.com/auth/mobile/facebook.
Xem thông tin tài khoản
Phương thức: GET Đường link: http://shareroomchat-thelord1992.rhcloud.com/users/ + userID (userID: là objectID của tài khoản)
Chỉnh sửa thông tin tài khoản
Phương thức: PUT Đường link: http://shareroomchat-thelord1992.rhcloud.com/users/update/ + userID (userID: là objectID của tài khoản) Đăng tin phòng trọ
Phương thức: POST Đường link: http://shareroomchat-thelord1992.rhcloud.com/shr/v1/rooms
Chỉnh sửa thông tin phòng trọ
Phương thức: PUT Đường link: http://shareroomchat-thelord1992.rhcloud.com/shr/v1/rooms/ + roomID (roomID: là objectID của phòng trọ)
Xóa phòng trọ Phương thức: DELETE Đường link: http://shareroomchat-thelord1992.rhcloud.com/shr/v1/rooms/ + roomID (roomID: là objectID của phòng trọ)
Lấy danh sách phòng trọ đã đăng
Phương thức: GET Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/byUser/ + userID (userID: là objectID của tài khoản)
Tìm kiếm phòng trọ theo bán kính
Phương thức: POST Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/getRoomsByCenterCoordina te
Tìm kiếm phòng trọ theo tọa độ
Phương thức: POST Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/getRoomsByBoundCoordina tes
Tìm kiếm phòng trọ theo từ khóa tìm kiếm
Phương thức: POST Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/textsearch Tải danh sách bình luận
Phương thức: POST Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/feebbacks/list
Phương thức: POST Đường link: http://shareroomchat- thelord1992.rhcloud.com/shr/v1/rooms/feebbacks
Bảng 14: Bảng các API giao tiếp giữa client – server
Khi người dùng thực hiện hành động trên ứng dụng, yêu cầu sẽ được gửi đến đường link và phương thức tương ứng Server tiếp nhận yêu cầu, truy xuất dữ liệu từ cơ sở dữ liệu và gửi lại thông tin phù hợp cho client.
CÀI ĐẶT VÀ THỬ NGHIỆM
Môi trường cài đặt
Chương trình được cài đặt trên môi trường:
- Server: http://shareroomchat-thelord1992.rhcloud.com/
- Ngôn ngữ lập trình: Android, Nodejs
- Hệ cơ sở dữ liệu: Mysql
- Công cụ phát triển: Android Studio
Cài đặt và thử nghiệm
Sau 1 thời gian dài phát triển, hệ thống đã được xây dựng, cài đặt và thử nghiệm thành công, chạy ổn định và tốn ít tài nguyên của hệ thống
Việc cài đặt ứng dụng bao gồm 4 bước:
To begin, download Android Studio from the official website at http://developer.android.com/sdk/index.html After downloading, extract the files and run the setup.exe The SDK is integrated within the compressed file, so it will be automatically downloaded to your computer during the installation process.
Hình 39: Tải bộ công cụ phát triển ứng dụng Android
Để mô phỏng ứng dụng trên điện thoại Android, bước thứ hai là tạo một máy ảo AVD (Android Virtual Device) Bạn có thể sử dụng thiết bị Android thực thay cho AVD, nhưng khuyên dùng Genymotion để tạo máy ảo, vì nó mang lại hiệu suất tốt và dễ sử dụng.
Hình 40: Tạo máy ảo hệ điều hành Android
- Bước 3: Mở Android Studio, chọn Open Existing Android Project… chọn đến thư mục chứa Project, mở máy ảo AVD (hoặc máy thật)
Step 4: Click the run icon on the Android Studio menu to initiate the project build and install the application on the connected Android device or virtual machine.
Việc thử nghiệm của ứng dụng sẽ được trình bày chi tiết trong phần mục lục – thử nghiệm hệ thống
Việc thử nghiệm sẽ bao gồm 6 phần:
- Thử nghiệm Đăng nhập, đăng kí
- Thử nghiệm Xem và Chỉnh sửa thông tin tài khoản
- Thử nghiệm Đăng tin phòng trọ
- Thử nghiệm Xem và Chỉnh sửa thông tin bài đăng
- Thử nghiệm Đánh giá bài đăng
- Thử nghiệm Tìm kiếm phòng trọ
Kết quả thử nghiệm cho thấy ứng dụng chạy rất ổn định và tốn ít tài nguyên.
Đánh giá hệ thống và so sánh với các sản phẩm cùng loại
1 Đánh giá hệ thống Ưu điểm:
- Ứng dụng hoạt động ổn định
- Ứng dụng đã hoàn thiện đầy đủ các mục tiêu, chức năng ban đầu đặt ra
Ứng dụng mới hiện chỉ khả dụng trên hệ điều hành Android và chưa được phát triển cho các thiết bị di động sử dụng hệ điều hành khác, cũng như chưa có phiên bản trên môi trường Web.
Các chức năng của ứng dụng chủ yếu gắn liền với việc kết nối mạng, do đó, tốc độ xử lý của ứng dụng chịu ảnh hưởng lớn từ chất lượng đường truyền mạng, nhanh hay chậm.
2 So sánh với các sản phẩm cùng loại
- Do còn yếu kém về mặt thiết kế giao diện, đồ họa, nên so với các sản phẩm cùng loại, ứng dụng không thể bằng về mặt giao diện
Ứng dụng hiện tại chưa tích hợp chức năng chat giữa người dùng, điều này khiến nó kém cạnh tranh hơn so với các sản phẩm tương tự trên thị trường.
Ứng dụng mới hiện chỉ khả dụng trên hệ điều hành Android, điều này hạn chế khả năng tiếp cận người dùng so với các sản phẩm khác đã có mặt trên nền tảng web, iOS và Windows Phone.