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

Xây dựng hệ thống quản lý cộng đồng đặt và cho thuê căn hộ HomeLike

67 2 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 đề XAY DUNG HE THONG QUAN LY CONG DONG DAT VA CHO THUE CAN HO HOMELIKE
Tác giả NGUYEN SY QUANG ANH
Người hướng dẫn Th.S. NGUYEN MANH SON
Trường học HOC VIEN CONG NGHE BUU CHINH VIEN THONG
Chuyên ngành BO THONG TIN VA TRUYEN THONG
Thể loại DO AN TOT NGHIEP DAI HOC
Năm xuất bản 2021
Thành phố HÀ NOI
Định dạng
Số trang 67
Dung lượng 14,56 MB

Nội dung

Đồ án tốt nghiệp Danh mục các từ và thuật ngữ viết tắtBốn thuộc tính quan trọngACID Atomicity, | Consistency, | của một hệ quản tri cơ sở Isolation, và Durability dữ liệu khi xử ly bat k

Trang 1

BO THONG TIN VÀ TRUYEN THONG HOC VIEN CONG NGHE BUU CHINH VIEN THONG

DO AN TOT NGHIEP DAI HOC

Dé tai:

XAY DUNG HE THONG QUAN LY CONG DONG DAT VA

CHO THUE CAN HO HOMELIKE

Giảng viên hướng dẫn: Th.S NGUYÊN MẠNH SƠNSinh viên thực hiện: NGUYEN SY QUANG ANH

Mã sinh viên: B17DCCN031

Lớp: DI7CNPM3 Khóa: 2017-2022 Hệ: Đại học Chính quy

HÀ NOI, 2021

Trang 2

BO THONG TIN VÀ TRUYEN THONG HOC VIEN CONG NGHE BUU CHINH VIEN THONG

DO AN TOT NGHIEP DAI HOC

Dé tai:

XAY DUNG HE THONG QUAN LY CONG DONG DAT VA

CHO THUE CAN HO HOMELIKE

Giảng viên hướng dẫn: Th.S NGUYÊN MẠNH SƠNSinh viên thực hiện: NGUYEN SY QUANG ANH

Mã sinh viên: B17DCCN031

Lớp: DI7CNPM3 Khóa: 2017-2022 Hệ: Đại học Chính quy

HÀ NOI, 2021

Trang 3

NHAN XÉT, ĐÁNH GIÁ, CHO DIEM

(Của người hướng dẫn)

Điểm: cà, (bang chữ: cc c2 c2: )

Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?

Hà Nội, ngày thang năm 20

GIẢNG VIÊN HƯỚNG DẪN

(ký và ghi rõ họ tên)

Trang 4

NHAN XÉT, ĐÁNH GIÁ, CHO DIEM

(Của người phản biện)

Điểm: c (băng chữ: c 22c: )

Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng châm đồ án tốt nghiệp?

Hà Nội, ngày thang năm 20

GIẢNG VIÊN PHẢN BIỆN

(ký và ghi rõ họ tên)

Trang 5

Đồ án tốt nghiệp Mục lục

MỤC LỤC

AY LOL On 0) Ol 2125 5LOT CAM OWN 057 7DANH MỤC BANG BIEU - 2-5 << <©S£©S£Es£ 9£ sEEsEEsEsEsEseEsersersersessese 8

1.2.2 Lưu trữ dữ liệu trong ElASfiCS@TCỈ, 5 5s rưệt 17

1.3 Thuật toán TE/IDE 2s se +s££Ss££x+©ExEESeEvseESsEEAETAeEkserkserssrrssre 19

1.4 Các thư viện và framework lập trình được lựa chọn s«<<s« 20

“1N nn 20

Jl”N/2Á90 06 ốốỐốỐốỐồỒồ 21 1.4.3 MySQL 5-55 5S E22 212222112112 re 23 7w YNnnnẽnẽẽ e.= 24 1.4.5, PayPal 2 ) 08n6n ốẦ5ẦŠẦŠ.Ầ e ố 25

ca he 27

CHUONG 2 PHAN TÍCH VA THIẾT KE HỆ THÓNG °-5°- 28

2.1 Phân tích hệ thong cc.sscsssssssssessessescessessssssssssssessessessessessssussessessessesseesesssessenes 282.1.1 Các tác nhân chính của hệ thống - + + ©cSt+St‡E‡E+EtEEerEerkerkerkersses 282.1.2 Biểu đồ ca hoạt động tÔỔng qIHÁtK 2-52 £SE‡EE‡E‡EEE2EEEESEEerkerkerkersses 28D.1.3 Kich DG nh nẽ.ẽaaasaẶỶN 29

Trang 6

Đồ án tốt nghiệp Mục lục

2.1.2 Biểu đô lớp phân tÍCh, +- +: + ©£++E+EE£EE£EEEEEEEEEEEEEEEEEEEEEEE1 2121111 382.2 Thiét ké on 110 41

2.2.1 Liên kết các QUAN NE H-HI 25:22 ©5£2SSt2Et‡EESEEEEEkEEEEEEEEEESrkrrrkrrkrerkree 41

2.2.2 Thiết kế lược đô cơ sở dữ WCU ce ceeccesseessesssesssesssesssesssssesssessssssesssesssessesssessvecs 452.2.3 Một số biểu đỗ tun tue ceccccccceccecsessssssessessesssessessessussssssessesssssessessessesssesseesess 47CHUONG 3 CÀI ĐẶT THU NGHIỆM VÀ ĐÁNH GIA 5 s-< 563.1 Kiến trúc hệ thống s-s«°se+s©ss©+ssevseErsetxeetsettsettstrksstssrrserssersee 563.2 Một số hình ảnh về giao diện hệ thống -2 s- 2s s2 se =se=sesses57B.QD THANG CRU nn 57 3.2.2 Trang mạng xã hỘi Sàn HH HH HH kg ky 573.2.3 Chi ti€t CON NG ng ah aỮỒ Ả 583.2.4 Chi ti€t DGi nnẶối 593.2.5 Trang cá nhân Hgười đÙH cv ng kg key 60 3.2.6 Xem danh sách người theo đỐi - - cv tk key 60

3.2.7 Tim kiếm căn hộ và hiển thị trên bản dO ceccccccessscscssesvesesesvessesvevesesvsesesveseees ó1

3.2.8 Đặt thuê căn hộ và thanh ÍOIï c5 5555555 511111 kkkkkkeee 62 3.2.9 Giao diện trang chủ của người Cho thu occccccccccesccessecerscesceeeseeenseesnseetsees 65900.0007757 66TÀI LIEU THAM KHẢO 5° 522 s° s2 SSsSs£EsESeESSESseEseEserssexserserssrssess 67

Trang 7

Đồ án tốt nghiệp Lời cảm ơn

LỜI CẢM ƠN

Đầu tiên, em xin trân trọng gửi lời cảm ơn đặc biệt và bày tỏ lòng biết ơn sâu sắcđến giảng viên hướng dẫn của em, thay Nguyễn Mạnh Son đã luôn tận tâm, nhiệt tìnhchỉ bảo, giải đáp những khúc mắc, khó khăn của em trong suốt quá trình học tập và thực

hiện đồ án, giúp em có thé hoàn thành được đồ án một cách tốt nhất.

Em xin gửi lời cảm ơn chân thành đến các Thầy, Cô của Học viện Công nghệ Bưuchính Viễn thông, đặc biệt là các Thay, Cô khoa Công nghệ thông tin 1 đã tận tình giảng

day va trang bi cho em những kiến thức bổ ích, quan trong va tạo mọi điều kiện thuận

lợi dé em có thé hoàn thành đồ án

Em cũng xin được cảm ơn các anh chị khóa trên, các anh chị đồng nghiệp đã giúp

đỡ em rất nhiều trong thời gian qua; cảm ơn gia đình và bạn bè đã luôn ở bên quan tâm,ủng hộ em trong suốt quá trình thực hiện dé án

Cuối cùng, dù đã rất cô gắng nhưng do thời gian, kiến thức và kinh nghiệm của em

còn hạn chế nên đồ án này không tránh khỏi nhiều thiếu sót, chính vì vậy, em rất mongnhận được những sự góp ý cũng như chỉ bảo tận tình từ các thầy cô dé em có thé hoànthiện các kĩ năng, bổ sung cho mình thêm nhiều kiến thức bồ ích

Em xin chân thành cảm ơn!

Hà Nội, tháng 12 năm 2021

Sinh viên thực hiện

Nguyễn Sỹ Quang Anh

Trang 8

Đồ án tốt nghiệp Danh mục bảng biéu

DANH MỤC BANG BIEU

Kịch bản chức năng đăng nhập - - - c2 3233 re.29

Kịch bản chức năng thêm bài ViẾT ¿2-2 S+SE+SE£EE2E£E£EeEEerEerxrrsrrs 30

Kịch bản chức năng theo dõi người dùng c Sc cScssssssxeeserrrss 32 Kịch bản chức năng đặt thuê căn hộ - 2 3+ +ssirrserrrsrrrre 33

Kịch bản chức năng thanh tOán - - - - c3 32313 3 ng.34

Kịch bản chức năng thêm căn hộ 55 S22 +32 xsErseerrererrrrrerree 35

Kịch bản chức năng xóa căn hộộ - - - c0 2< 2311 1 1 HH ng 36 Kịch bản chức năng xóa người dùng - «xe seeeserrersre 38

Trang 9

Đồ án tốt nghiệp Danh mục hình vẽ

DANH MỤC HÌNH VE

Hình 1.1 Mô hình kiến trúc phân tán của Elasticsearch -¿2 +22 16Hình 1.2 Qua trình lưu đữ liệu của Elasticsearch - s+ + +sssseesesserssrsres 18Hình 1.3 Quá trình lấy dữ liệu của Elasticsearch 2 2 2+ z+Ee£Ee£xerxerxsreee 18Hình 1.4 Giao diện ví dụ về thư viện LeafletJS [Ó]- -. CS ẶẶSS SH 21Hình 1.5 Các công ty xây dựng trên nền tang Ruby on Rails [7] - - 23Hình 1.6 Luồng hoạt động của quá trình thanh toán qua PayPal API [§] 25Hình 1.7 Luéng hoạt động của quá trình trả tiền qua PayPal API [9] 26Hình 2.1 Biểu đồ ca sử dung tổng quát 2-2 2 eSkeEE£EE£EEEEE2EEEEEEerEerkerkereee 28Hình 2.2 Biểu đồ ca sử dụng của người dùng hệ thống -2- 5z: 29Hình 2.3 Biéu đồ ca sử dụng của khách hang 2-2 25£+S£+E£Ee£Eerxerxereee 33Hình 2.4 Biéu dé ca sử dụng của chủ căn NG 5c 32+ 323 Eviseirssrrrrrrrres 35Hình 2.5 Biéu đồ ca sử dung của người quản trị - 2- s s++2 ++Ezxerxerxerxsreee 37

Hình 2.6 Biểu đồ lớp phân tích - 2-22 2 E+EE++E£+EE+EE£EEt2EE2EEEEEEEEtEEErEkrrkerkrrex 39

Hình 2.7 Liên kết quan hệ cho User (người theo đối) va User (người được theo dõi) 42Hình 2.8 Liên kết quan hệ cho User và Role - ¿2 2 + £+££+E£+E££E££Ee£Eerxsrxee 42Hình 2.9 Liên kết quan hệ cho Post và Item - ¿2 2 + £+££+E£+E££E£Eerxerxsrxee 43Hình 2.10 Liên kết quan hệ cho Apartment và Facility . ¿- 5z ©s©sz+cxz2csze: 44Hình 2.11 Liên kết quan hệ cho Item và Tag - 2-2552 22£E+EE+£EezEEzEerxerxezes 44Hình 2.12 Lược đỗ cơ sở dữ liệu -¿ 5+ccc+vtttEEkrrttEkrrtttrrrrriierrrirrrirri 45Hình 2.13 Biéu đồ tuần tự chức năng đăng nhập - 2 2 + xzE+z£e+zxsrxczes 47Hình 2.14 Biéu đồ tuần tự chức năng theo dõi người dùng -2- 55255248Hình 2.15 Biéu đồ tuần tự chức năng thêm bài viẾt 2-2 2 s2E22£+£xsrxczes 49Hình 2.16 Biéu đồ tuần tự chức năng bình luận VỀ bài VIẾK -c-cccccccxerrxererreree 50Hình 2.17 Biểu đồ tuần tự chức năng đặt thuê căn hộ, -¿ 5¿- s+©5+z=+2 51

Trang 10

Đồ án tốt nghiệp Danh mục hình vẽ

Hình 2.18 Biểu đồ tuần tự chức năng xem thanh toán 2- 2 2s s+zs+zs+ss+2 52Hình 2.19 Biéu đồ tuần tự chức năng thêm căn hộ - - 55+ £++sseeseesserse 53Hình 2.20 Biéu đồ tuần tự chức năng xóa căn NG woe cesesseessesssesssesssecstessesssecssecseesseessecs 54Hình 2.21 Biéu đồ tuần tự chức năng xóa người dùng : -¿©2 +22: 55

Hình 3.2 Giao diện trang Củ 1t TT HH Hàn Hàng ng 57 Hình 3.3 Giao diện trang mạng xã HOI - - - G2 1k1 SH TH Hệ, 58Hình 3.4 Giao diện thông tin chỉ tiết căn hộ, -2¿©22©5+22x+2zxvzxevrxesrxesrxeee 58Hình 3.5 Giao diện thông tin chỉ tiết căn hộ (tiẾp) - 2- 2-52 2+ 2+Ec£Ee£xerxerxereee 59Hình 3.6 Giao diện chỉ tiết bai Viét ececcseecsseecesseeeessneeessnnecessneeessneeesneeesnneeessneees 59Hình 3.7 Giao diện trang cá nhân người dung - 5xx reereereee 60 Hình 3.8 Giao diện danh sách người theo dõI s5 «1t nen 60Hình 3.9 Giao diện tìm kiếm căn hộ hiền thị trên bản đồ c-ccsc:-+ 61Hình 3.10 Giao diện tìm kiếm căn hộ hiền thị trên bản đồ (tiếp) -: 62Hình 3.11 Giao diện đặt căn hộ - - c2 EE 2223111111 11233111 111g 111 ng vn 62

Hình 3.12 Giao diện thanh tOáñ - <5 22 3332221111 23111 25311 192311 1821 12 1 cv vre 63

Hình 3.13 Giao diện thông tin chi tiết đặt thuê ¿cv EEEkSEEEEkrkrrrksrerrs 64

Hình 3.14 Giao diện danh sách đặt thuê của khách hàng -¿++<+++<<++ss2 64

Hình 3.15 Giao diện danh sách căn hộ của chủ nhà - c5 <<<<s+++++ss<<+ 65

10

Trang 11

Đồ án tốt nghiệp Danh mục các từ và thuật ngữ viết tắt

DANH MỤC CÁC TỪ VÀ THUẬT NGU VIET TAT

JSON Javascript ObJect Notation

Là một kiểu dữ liệu mởtrong JavaScript Kiểu ditliệu này bao gồm chủ yếu

DOM Document ObJect Model

Là một giao diện lập trình ứng dụng, có dạng một cây

cấu trúc dữ liệu, được dùng

để truy xuất các tài liệu

ra từ phía máy chủ web,

thay vì máy chủ tải lại toan

bộ trang web như truyềnthống

CSS Cascading Style Sheets

Được dùng dé miêu tả cáchtrình bày các tài liệu viếtbằng ngôn ngữ HTML vàXHTML.

11

Trang 12

Đồ án tốt nghiệp Danh mục các từ và thuật ngữ viết tắt

Bốn thuộc tính quan trọngACID Atomicity, | Consistency, | của một hệ quản tri cơ sở

Isolation, và Durability dữ liệu khi xử ly bat kỳ

giao dịch nào.

12

Trang 13

Đồ án tốt nghiệp Danh mục các thuật ngữ tiếng Anh

DANH MỤC CÁC THUẬT NGỮ TIENG ANH

Từ tiếng Anh Nghĩa tiếng Việt

Full-text search Tìm kiếm toàn văn bản

Framework Khung phần mềm

Client Máy khách

Server May chu

Request Yéu cau

Broadcast Truyén quang ba

Callback Ham thuc hién sau

13

Trang 14

Đồ án tốt nghiệp Lời mở đầu

LỜI MỞ ĐẦU

Tính đến đầu năm 2021, Việt Nam có 68,72 triệu người sử dụng Internet, chiếm70,3% dân số, theo số liệu từ của Trung tâm Internet Việt Nam [1] Số liệu này đã chothấy được sự phát triển mạnh mẽ và mức ảnh hưởng của Internet tới cuộc sống củachúng ta hiện nay.

Sự phổ biến của Internet đã mang lại những doanh thu không lồ cho các mạng xãhội và các nền tảng kinh doanh số dựa trên mạng xã hội, khi mà người dùng có thể bỏ

ra nhiều giờ đồng hồ mỗi ngày để sử dụng các tiện ích mà mạng xã hội đem lại Bêncạnh mạng xã hội, sự phô biến của Internet còn làm cho các nhu cầu số của người dùngngày một tăng cao, vì sự tiện lợi của các hình thức kinh doanh trực tuyến: chỉ cần ngồi

tại nhà với một thiết bị kết nối Internet là đã có thé thoải mái mua sắm, chọn lựa.

Hiện nay, nhu cầu về homestay cũng ngày một tăng cao và đang dần trở thành một

xu hướng của giới trẻ vì sự tiện lợi của nó với giá thành phải chăng cộng thêm không

gian riêng tư, thoải mái phù hợp cho những buôi đi chơi ngăn ngày bên bạn bè

Nhận thấy tiềm năng của mạng xã hội và xu hướng của các homestay, bản đồ ánnày đưa ra đề tài “Xây dựng Hệ thống quản lý cộng đồng đặt và cho thuê căn hộHomeLike”, kết hợp giữa hai mô hình đang là xu hướng, nhằm cụ thé hóa và giải quyếtcác bài toán con:

e Tim kiêm căn hộ trực tuyên theo vi trí có hiên thi ban do.

e Đặt thuê, đánh giá và chia sẻ vê căn hộ với bạn bẻ thông qua mô hình mang

xã hội.

Đối với mỗi bài toán, đồ án sẽ trình bày những kiến thức và các công nghệ liên

quan, sau đó là giải pháp và cài đặt thử nghiệm Câu trúc đô án bao gôm:

Chương 1 Giới thiệu bài toán và Công nghệ xây dựng hệ thong

Chương này trình bày bài toán và các công nghệ được sử dụng khi cài đặt hệ thống.Bao gồm: Elastis Search, Thuật toán TF/IDF, các thư viện và ngôn ngữ lập trình

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

Chương này trình bày các bước và các biéu đồ phân tích thiết kế hệ thống theo phương

pháp hướng đối tượng

Chương 3 Cài đặt thử nghiệm và đánh giá

Chương này trình bày sơ đồ kiến trúc hệ thống và một số giao diện kết quả

Cuối cùng là Kết luận và Tài liệu tham khảo

14

Trang 15

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

CHUONG 1 GIỚI THIỆU BÀI TOÁN VÀ CÁC CÔNG NGHỆ XÂY

DỰNG HỆ THÓNG

Homestay là loại hình dịch vụ lưu trú dựa vào cộng đồng, khách du lịch sẽ ngủ

nghỉ tại nhà riêng của người dân, được sử dụng ngôi nhà hoặc căn hộ đó giống như nhưnhà của mình xuyên suốt thời gian thuê, do đó có được những trải nghiệm chân thực vềcuộc song tại địa phương đó mà các loại hình lưu trú khác như khách san, nhà nghỉ

không có được.

Hiện nay, loại hình kinh doanh homestay không chỉ xuất hiện tại các địa phươngtrọng điểm về du lịch, mà còn xuất hiện tại các đô thị, trở thành điểm đến vào mỗi cuốituần của những khách hàng muốn tận hưởng sự tiện nghi, hiện đại trong khoảng thời

gian ngắn với giá thành hợp lý

Xu hướng du lịch homestay cùng với sự phát triển mạnh của các nền tảng mạng

xã hội và xu hướng chuyên đổi số hiện nay đã định ra bài toán về một hệ thống đặt chỗ

và cho thuê căn hộ homestay trực tuyến có thể tìm kiếm và hiển thị vị trí trên bản đồ,

kết hợp cùng mô hình mạng xã hội giúp người dùng tiếp cận được tốt hơn với các căn

hộ chất lượng, đồng thời những tương tác giữa người với người trên mô hình mạng xãhội sẽ mang lại sự thích thú, qua đó có thể thu hút được nhiều người dùng

Đồ án này tập trung vào giải quyết bài toán trên bằng cách tiếp cận các bài toáncon: tìm kiếm, hién thi vi trí trên bản đồ; đặt chỗ, cho thuê va xây dựng cộng đồng déngười dùng có thé kết bạn và chia sẻ, gợi ý cho nhau những căn hộ chat lượng

1.1 Giới thiệu bài toán

Tìm kiếm là bài toán không còn xa lạ gì trong ngành Công nghệ thông tin Chúng

ta dễ dang bắt gặp bài toán nay trong hầu hết các ứng dụng quen thuộc sử dụng hàngngày Tuy nhiên trong thực tế, người tìm kiếm luôn mong muốn được nhập dữ liệu đầu

vào ngăn gọn nhất mà hệ thống vẫn có thé đưa ra những kết quả liên quan nhất đến dữ

liệu đầu vào đó Điều này khiến bài toán tìm kiếm trở nên phức tạp hơn Đồ án này sử

dụng Elasticsearch là một giải pháp cho bài toán tìm kiếm nêu trên

Đối với những hệ thống liên quan đến địa điểm, nơi chốn, hiển thị vị trí lên bản đồ

là một tinh năng không thể thiếu Hiển thị lên bản đồ giúp người dùng có cái nhìn trựcquan hơn, dễ tiếp cận và dễ dàng cân nhắc hơn khi lựa chọn điểm đến

Hiện nay có rất nhiều các dịch vụ, thư viện giúp cho việc hiển thị bản đồ trở nên

dễ dàng, cùng rất nhiều các tính năng hữu ích Trong khuôn khổ của đồ án, em lựa chọnLeafletJS, một thư viện mã nguồn mở với đầy đủ các tính năng cần thiết, dé giải quyết

bài toán trên.

15

Trang 16

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

Bài toán được đưa ra là xây dựng hệ thống quản lý việc cho thuê căn hộ ngắn hạnkết hợp với mô hình mạng xã hội Hệ thống sẽ hướng tới đối tượng người dùng là những

khách hang có nhu cầu thuê nhà dé ở ngắn ngày, như khách du lịch thích trải nghiệm,

khách đi nghỉ dưỡng, và những chủ căn hộ kinh doanh homestay, từ đó tạo ra một

cộng đồng kết nối những người có nhu cầu thuê và những người cho thuê Khách hàng

có thé theo đõi bạn bè, chủ căn hộ, qua đó thấy được những bai viết về những căn hộđược đánh giá tốt, được bạn bè gợi ý, chia sẻ, giúp họ tìm được những homestay chấtlượng nhất

1.2 Giới thiệu Elasticsearch

1.2.1 Giới thiệu chung

Elasticsearch là công cụ phân tích và tìm kiếm phân tán mã nguồn mở, hoạt động

như một server chạy trên nền tang Apache Lucene, một search engine mã nguồn mở

được phát triển bởi Apache bằng Java Elasticsearch cung cấp API cho công việc lưu trữ

tìm kiếm dữ liệu một cách rất nhanh chóng Điểm mạnh của Elasticsearch còn thé hiệnrất rõ ở tính phân tán và khả năng mở rộng theo chiều ngang (horizontal scale) Tuynhiên, trong khuôn khô của đồ án này, lợi thế về tính phân tán và khả năng mở rộng củaElasticsearch không được áp dụng.

NODE 1 - # MASTER NODE 2 NODE 3

Hình 1.1 Mô hình kiến trúc phân tán của Elasticsearch

CLUSTER

- Node: mỗi node là một thực thé đang hoạt động của Elasticsearch, là nơi lưu trữ

toàn bộ dữ liệu và thực hiện tiếp nhận request từ phía client

- Cluster: là tập hợp các Node hoạt động cùng nhau, có cùng cluster.name và chia

sẻ với nhau dữ liệu, khối lượng công việc Mỗi cluster có một Node Master, được

lựa chon tự động và hoan toàn có thé được thay thế néu xảy ra sự cố

- Shard: Các index được chia theo chiều ngang thành các shard, mỗi shard chứa

tat cả các thuộc tính của document nhưng chứa ít đối trong JSON hon index MỗiNode sẽ bao gồm nhiều Shard, Elasticsearch sẽ đảm nhiệm việc quản lý các giao

tiếp với Shard, vì thế Shard sẽ là đối tượng nhỏ nhất, hoạt động ở mức thấp nhất,

đóng vai trò lưu trữ dir liệu.

16

Trang 17

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

Shard rất quan trọng vì:

- Cho phép phân mảnh theo chiều ngang mở rộng khối lượng bản ghi

- Cho phép phân tan và hoạt động song song trên các phân đoạn, nhờ đó tăng hiệu

suât làm việc.

Có 2 loại shard được sử dụng là Primary Shard va Replica Shard [2]

Primary Shard

e Primary Shard là phần nằm ngang gốc của một index và sau đó các primary shard

này được sao chép thành các Replicas Shard.

e Primary Shard là sẽ lưu trữ dữ liệu và đánh index Sau khi đánh xong dữ liệu sẽ được

vận chuyên tới các Replica Shard

e Mac định của Elasticsearch là mỗi index sẽ có 5 Primary Shard đối với phiên bản

6.x trở xuống, 1 Primary Shard ké từ phiên bản 7.x, và mỗi Primary Shard thì sé đikèm 1 Replica Shard.

Replica Shard

¢ Nơi lưu trữ dir liệu sao chép của Primary Shard, được sử dung dé thay thé Primary

Shard khi có lỗi xảy ra Đó cũng là lý do vì so Replica Shard không được phân bótrên cùng một node với Primary Shard của nó, dé đảm bảo tính toàn ven đữ liệu va

tính chịu lỗi.

e Tăng cường tốc độ tìm kiếm bởi có thé cài đặt lượng Replica Shard nhiều hơn mặc

định của Elasticsearch hoặc thực hiện thao tác tìm kiếm song song trong các bản sao

này.

1.2.2 Lưu trữ dữ liệu trong Elasticsearch

Don vi dit liệu co ban của Elasticsearch là Document, là một đối tượng JSON cóđịnh danh duy nhất Document trong Elasticsearch giống với bản ghi dữ liệu của cơ sở

dữ liệu quan hệ, tuy nhiên không bị ràng buộc bởi schema Mỗi Document khi tạo ra sẽ

được đánh chỉ mục bằng cách sử dụng cấu trúc inverted index giống như các cơ sở ditliệu có hỗ trợ full-text search Hiểu một cách đơn giản thi inverted index là một cách

đánh chỉ mục dựa trên đơn vị là từ nhằm mục đích tạo mối liên kết giữa các từ và các

document chứa từ đó [2].

Index là một tập hợp những Document có chung thuộc tính, tính chất Khi tạo một

index có thể xác định số lượng shard tạo ra cho index đó Mặc định đối với phiên bản7.x trở lên, mỗi index tạo ra sẽ chỉ có 1 shard được tạo cùng, thay vì 5 shard như các

phiên bản trước, điều này giúp làm giảm dư thừa phân mảnh với những dữ liệu khôngquá lớn.

17

Trang 18

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

NODE 1 - # MASTER NODE 2 NODE 3

CLUSTER

Hình 1.2 Quá trình lưu dữ liệu của Elasticsearch

Quá trình lưu trữ dữ liệu trên Elasticsearch có thé chia thành 3 bước [3]:

1) Request được gửi đến Node Master (Node 1) Tại đây thực hiện tính toán dé

tìm ra Primary Shard của Document sẽ là 0.

2) Sau khi xác định được Primary Shard là 0, request sẽ được gửi đến Node 3,

nơi chứa P0 (Primary Shard 0).

3) Node 3 thực hiện request và xử lý lưu trữ dữ liệu Sau khi thành công, nó gửi

tiếp request đến các Replica Shard ở Node 1 va Node 2 dé dam bảo dữ liệuthống nhất giữa các node

NODE 1 - # MASTER NODE 2 NODE 3

CLUSTER

Hình 1.3 Quá trình lấy dữ liệu của Elasticsearch

Quá trình lấy dữ liệu trên Elasticsearch có thê chia thành 3 bước [3]:

1) Request được gửi đến Node Master (Node 1) Tại đây xác định Primary Shard

cho Document sẽ là 0.

18

Trang 19

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

2) Do tất cả Node đều lưu đữ liệu, nên Master Node sẽ chọn ra 1 Node va lay dt

liệu ở Shard số 0 (P0 hoặc R0) Việc chon này giúp giảm tap trung vào một

node Thuật toán Round-Robin được sử dụng để các Shard được chọn khác

nhau ở mỗi request Trong trường hợp này Node 2 được chọn.

3) Replica Shard 0 ở Node 2 trả về kết quả cho Master Node

Elastic thực hiện các công việc sau cho công đoạn truy vấn tìm kiếm đữ liệu [3]:

1) Node nhận request sẽ gửi broadcast request đó đến tat cả các Node khác Tại

mỗi Node này sẽ chỉ định một Shard thực hiện công việc tìm kiếm theo yêucầu

2) Mỗi Shard sẽ thực hiện công việc tìm kiếm, trả về _id Về _score cua

Document Trong đó, _id là định danh duy nhất của Document, _ score là giá

trị dùng dé sắp xếp Document theo thứ tự của độ liên quan với thông tin cần

tìm kiếm

3) Node tiếp nhận request sau khi nhận kết quả trả về từ các Node khác sẽ thực

hiện công việc sắp xếp toàn cục tất cả các Document được trả về, dựa theo_id và _score để đảm bảo tính đúng đắn của dit liệu Cuối cùng Node tiếpnhận request sẽ trả ra kết quả sau khi sắp xếp về phía client

1.3 Thuật toán TF/IDF

Thuật toán đánh giá được sử dụng rất phố biến trong Elasticsearch có tên gọi là

TF/IDF, viết tắt của Term Frequency/Inverse Document Frequency, bao gồm các yếu tôđánh giá: Term frequency, Inverse document frequency, Field-length norm [4,5]

1.3.1 Term frequency

Yéu tô này được sử dung dé đánh giá tan suât xuât hiện cua term trong field Càng

xuât hiện nhiêu, relevance càng cao Term frequency được tính bởi công thức:

tft, d) = //frequency

Giải thích: term frequency tf của term t trong document d sẽ được tinh bằng căn bậc haicủa tần suất xuất hiện của t trong d

19

Trang 20

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

1.3.2 Inverse document frequency

Yếu tố này đánh giá tan suất xuất hiện của term trên toàn bộ index Nếu term xuất

hiện càng nhiều thì sẽ càng ít thích hợp Ví dụ với các từ không mang ý nghĩa riêng biệtnhư “sinh viên”, khi tìm kiếm sẽ có ít giá trị hơn so với “sinh viên học viện Công nghệ

Bưu chính viễn thông”.

1.3.3 Field-length norm

Yếu tô này đánh giá độ dài của field chứa term Với field càng ngăn, việc xuất hiện

của term trong đó sẽ có giá trị càng cao Điển hình như việc xuất hiện term ở tiêu đề sẽ

có giá trị hơn hắn khi xuất hiện trong nội dung bài viết

Công thức tính:

1

vnumFieldTerms

Giải thích: Field-length norm (norm) của document d là nghịch đảo căn bậc 2 của số

lượng của term trong field.

norm(d) =

Tổng hợp lai, ta có công thức tính _ score như sau:

_ score = IDF score * TF score * fieldNorms

1.4 Các thư viện va framework lập trình được lựa chon

Trang 21

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

Leaflet được thiết kế chú trọng tới sự đơn giản, hiệu suất, và khả năng sử dụng Nócũng hoạt động hiệu quả trên cả nền tảng máy tính lẫn điện thoại, có thể được mở rộng

với rất nhiều các plugin

Hình 1.4 Giao diện ví dụ về thư viện LeafletJS [6]

Lý do lựa chọn LeafletJS:

Đối với API cho bản đồ thì Google Maps luôn đi đầu, nhưng giá thành cần phải trảrất tốn kém Leaflet là một thư viện mã nguồn mở, không tốn kém chi phí, nhưng cũng

cung cap khá đầy đủ các tính năng cần thiết cho phát triển ứng dụng

Do đó trong khuôn khổ đồ án nay, em lựa chọn LeafletJS cho việc hiển thị vị trítrên bản đồ

1.4.2 Ruby On Rails

Ruby on Rails là một web framework được viết dựa trên ngôn ngữ lập trình Ruby

Do vậy, trước khi đi vào tìm hiểu Rails framework thì em sẽ trình bày đôi nét về ngôn

ngữ lập trình Ruby.

21

Trang 22

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

a Ngôn ngữ lập trình Ruby

Ruby được tạo ra bởi Yukihiro "Matz" Matsumoto từ 24 thang 2, 1993 và đưa ra

bản chính thức vào năm 1995, và hiện tại vẫn đang được tiếp tục phát triển Ké từ sau

khi ngôn ngữ Ruby được công khai, những hiệu quả phát triển mà nó mang lại ngàycàng được biết đến rộng rãi, và hiện tại nó đã trở thành 1 ngôn ngữ nỗi tiếng trên khắpthế giới

Ruby là ngôn ngữ hướng đối tượng hoàn toản, với mọi thứ đều là một đối tượng.

Điểm mạnh của Ruby:

- Tất cả những mặt mạnh của ngôn ngữ hướng đối tượng, Ruby đều kế thừa

hoàn toàn, bao gồm cả sự linh động của chính ngôn ngữ Ta có thé viết thêm nhữngmethod khác vào Ruby mà không hề ảnh hưởng tới những method đã có

- Dé dang đọc hiểu, do có cú pháp ngắn gon, súc tích Lập trình viên khi lập

trình với Ruby sẽ có cảm giác cú pháp của nó rất “thanh thoát”

Điểm yêu của Ruby: Điểm yếu lớn nhất của Ruby là tốc độ, so sánh với Javathì Ruby chậm hơn rất nhiều

b Ruby on Rails framework

Được phát triển dựa trên ngôn ngữ Ruby dé phục vu cho việc xây dung ứng dụngweb, Rails là một framework nồi tiếng về sự tiện ích với thế mạnh về cú pháp của Ruby,cùng với đó là rất nhiều những thư viện có sẵn mạnh mẽ giúp cho lập trình viên tập trungvào phát triển ứng dụng hơn là phải xử lý từ những thứ nhỏ nhất Không chỉ là nhữngthư viện có sẵn, cộng đồng sử dụng Ruby on Rails rất lớn và do đó có rất nhiều nhữngthư viện tiện lợi cho Rails.

Ruby on Rails đưa ra những quy ước dé lập trình viên tuân theo, từ đó framework

sẽ có các cơ chế để giúp cho việc lập trình của lập trình viên trở nên tiện lợi hơn, ví dụ

như tự động sinh ra những file cần thiết, tự động tìm kiếm và import các file

Rails được xây dựng dựa trên mô hình nổi tiếng MVC, tuy nhiên với những cập

nhật gần đây nó cũng có những hỗ trợ dé phát triển một ứng dụng Restful API chứ khôngchỉ là MVC.

Vì những lý do trên, có rất nhiều những ô ông lớn trong ngành công nghệ đã và đang

sử dung Ruby on Rails làm công cụ phát triển, ví dụ một số cái tên nổi bật như: Twitter (hiện đã chuyền đổi qua Scala), Github, Airbnb, Soundcloud

22

Trang 23

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

©» STORLET 3 Basecamp

CAR RENTAL

Hình 1.5 Các công ty xây dựng trên nền tang Ruby on Rails [7]

c Lý do lựa chon Ruby on Rails:

Đồ an nay sử dung Ruby on Rails dé phát triển phía server vì những tiện dụng của

nó như cú pháp ngắn gọn, dễ đọc của ngôn ngữ Ruby, sự mạnh mẽ đến từ các thư viện

có sẵn và bên ngoài cua Rails framework, dé dang tích hợp với các dịch vụ bên thứ ba

do tính phố biến của framework

1.4.3 MySQL

MySQL là hệ quan tri cơ sở dt liệu quan hệ mã nguồn mở, hoạt động theo mô hình

client-server Công ty Thuy Điển MySQL AB phát trién MySQL vào năm 1994 Công

ty công nghệ Mỹ Sun Microsystem sau đó giữ quyền sở hữu MySQL sau khi mua lạiMySQL vào năm 2008 Năm 2010, gã khổng 16 Oracle mua Sun Microsystems vàMySQL thuộc quyền sở hữu của Oracle từ đó

MySQL tương thích với nhiều hệ điều hành máy tính phổ biến như Linux, macOS

và Microsoft Windows Hiện nay có rất nhiều ông lớn trong ngành công nghệ sử dụng

MySQL như Facebook, Youtube và MySQL cũng được giảng dạy rộng rãi ở các

trường đại học trong nước và quốc tế

Các đặc điểm giúp cho MySQL trở nên nồi tiếng và được ứng dụng rộng rãi [7]:

e MySQL được phát hành theo giấy phép nguồn mở Nó hoàn toàn miễn phí

e MySQL sử dụng một dạng chuẩn của ngôn ngữ truy van dữ liệu SQL nổitiêng

23

Trang 24

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

e MySQL tương thích với nhiều hệ điều hành và nhiều ngôn ngữ lập trìnhkhác nhau bao gồm Ruby, C, C ++, Java, PHP

e MySQL hoạt động rất nhanh và hoạt động tốt ngay cả với các tập dit liệulớn

e MySQL rất thân thiện với PHP, một ngôn ngữ phổ biến trên toàn thế giớitrong nhiều năm qua

e = MySQL hỗ trợ co sở dit liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơntrong một bảng Giới hạn kích thước tệp mặc định cho một bảng là 4GB, nhưng ta

có thé điều chỉnh giới hạn này theo lý thuyết lên đến 8 triệu TB

Lý do lựa chọn MySQL

Đồ án sử dụng MySQL để lưu trữ dữ liệu vì những nó là mã nguồn mở, đồng thời

với tính phố biến rộng rãi, dé sử dụng và tương thích với nhiều nền tảng, ngôn ngữ khácnhau của nó.

Việc lựa chọn co sở dữ liệu quan hệ cho đồ án mà không lựa chọn công nghệ khác

mới hơn hiện nay như cơ sở dữ liệu không quan hệ NoSQL dựa trên tính năng và phạm

vi của đồ án Đồ án không có các tính năng cần truy vấn lượng lớn đữ liệu với tốc độcao và lưu trữ linh hoạt vốn là thế mạnh của NoSQL, mặt khác, đồ án có các tính năngyêu cau tính ACID của cơ sở dữ liệu có quan hệ, đồng thời việc duy trì quan hệ giữa các

bảng một phan cũng dam bao tính an toàn của dữ liệu, tránh việc xóa nhằm dữ liệu

1.4.4 ReactJS

ReactJS là một thư viện viết bang Javascript, dùng dé xây dựng giao diện người

dùng, được Facebook opensource vào năm 2015 React được sử dụng rộng rãi và có hệ

sinh thái đa dạng phong phú.

ReactJs sử dụng Virtual DOM giúp cho hiệu suất tốt hơn với DOM Ngay trướckhi có thay đôi diễn ra, React sẽ lấy một snapshot của Virtual DOM và so sánh với một

Virtual DOM được cập nhật thay đổi Từ đó phát hiện những phan thay đổi và chỉ cậpnhật chúng, bỏ qua những phần không liên quan, qua đó giúp tăng tốc độ so với tải lạitoàn bộ các phan tử trên DOM mỗi khi có thay đổi như cách truyền thống

ReactJs là một SPA, toàn bộ tài nguyên của web bao gồm các file CSS, Javascript

sẽ được load lần đầu tiên khi bắt đầu duyệt website Khi chuyên qua các trang khác ở

lần sau, chỉ những dữ liệu cần thiết mới được tải xuống, giúp mang đến trải nghiệmmượt mà hơn cho người dùng, giảm thời gian tải lại toàn bộ tài nguyên, tiết kiệm băngthông và quan trọng nhất là giảm thời gian chờ đợi

Lý do lựa chọn ReactJS

24

Trang 25

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

ReactJS với những ưu điểm nêu trên cho hiệu suất tốt hơn cách tải giao điện truyềnthống Ngoài ra, ReactJS hỗ trợ việc tái sử dụng các thành phần của ứng dụng, giúp cho

việc lập trình trở nên dé dàng, đồng thời dé đọc hiểu và chỉnh sửa mã nguồn hơn

1.4.5 PayPal Developer

PayPal là một công thanh toán điện tử trực tuyến giúp chúng ta có thé đưa tiền từtài khoản ngân hàng vào tài khoản PayPal dé tiến hành giao dịch trên mạng Hoặc rúttiền từ tài khoản PayPal về tài khoản ngân hàng Khi sử dụng PayPal làm trung gian thìquá trình giao dịch sẽ đơn giản hơn và bảo mật hơn, do dữ liệu về tài khoản ngân hàng

của người dùng không bị phía server của trang web lưu trữ lại.

a Thanh toán qua PayPal

Thanks for your payment!

Trang 26

Đồ án tốt nghiệp Chương | Giới thiệu bai toán và các các công nghệ

PayPal hỗ trợ các API giúp cho việc tích hợp thanh toán trở nên thuận tiện hơn cho lập

trình viên [8]

Luông hoạt động của tinh năng thanh toán với PayPal diễn ra như sau:

- Người thanh toán chọn nút Thanh toán PayPal được tích hợp vào trang web

- Nut Thanh toán sẽ gọi đến hàm tạo giao dịch, đồng thời hiển thị giao diện thanh toán

của PayPal để người dùng xác nhận thanh toán

- Nguoi dung chọn Xác nhận

- Sau khi được xác nhận, PayPal Orders API sẽ trả về callback để gọi tới API tiến hành

giao dịch

- _ Giao dịch hoàn tat, trang web thông báo cho người dùng thanh toán thành công

b Rút tiền qua PayPal

Existing user

P PAvPAL ma

Acme paid you $10.00 Acme funds! I

New user Download and sign up $10.00 is yours!

Hình 1.7 Luồng hoạt động của quá trình trả tiền qua PayPal API [9]

Việc rút tiền qua PayPal được thực hiện bởi PayPal Payouts API với các yêu cầu như

sau: cần có tài khoản PayPal Business, có cài đặt Payout, xác thực danh tinh, email, tai

khoản ngân hàng liên kết tới tài khoản PayPal Business và cuối cùng là đủ số du dé thực

hiện trả tiền [9]

Luông trả tiền sẽ dién ra như sau:

- PayPal Payouts API sẽ cung cap API dé tao Payout, trong API cần lựa chọn nhập vào

email/s6 điện thoại của người nhận

- PayPal sẽ gửi thông báo tới người nhận qua hai hình thức:

26

Trang 27

Đồ án tốt nghiệp Chương 1 Giới thiệu bài toán và các các công nghệ

+ Nếu người nhận đã có tài khoản PayPal, sẽ có thông báo qua email và trên ứng

dụng PayPal Người nhận có thể vào nhận trực tiếp

+ Nếu người nhận chưa có tài khoản PayPal, sẽ có thông báo qua email hoặc số điện

thoại, người nhận cần tạo tài khoản PayPal dé nhận tiền

c Lý do lựa chọn PayPal

PayPal cung cấp những API cần thiết, dé sử dụng cho lập trình viên, đồng thời có

một trang tai liệu dé đọc giúp việc tích hợp trở nên dễ dàng hơn PayPal tương thích với

ngôn ngữ Ruby.

1.5 Kết luận

Chương 1 đã giới thiệu bài toán và trình bày những khái niệm tông quát, các công

nghệ được sử dụng trong đồ án Chương 2 sẽ trình bày chỉ tiết về phân tích, thiết kế hệ

thống giải quyết bài toán đã đặt ra ở chương 1

27

Trang 28

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

CHƯƠNG 2 PHAN TÍCH VÀ THIET KE HE THONG 2.1 Phan tich hé thong

2.1.1 Các tác nhân chính của hệ thống

Tác nhân chính của hệ thống bao gồm: Người dùng hệ thống: Chủ nhà, Khách hàng,Người quản trị hệ thống

Người dùng hệ thống có thé: đăng nhập, đăng kí, đăng tai bài viết, thich/chia sẻ/bình

luận bài viết của bạn bè, theo dõi/hủy theo dõi người dùng hệ thống khác

Chủ nhà có thé: đăng tải nội dung về căn hộ mình muốn cho thuê, chỉnh sửa thông

tin về căn hộ của mình, tìm kiếm căn hộ của mình, nhận tiền của khách đặt thuê căn

hộ.

Khách hàng có thé: tìm kiếm căn hộ muốn thuê theo tên, địa điểm, đánh giá, giá tiền;đặt căn hộ muốn thuê, gửi đánh giá, bình luận về căn hộ, thanh toán, xem chỉ tiết

thanh toán sau khi thanh toán thành công.

Người quản trị hệ thống có thể: đăng nhập, quản lý căn hộ, quản lý người dùng hệthống: sửa thông tin/xóa thông tin/kích hoạt/đình chỉ hoạt động, theo dõi lợi nhuận.2.1.2 Biểu đồ ca hoạt động tổng quát

28

Trang 29

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

Mô tả Cho phép người dùng đăng nhập vào hệ thông

Tác nhân Khách hàng, Chủ căn hộ, Quản trị hệ thống

Tiền điều kiện | Người dùng đã có tài khoản dé đăng nhập

29

Trang 30

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

Hậu điều kiện Người dùng đăng nhập thành công.

Luong chính

1 Hệ thống hiển thị giao diện Đăng nhập

2 Người dùng nhập tài khoản và mật khẩu và chọn đăng nhập

3 Hệ thống kiểm tra tính chính xác của tài khoản, mật khẩu và tiễnhành đăng nhập Người dùng vào hệ thống

4 Hệ thống hién thị giao diện Trang chủ tùy vào tác nhân thực hiệnđăng nhập

Luéng phu

b Thém bai viét

Tai bước 3: Thông tin đăng nhập bi sai

3.1 Hệ thống báo lỗi sai tên đăng nhập hoặc mật khẩu

3.2 Quay lại bước 2

Bảng 2.2 Kịch bản chức năng thêm bai viếtTên Thêm bài viết

Mô tả Cho phép người dùng đăng tải bài viết lên trang cá nhân

Tác nhân Người dùng

Tiên điêu kiện

Hậu điêu kiện

Người dùng đã đăng nhập vào hệ thốngNgười dùng đăng tải bài viết thành công

Luong chính

1 Hệ thống hiển thị giao điện Đăng bài viết

2 Người dùng nhập vào các trường: tiêu đề, nội dung, có thể chọn

đính kèm hình ảnh; sau đó chọn Thêm

3 Hệ thống thông báo thêm căn hộ thành công

30

Trang 31

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

Tại bước 2:

2.1 Người dùng nhập thiếu thông tin bắt buộc

2.1.1 Hiển thị thông báo các trường bắt buộc2.1.2 Quay lại bước 1

: 2.2 Người dùng chọn Hủy đăng bài

c Bình luận về bai viet

Bảng 2.3 Kịch bản chức năng bình luận về bài viếtTên Bình luận về bài viết

Mô tả Cho phép Người dùng bình luận về bài viết của bạn bè

Tác nhân Người dùng

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

Hệ thống hiển thị giao diện Chi tiết bài viết kèm theo bình luận

Hậu điêu kiện

mới

1 Người dùng chọn Bình luận ở bài viết bất kì trong hệ thống

2 Hệ thống hiển thị giao điện Bình luận cho người dùng điền nội

Trang 32

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

d Theo dõi người dùng

Bảng 2.4 Kịch bản chức năng theo dõi người dùng

Tên Theo dõi người dùng

Mô tả Cho phép Người dùng theo dõi một người dùng khác trong hệ thống

Tác nhân Người dùng

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

Hậu điều kiện | Hệ thống hiển thi giao diện chính

1 Hệ thống hiển thị giao diện Danh sách người dùng

2 Người dùng chọn Theo dõi

Luong chính Í|+ Hạ thống ghi nhận lượt theo doi, các bài viết của Người dùng

được theo dõi sẽ hiển thị lên Trang cá nhân của Người dùng thực

hiện theo dõiLuong phụ Không

32

Trang 33

Đồ án tốt nghiệp Đại học Chương 2 Phân tích và Thiết kế Hệ thống

Một số kịch bản cho khách hàng đặt thuê căn hộ

Bảng 2.5 Kịch bản chức năng đặt thuê căn hộ

Tên Đặt thuê căn hộ

Mô tả Người dùng thực hiện đặt căn hộ muốn thuê

Tác nhân Khách hàng

Tiền điều kiện | Khách hàng đã đăng nhập vào hệ thống

Hậu điều kiện | Hệ thống hiển thị giao diện Thanh toán

33

Ngày đăng: 08/03/2024, 13:53

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

TÀI LIỆU LIÊN QUAN

w