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

Luận văn tốt nghiệp Khoa học máy tính: PRP - Phát triển hệ thống cung cấp dịch vụ xây dựng trang đăng tin mua bán bất động sản

115 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

PRP – PHÁT TRIỂN HỆ THỐNG CUNG CẤP DỊCH VỤ XÂY DỰNG TRANG ĐĂNG TIN MUA BÁN BẤT ĐỘNG SẢN

Trang 2

KHOA:KH & KT Máy tính NHIỆM VỤ LUẬN ÁN TỐT NGHIỆPBỘ MÔN:KHMTChú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình

NGÀNH: LỚP:1 Đầu đề luận án:

Phát triển hệ thống cung cấp dịch vụ xây dựng trang đăng tin mua bán bất động sản2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):

Đề tài cho phép người dùng cuối là các cá nhân hay doanh nghiệp triển khai một hệ thống đăngtin bất động sản khả cấu hình để thể hiện thương hiệu riêng của doanh nghiệp hay cá nhân đó.Ngoài các chức năng đăng tin cơ bản, đề tài cho phép kết nối trao đổi thông tin giữa người muavà người bán.

-Sinh viên tìm hiểu các nghiệp vụ, phân tích và thiết kế hệ thống

-Sinh viên cần am hiểu các kỹ năng lập trình frontend website/mobile app, backend-Sinh viên cần tìm hiểu các tính hợp API với các bên thứ 3 để xây dựng các tiện ích cho

người dung như thanh toán, email, notification

-Sinh viên cần tìm hiểu cách triển khai hệ thống trên nền tảng cloud như AWS

-Sinh viên có thể tìm hiểu thêm công nghệ thực tế ảo tăng cường để đem lại trải nghiệmmới cho người dùng quan sát bất động sản

ThS Trần Thị Quế NguyệtPHẦN DÀNH CHO KHOA, BỘ MÔN:

Người duyệt (chấm sơ bộ):Đơn vị:

Trang 3

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người hướng dẫn/phản biện)

1 Họ và tên SV: Võ Quốc Bảo - Nguyễn Long Kim MSSV: 1811553 - 1812742

6 Những ưu điểm chính của LVTN:

Sinh viên đã hiện thực trang web đăng tin bất động sản cho một tổ chức bất động sản với các tính năng thiết yếu và giao diện dễ nhìn như quản lý bài đăng với các tiện ích bất động sản có thể tuỳ chỉnh động, quản lý người dùng và cho phép kết nối người tìm kiếm bất động sản với chủ sở hữu hoặc nhân viên môi giới bất động sản

Sinh viên cũng đã tiến hành kết nổi công thanh toán momo để người dùng thanh toán mua dịch vụ đăng tin và gia hạn tin đăng

Sinh viên cũng đã tiến hành triển khai trên nền tảng AWS, kiểm thử bằng công cụ Katalon và đánh giá bằng Google Page Speed

7 Những thiếu sót chính của LVTN: - Chưa khả đáp ứng trên thiết bị di động

- Cần bổ sung các tiện ích cho người đăng tin như lịch hẹn, ghi chú người liên hệ, v.v - Tính năng gói dịch vụ đăng tin còn đơn giản

- Chưa cho phép khả cầu hình giao diện tuỳ theo tổ chức bất động sản cần triển khai hệ thống - Các tiện ích khác như hiển thị trên bản đồ, tìm kiếm còn đơn giản

8 Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ  9 3 câu hỏi SV phải trả lời trước Hội đồng:

a b c

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Khá giỏi Điểm : 8 /10 Ký tên (ghi rõ họ tên)

Trang 4

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người phản biện)

1 Họ và tên SV: Võ Quốc Bảo

MSSV: 1811553 Ngành (chuyên ngành): Khoa học Máy tính Họ và tên SV: Nguyễn Long Kim

MSSV: 1812742 Ngành (chuyên ngành): Khoa học Máy tính 2 Đề tài: Phát triển hệ thống cung cấp dịch vụ xây dựng trang đăng tin mua bán bất động sản

3 Họ tên người phản biện: Trương Quỳnh Chi 4 Tổng quát về bản thuyết minh:

8 Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ 

9 3 câu hỏi SV phải trả lời trước Hội đồng: không

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): KHÁ Điểm : 7,8 /10 Ký tên (ghi rõ họ tên)

Trương Quỳnh Chi

Trang 5

Nhóm xin cam đoan đây là hệ thống riêng của nhóm và được sự hướng dẫn Ths Trần Thị Quế Nguyệt Các nội dung đang tìm hiểu, thiết kế đề tài này là trung thực, hoàn toàn không sao chép hoặc sử dụng các kết quả từ các đề tài tương tự

Nếu bị phát hiện bất kỳ sự gian lận nào trong đề tài thì nhóm xin chịu hoàn toàn trách nhiệm về nội dung và sẽ chịu mọi hình phạt từ phía Ban chủ nhiệm Khoa và Ban giám hiệu Nhà Trường

Trang 6

Lời đầu tiên, nhóm xin gửi lời cảm ơn chân thành nhất đến cô Trần Thị Quế Nguyệt đã nhiệt tình hướng dẫn nhóm trong suốt giai đoạn thực hiện đề tài Luận Văn tốt nghiệp Nhờ những buổi gặp mặt và sự chỉ dẫn hướng phát triển đề tài của cô mà nhóm đã giải đáp những thắc mắc để nhóm có thể làm việc hiệu quả hơn và xử lý những trường hợp khó hiểu đối với nhóm

Tiếp theo, nhóm xin gửi lời cảm ơn đến quý thầy cô trong trường Đại học Bách Khoa đã và đang giảng dạy, truyền đạt tận tình những kiến thức nền tảng, hữu ích cho việc hoàn thành bản báo cáo này, những kiến thức này sẽ còn đi tiếp với các thành viên của nhóm trong cả quá trình làm việc và cuộc sống sau này

Cuối cùng, do những thiếu sót và hạn chế về kiến thức, về thời gian và kinh nghiệm hoàn thiện dự án nên sẽ không thể tránh khỏi những sai sót trong quá trình hiện thực đề tài, chúng em rất mong nhận được sự đóng góp từ thầy cô để hoàn thiện kỹ năng cho bản thân hơn nữa

Một lần nữa xin gửi lời cảm ơn chân thành đến thầy cô đã dành thời gian để theo dõi bản báo cáo này

Trang 7

"Nền tảng hệ thống đăng tin bất động sản" - PRP là website hỗ trợ cho các công ty, cá nhân môi giới bất động sản đăng bài với mục đích giúp khách hàng quan tâm bất động sản có thể tiếp cận nhanh chóng và thuận tiện

Nhóm sẽ cung cấp một website đăng tin và một website quản lý giúp công ty có thể quản lý hệ thống đăng tin Hệ thống cho phép người môi giới, chủ sở hữu bất động sản đăng ký thành viên và đăng bài miễn phí hoặc trả phí

Để thực hiện được hệ thống này, nhóm sẽ phải thực hiện được những công việc sau:

 Khảo sát các hệ thống liên quan

 Tìm hiểu về quá trình quản lý, đăng tin bất động sản  Lên danh sách và đặc tả các chức năng của hệ thống

 Thiết kế hệ thống, thiết kế giao diện bằng Figma và thiết kế lược đồ cơ sở dữ liệu

 Tìm hiểu về các công nghệ sẽ được sử dụng, các API hay các dịch vụ điện toán đám mây

 Hiện thực hệ thống

 Kiểm thử, triển khai và đánh giá hệ thống  Viết báo cáo

Trang 8

Chương 1: Giới thiệu đề tài

Giới thiệu tổng quan, những nội dung thực hiện, nêu ý nghĩa thực tiễn và học thuật khi làm đề tài

Chương 2: Kiến thức nền tảng

Giới thiệu về kiến thức nền tảng, các công nghệ sẽ được dùng để hiện thực, triển khai hệ thống như các framework, các thư viện sẽ được sử dụng, các dịch vụ bên thứ ba

Chương 3: Phân tích hệ thống

Trình bày những thông tin về các hệ thống tương đồng và đặc tả về hệ thống PRP

sắp được hiện thực Phân tích cụ thể các nghiệp vụ sẽ được tích hợp trong hệ thống

Chương 6: Kiểm thử, triển khai, và đánh giá hệ thống

Triển khai hệ thống lên cloud, cung cấp domain, và tiến hành đánh giá hệ thống thông qua kiểm thử Qua đó xác định hiệu suất hệ thống đạt được, và cách thức nâng cao hiệu suất

Chương 7: Tổng kết, đánh giá, và hướng phát triển đề tài

Tổng kết lại những kết quả đã đạt được trong đề tài, đánh giá ưu nhược điểm của hệ thống Đưa ra hướng phát triển cho đề tài trong tương lai

Trang 9

LỜI CAM ĐOAN i

3.3.1 Trang dành cho người dùng 11

3.3.2 Trang dành cho quản trị viên 22

3.3.3 Các yêu cầu phi chức năng của hệ thống 33

Trang 10

5.2 Tích hợp phương thức thanh toán MoMo 50

5.3 Giao diện của hệ thống 52

5.3.1 Giao diện trang dành cho người dùng 52

5.3.2 Giao diện trang quản trị 69

CHƯƠNG 6 KIỂM THỬ, TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG 76

6.1 Kiểm thử hệ thống 76

6.2 Triển khai hệ thống 87

6.2.1 Triển khai hệ thống trên nền tảng Cloud 87

6.2.2 Các bước triển khai 88

6.3 Đánh giá hệ thống 92

6.3.1 Đánh giá hiệu suất hệ thống bằng Google PageSpeed Insights 92

6.3.2 Cải thiện hiệu suất hệ thống 93

CHƯƠNG 7 TỔNG KẾT, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 97

7.1 Tổng kết kết quả đạt được 97

7.1.1 Đối với nhiệm vụ đề tài 97

7.1.2 Đối với lợi ích kinh tế 97

7.1.3 Đối với cơ sở lý thuyết và công nghệ 97

7.1.4 Đối với quy trình phát triển phần mềm 98

7.2 Đánh giá kết quả đạt được 98

7.2.1 Ưu điểm 98

7.2.2 Nhược điểm 98

7.3 Hướng phát triển đề tài 99

TÀI LIỆU THAM KHẢO 100

Trang 11

Hình 2.1 Mô hình MVC 3

Hình 3.1 Usecase của trang dành cho người dùng 11

Hình 3.2 Usecase của trang quản trị 22

Hình 4.1 Kiến trúc tổng thể của hệ thống 34

Hình 4.2 Lược đồ ERD 35

Hình 5.1 Cấu trúc source code cms 48

Hình 5.2 Cấu trúc source code client 49

Hình 5.3 Cấu trúc source code backend 50

Hình 5.4 Thông tin để gọi MoMo API 51

Hình 5.5 Quá trình thực hiện thanh toán trên website 51

Hình 5.6 Một phần giao diện trang chủ website 52

Hình 5.7 Một phần giao diện trang chủ website 52

Hình 5.8 Một phần giao diện trang chủ website 53

Hình 5.9 Giao diện đăng nhập trên website 53

Hình 5.10 Một phần giao diện đăng kí trên website 54

Hình 5.11 Một phần giao diện đăng kí trên website 54

Hình 5.12 Một phần giao diện danh sách bất động sản trên website 55

Hình 5.13 Một phần giao diện danh sách bất động sản trên website 55

Hình 5.14 Một phần giao diện chi tiết bất động sản trên website 56

Hình 5.15 Một phần giao diện chi tiết bất động sản trên website 56

Hình 5.16 Một phần giao diện chi tiết bất động sản trên website 57

Hình 5.17 Giao diện danh sách tin đã lưu trên website 57

Hình 5.18 Giao diện danh sách tin tức trên website 58

Hình 5.19 Một phần giao diện chi tiết tin tức trên website 58

Hình 5.20 Một phần giao diện chi tiết tin tức trên website 59

Hình 5.21 Một phần giao diện chi tiết tin tức trên website 59

Hình 5.22 Một phần giao diện tạo bài đăng trên website 60

Hình 5.23 Một phần giao diện tạo bài đăng trên website 60

Hình 5.24 Một phần giao diện tạo bài đăng trên website 61

Hình 5.25 Một phần giao diện tạo bài đăng trên website 62

Hình 5.26 Một phần giao diện tạo bài đăng trên website 63

Hình 5.27 Một phần giao diện tạo bài đăng trên website 63

Hình 5.28 Một phần giao diện tạo bài đăng trên website 64

Hình 5.29 Một phần giao diện tạo bài đăng trên website 64

Trang 12

Hình 5.35 Giao diện email thông báo yêu cầu liên hệ lại 67

Hình 5.36 Giao diện gia hạn bài đăng trên website 68

Hình 5.37 Giao diện lịch sử thanh toán trên website 68

Hình 5.38 Giao diện thông tin cá nhân trên website 69

Hình 5.39 Giao diện đăng nhập trên trang quản trị 69

Hình 5.40 Một phần giao diện dashboard trên trang quản trị 70

Hình 5.41 Một phần giao diện dashboard trên trang quản trị 70

Hình 5.42 Giao diện quản lí danh mục bất động sản trên trang quản trị 71

Hình 5.43 Giao diện danh sách bài đăng trên trang quản trị 71

Hình 5.44 Giao diện quản lí danh mục tin tức trên trang quản trị 72

Hình 5.45 Giao diện danh sách tin tức trên trang quản trị 72

Hình 5.46 Một phần giao diện chi tiết tin tức trên trang quản trị 73

Hình 5.47 Một phần giao diện chi tiết tin tức trên trang quản trị 73

Hình 5.48 Giao diện tạo tin tức trên trang quản trị 74

Hình 5.49 Giao diện lịch sử giao dịch trên trang quản trị 74

Hình 5.50 Giao diện quản lí thông tin cá nhân trên trang quản trị 75

Hình 6.1 Cấu trúc các thành phần cơ bản của Katalon 77

Hình 6.2 Kết quả kiểm thử đăng nhập (client) 80

Hình 6.3 Kết quả kiểm thử đăng kí (client) 81

Hình 6.4 Kết quả kiểm thử thanh toán 81

Hình 6.5 Kết quả kiểm thử xem lịch sử thanh toán 82

Hình 6.6 Kết quả kiểm thử xem, thay đổi thông tin cá nhân 83

Hình 6.7 Kết quả kiểm thử tạo, sửa, xóa, xem bài đăng 84

Hình 6.8 Kết quả kiểm thử xem tin tức 84

Hình 6.9 Kết quả kiểm thử tạo yêu cầu liên hệ lại 85

Hình 6.10 Kết quả kiểm thử lưu tin đăng, xem tin đăng đã lưu 85

Hình 6.11 Kết quả kiểm thử xem thống kê 86

Hình 6.12 Kiến trúc triển khai của hệ thống 87

Hình 6.13 Bucket prp-admin 88

Hình 6.14 Bucket prp-client 88

Hình 6 15 Một phần cấu hình CloudFront distribution của bucket prp-client 89

Hình 6.16 Một phần cấu hình CloudFront distribution của bucket prp-client 89

Hình 6.17 Một phần cấu hình CloudFront distribution của bucket prp-admin 89

Hình 6.18 Một phần cấu hình CloudFront distribution của bucket prp-admin 90

Hình 6.19 Cấu hình Route 53 record cho website 90

Hình 6.20 Cấu hình Route 53 record cho trang quản trị 90

Hình 6.21 Cấu hình AWS RDS cho hệ thống 91

Hình 6.22 Cấu hình backend trên AWS Elastic Beanstalk 91

Hình 6.23 Cấu hình backend trên AWS EC2 91

Trang 13

Hình 6.28 Điểm Google PageSpeed sau cải thiện của giao diện Tìm kiếm bất động sản 95 Hình 6.29 Điểm Google PageSpeed sau cải thiện của giao diện Thông tin cá nhân 95 Hình 6.30 Điểm Google PageSpeed sau cải thiện của giao diện Quản lí tin đăng 95 Hình 6.31 Điểm Google PageSpeed sau cải thiện của giao diện Dashboard 96

Trang 14

Bảng 3.1 Usecase đăng kí trên website 12

Bảng 3.2 Usecase đăng nhập trên website 12

Bảng 3.3 Usecase đăng xuất trên website 13

Bảng 3.4 Usecase xem thông tin cá nhân trên website 13

Bảng 3.5 Usecase chỉnh sửa thông tin cá nhân trên website 14

Bảng 3.6 Usecase tìm kiếm danh sách bài đăng bất động sản trên website 14

Bảng 3.7 Usecase tìm kiếm danh sách tin tức trên website 15

Bảng 3.8 Usecase xem chi tiết bất động sản trên website 15

Bảng 3.9 Usecase yêu cầu liên hệ lại trên website 16

Bảng 3.10 Usecase xem chi tiết tin tức trên website 16

Bảng 3.11 Usecase lưu bài đăng trên website 17

Bảng 3.12 Usecase xem danh sách bài đăng đã lưu trên website 17

Bảng 3.13 Usecase tạo bài đăng trên website 18

Bảng 3.14 Usecase xem danh sách bài đăng đã tạo trên website 18

Bảng 3.15 Usecase xem chi tiết bài đăng đã tạo trên website 19

Bảng 3.16 Usecase chỉnh sửa bài đăng trên website 19

Bảng 3.17 Usecase gia hạn bài đăng trên website 20

Bảng 3.18 Usecase xóa bài đăng trên website 20

Bảng 3.19 Usecase cập nhật trạng thái bài đăng trên website 21

Bảng 3.20 Usecase xem lịch sử thanh toán trên website 21

Bảng 3.21 Usecase đăng nhập trên trang quản trị 23

Bảng 3.22 Usecase đăng xuất trên trang quản trị 23

Bảng 3.23 Usecase xem thông tin cá nhân trên trang quản trị 24

Bảng 3.24 Usecase chỉnh sửa thông tin cá nhân trên trang quản trị 24

Bảng 3.25 Usecase xem thống kế website trên trang quản trị 25

Bảng 3 26 Usecase xem danh mục bất động sản trên trang quản trị 25

Bảng 3 27 Usecase thêm danh mục bất động sản trên trang quản trị 26

Bảng 3.28 Usecase chỉnh sửa danh mục bất động sản trên trang quản trị 26

Bảng 3.29 Usecase xóa danh mục bất động sản trên trang quản trị 27

Bảng 3.30 Usecase tìm kiếm danh sách bài đăng bất động sản trên trang quản trị 27

Bảng 3.31 Usecase cập nhập trạng thái bài đăng trên trang quản trị 28

Bảng 3.32 Usecase xóa bài đăng trên trang quản trị 28

Bảng 3.33 Usecase xem danh mục tin tức trên trang quản trị 29

Bảng 3.34 Usecase thêm danh mục tin tức trên trang quản trị 29

Bảng 3.35 Usecase chỉnh sửa danh mục tin tức trên trang quản trị 30

Bảng 3.36 Usecase xóa danh mục tin tức trên trang quản trị 30

Bảng 3.37 Usecase tìm kiếm danh sách tin tức trên trang quản trị 31

Bảng 3.38 Usecase cập nhật trạng thái tin tức trên trang quản trị 31

Bảng 3.39 Usecase xóa tin tức trên trang quản trị 32

Bảng 3.40 Usecase chỉnh sửa tin tức trên trang quản trị 32

Trang 15

Bảng 4.3 Bảng dữ liệu Real Estate Categories 38

Bảng 4.4 Bảng dữ liệu Transaction Types 39

Bảng 4.12 Bảng dữ liệu Guest Favorites 43

Bảng 4.13 Bảng dữ liệu Account Favorites 44

Bảng 4.14 Bảng dữ liệu Cron Job Events 44

Bảng 4.15 Bảng dữ liệu Cron Job Types 44

Bảng 4.16 Bảng dữ liệu Page Accesses 45

Bảng 4.17 Bảng dữ liệu Payment History 46

Bảng 6.1 Thông tin môi trường kiểm thử trên Katalon 78

Bảng 6.2 Nhân sự kiểm thử hệ thống 79

Bảng 6.3 Test suite Đăng nhập (client) 79

Bảng 6.4 Test suite đăng ký (client) 81

Bảng 6.5 Test suite thanh toán 81

Bảng 6.6 Test Suite Lịch sử thanh toán 82

Bảng 6.7 Test Suite Thông tin cá nhân 82

Bảng 6.8 Test Suite Tin đăng 83

Bảng 6.9 Test Suite: Tin tức 84

Bảng 6.10 Test Suite Liên hệ lại 84

Bảng 6.11 Test Suite Tin yêu thích 85

Bảng 6.12 Test Suite: Thống kê (Admin) 86

Trang 16

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Tổng quan

Hiện nay, với sự phát triển của công nghệ, thương mại điện tử đang ngày càng trở nên phổ biến Không chỉ có mua bán các sản phẩm tiêu dùng bình thường mà hiện nay nhu cầu mua bán, giao dịch bất động sản cũng trở nên rất sôi nổi trên mạng Internet Chính vì thế mà ngày càng có nhiều người môi giới hoặc ngay cả chủ sở hữu cũng đang tìm cách rao bán bất động sản thông qua các trang mạng

PRP được phát triển với mong muốn là tạo ra một môi trường mở, mà người

dùng (môi giới, chủ sở hữu) có thể rao bán, quảng cáo bất động sản của mình đến những

người quan tâm Hệ thống PRP vừa cung cấp các dịch vụ đăng tin, theo dõi bài đăng

bất động sản, vừa có dịch vụ quản lý, kiểm soát dữ liệu từ khách hàng  Đối với người môi giới, sở hữu bất động sản:

 Đăng ký đăng tin

 Quản lý bài đăng của mình  Thanh toán khi đăng ký đăng tin  Gia hạn bài đăng

 Nhận email thông báo về yêu cầu liên hệ, nhắc gia hạn tin  Đối với người tìm kiếm bất động sản:

 Quản trị nội dung của hệ thống như tin tức, bất động sản, bài đăng  Xem thống kê của hệ thống, xem lịch sử thanh toán trên hệ thống

1.2 Nội dung thực hiện

Một số nội dung đã thực hiện trong quá trình hoàn thành hệ thống:  Nghiên cứu các hệ thống về đăng tin bất động sản

 Nghiên cứu công nghệ và các nền tảng cần có để hiện thực hệ thống  Xây dựng giao diện trang đăng tin và trang quản trị

 Hiện thực và kiểm thử hệ thống

Trang 17

1.3 Ý nghĩa đề tài 1.3.1 Ý nghĩa thực tiễn

PRP được ra đời nhằm mục đích hướng sự tiện lợi cho các nhà môi giới và người

1.3.2 Ý nghĩa khoa học, kỹ thuật

Xây dựng hệ thống PRP cũng là cơ hội để nhóm có thể tìm hiểu những vấn đề

liên quan đến bất động sản Để xây dựng hệ thống, nhóm đã tổng hợp, áp dụng các kiến thức đã học về cơ sở dữ liệu, kiến trúc hệ thống, các kỹ thuật thiết kế phân tích hệ thống, các kỹ thuật lập trình ứng dụng web, tìm hiểu và làm việc với các công nghệ phổ biến

được sử dụng hiện nay như framework Backend Django, thư viện Front-end ReactJS, dịch vụ AWS, Đây cũng dịp để các thành viên của nhóm nâng cao khả năng tự học, tự

tìm hiểu, nghiên cứu, kỹ năng làm việc nhóm và giải quyết các vấn đề phát sinh trong quá trình tìm hiểu, hiện thực, đánh giá hệ thống

Trang 18

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG

2.1 Cơ sở lý thuyết

2.1.1 Mô hình Model – View – Controller (MVC)

Mô hình Model - View - Controller hay còn được gọi là mô hình MVC là mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba bộ phận chính được kết nối với nhau Đó là Model(dữ liệu), View(Giao diện) và

Controller(Bộ điều khiển) [1]

 Model (M) là thành phần có chức năng lưu trữ dữ liệu được sử dụng bởi chương trình Đây là nơi chứa các nghiệp vụ tương tác với dữ liệu hay cơ sở

dữ liệu; nó bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối

database, truy vấn, xử lý dữ liệu

 View(V) là thành phần giao diện dành cho người dùng, nơi chứa những giao diện như nút bấm, khung nhập, menu, hình ảnh, Nó đảm nhận nhiệm vụ hiển thị thông tin, dữ liệu cho người dùng tương tác với hệ thống

 Controller(C) là thành phần chịu trách nhiệm xử lý các yêu cầu của người

dùng nhận từ lớp View(V) Nó sẽ gồm những class/function để xử lý nhiều nghiệp vụ logic, giúp lấy đúng dữ liệu nhờ những nghiệp vụ lớp Model(M) cung cấp và hiển thị thông tin đó ra cho người dùng thông qua View(V)

Trang 19

dữ liệu từ Model hay không Nếu có, nó sẽ điều hướng đến các thao tác xử lý tại Model, sau đó nhận lại dữ liệu từ Model trả về

Khi đã nắm được dữ liệu trả về từ Model thì Controller sẽ xử lý tập dữ liệu đó và trả ra View để hiển thị

 Khi nhận được dữ liệu trả ra từ Controller, View sẽ xây dựng lại các thành

phần hiển thị và trả về nội dung giao diện Controller sẽ đưa kết quả này lên

trình duyệt web của người dùng

 Trình duyệt web nhận giá trị trả về và hiển thị lên cho người dùng Đây cũng

là bước kết thúc cho luồng xử lý trong mô hình MVC

Ưu nhược điểm của MVC

 Ưu điểm

 Tiết kiệm băng thông vì không sử dụng kỹ thuật ViewState

 Giúp phát triển ứng dụng nhanh hơn, có bố cục rõ ràng và riêng biệt cũng giúp cho việc kiểm tra lỗi phần mềm đơn giản

 Phiên bản mới nhất của MVC hỗ trợ responsive website mặc định và các

mẫu cho mobile Chúng ta có thể tạo công cụ View của riêng mình một

cách đơn giản và nhanh chóng hơn  Nhược điểm

 Không phù hợp cho các dự án nhỏ

2.1.2 Restful API

REST (Representational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu,

một kiến trúc để viết API và sử dụng phương thức HTTP đơn giản để tạo ra giao tiếp giữa các thiết bị Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, PUT đến một URL để

xử lý dữ liệu

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà

theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành

phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML

RESTful API là một tiêu chuẩn dùng cho việc thiết kế API cho các ứng dụng Web

để quản lý các nguồn tài nguyên trên server RESTful là một trong những kiểu thiết kế

API được sử dụng phổ biến ngày nay để giao tiếp giữa ứng dụng trên các các nền tảng(web, mobile, ) [2]

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên

sẽ sử dụng những phương thức HTTP riêng Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc,

Trang 20

 PUT: Cập nhật thông tin cho resource  DELETE: Xóa một resource

RESTful API không sử dụng session và cookie, nó sử dụng một access_token với

mỗi request Dữ liệu trả về thường có cấu trúc như sau:

 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH

 405 Method Not Allowed – Phương thức không cho phép

 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ  415 Unsupported Media Type – Không hỗ trợ kiểu resource này

 422 Unprocessable Entity – Dữ liệu không được xác thực  429 Too Many Requests – Request bị từ chối do bị giới hạn

Việc sử dụng RESTful API cần có một tài liệu ghi lại cấu trúc API Mỗi một API

cần được miêu tả đầy đủ về biến được gửi, kiểu dữ liệu, bắt buộc gửi giá trị nào đó hay không, đưa ra một cấu trúc dữ liệu ban đầu Luôn sử dụng version để khi bạn cần nâng

cấp API mà vẫn hỗ trợ các API cũ

2.2 Công nghệ nền tảng 2.2.1 Front-end

ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook

và cộng đồng những nhà lập trình nhằm hướng đến xây dựng giao diện người dùng một cách thuận tiện [3]

ReactJS đang nổi lên trong những năm gần đây theo xu hướng Single Page Application ReactJS hỗ trợ xây dựng những thành phần giao diện (components) có tính

tương tác và tái sử dụng cao Chính vì vậy mà những website khi sử dụng ReactJS chạy mượt, nhanh, có khả năng mở rộng cao và cũng không quá khó để hiện thực React cho phép nhúng code HTML, CSS trong code JavaScript nhờ vào JSX, giúp cho lập trình viên có thể dễ dàng lồng ghép HTML, CSS vào trong JavaScript một cách tự nhiên hơn Ngoài ra, còn thể sử dụng React để render dữ liệu từ người dùng Sở dĩ React nổi lên

gần đây bởi vì một số ưu điểm của nó như:

Trang 21

component này, giúp việc rút gọn thời gian lập trình và dễ dàng quản lý các

component hơn

 Hiệu suất tốt hơn với Virtual DOM React cho phép xây dựng các Virtual DOM,

khi có sự thay đổi trong DOM thực tế thì Virtual DOM sẽ thay đổi ngay lập tức

2.2.2 Back-end Django

Django là một web framework bậc cao khá nổi tiếng được viết bằng ngôn ngữ

bậc cao Python Nó là một framework có đầy đủ các module, thư viện phục vụ cho phát

triển web, nên bạn chỉ cần tập trung vào việc viết ứng dụng mà không cần phải tốn công tạo ra cái mới Nó là miễn phí và mã nguồn mở, có một cộng đồng phát triển lớn và bộ tài liệu đầy đủ và chi tiết từ những nhà phát triển có kinh nghiệm [4]

Đặc biệt, Django cũng là framework sử dụng mô hình MVC và đây cũng một trong những lý do nhóm chọn Django để phát triển cho đề tài Tuy nhiên, Mô hình MVC trong Django được phát triển thành mô hình MVT và trông như sau:

 Model(M): Chính là Model trong MVC, chính là nơi thiết kế nên những table

cho database, từ đó Django ORM đã cung cấp những phương thức xử lý,

nghiệp vụ lên database

 Template(T): Chính là View trong MVC, nơi chứa những template mà ta thiết kế cho màn hình ứng dụng

 View(V): Chính là Controller trong MVC, chứa các class/function để xử lý

các request từ người dùng Nhận yêu cầu HTTP và trả về HTTP phản hồi

mỗi trang web thì lập trình viên sẽ chọn framework phù hợp

 Nó có thể hoạt động cùng với các framework bên ngoài và cũng có thể

cung cấp nội dung trên hầu hết mọi định dạng (JSON, HTML, XML, )

 Bảo mật

 Django giúp cho lập trình viên tránh nhiều lỗi bảo mật cơ bản bằng việc

cung cấp một framework có thể bảo vệ trang tự động Ví dụ các lỗi dễ

Trang 22

hash

 Django còn bảo vệ website khỏi những lỗ hổng, những loại tấn công mạng

như: tấn công SQL injection, Cross-site Scripting, cross-site request

forgery và clickjacking

 Khả năng mở rộng

 Django sử dụng kiến trúc thành phần riêng (mỗi phần của kiến trúc độc lập với nhau nên có thể thay thế hay thay đổi nếu cần mà không sợ ảnh hưởng)

 Nhờ sự tách biệt giữa các thành phần nên có thể mở rộng quy mô thêm phần cứng vào các cấp độ ( máy chủ bộ nhớ đệm, máy chủ cơ sở dữ liệu, )  Khả năng bảo trì

 Code trên Django được xây dựng trên các nguyên tắc và mẫu thiết kế, nó khuyến khích cho việc viết code sao cho thuận tiện bảo trì và tái sử dụng  Nhóm các hàm liên quan để dễ dàng cho việc tái sử dụng, giúp cho website

có khả năng duy trì cao hơn  Thuận tiện

 Django được xây dựng bằng Python nên dễ dàng chạy trên nhiều platform khác nhau

Ưu nhược điểm của Django

 Ưu điểm

 Django đơn giản và phát triển nhanh chóng  Hệ thống bảo mật tốt

 Phù hợp với mọi loại dự án website

 Đã xuất hiện khá lâu nên có cộng đồng người dùng lớn mạnh, dễ dàng cho việc debug hay sử dụng lại các tool mà người khác đã xây dựng trước  Các tài liệu thực sự nhiều và chi tiết

 Nhược điểm

 Chỉ định URL bằng quy tắc khiến người mới khó nắm bắt và nếu trong dự án nhỏ thì sẽ khá cồng kềnh

 Hiệu năng một vài tác vụ sẽ không tốt bằng các framework khác

2.2.3 Hệ quản trị cơ sở dữ liệu và PostgreSQL

Một hệ quản trị cơ sở dữ liệu quan hệ tổ chức lưu trữ dữ liệu theo mô hình dữ liệu quan hệ Một số đặc điểm của hệ quản trị cơ sở dữ liệu bao gồm:

 Dữ liệu được tổ chức chặt chẽ dưới dạng bảng, mà mối quan hệ được thể hiện qua các khóa

 Các thuộc tính được thể hiện bằng các cột, mỗi cột đều được đặt tên và được định nghĩa những ràng buộc về dữ liệu

Trang 23

dữ liệu SQL cho phép chúng ta xây dựng những câu truy vấn có phức tạp cao bằng hàm, stored procedure

 Ngoài ra tính nhất quán về mặt dữ liệu cũng được đảm bảo cao hơn trong hệ cơ sở dữ liệu quan hệ

 Hỗ trợ transaction với tính chất ACID (Atomic, Consistency, Isolation, Durability) [5]

Hiện nay các hệ cơ sở dữ liệu quan hệ đang được sử dụng rộng rãi với các ứng dụng khác nhau, mặc dù sự phát triển nhanh chóng của NoSQL nhưng hầu hết các hệ thống lớn nhỏ đều có thành phần sử dụng hệ cơ sở dữ liệu quan hệ Một số hệ cơ sở dữ

liệu quan hệ phổ biến bao gồm: MySQL, Oracle, SQL Server, PostgreSQL, Nhóm quyết định sẽ chọn PostgreSQL, vì sự quen thuộc và tính ứng dụng cao của nó

PostgreSQL đang là hệ cơ sở dữ liệu mã nguồn mở được sử dụng rộng rãi nhất PostgreSQL cho hiệu năng tốt và tính ổn định đã được chứng minh trong một thời gian

dài qua nhiều hệ thống thực tế Cộng đồng sử dụng lớn sẽ giúp cho quá trình xây dựng

và sửa lỗi diễn ra nhanh chóng và hiệu quả Đó là những lý do PostgreSQL được nhóm

chọn làm hệ cơ sở dữ liệu cho đề tài

2.2.4 Cloud và các dịch vụ tích hợp AWS - Amazon Web Services

AWS - Amazon Web Services là một nền tảng điện toán đám mây phát triển toàn

diện được cung cấp bởi Amazon Các dịch vụ AWS đầu tiên được cung cấp năm 2006

cho các trang web sử dụng các dịch vụ trực tuyến Các dịch vụ điện toán đám mây cung cấp nhiều loại cơ sở hạ tầng kỹ thuật trừu tượng và các công cụ điện toán phân tán

Những dịch vụ chính của AWS cung cấp như: lưu trữ, tính toán, phân phối mạng và nội

dung,công cụ phân tích, quản lý

AWS hoạt động dựa trên điện toán đám mây, vậy điện toán đám mây là gì? Điện

toán đám mây là việc phân phối các tài nguyên máy tính theo yêu cầu - tất cả mọi thứ từ các ứng dụng đến các trung tâm dữ liệu thông qua Internet trên cơ sở trả phí cho quá

trình sử dụng Đặc trưng mà AWS thể hiện:

 Tài nguyên đàn hồi - Quy mô mở rộng hay thu hẹp nhanh chóng và dễ dàng để đáp ứng các nhu cầu

 Dịch vụ đo đếm - Chúng ta sẽ chỉ cần trả phí cho những gì chúng ta sử dụng Không yêu cầu ký hợp đồng dài hạn hay phí trả trước

 Tự phục vụ - Tất cả tài nguyên CNTT bạn cần có quyền truy cập tự phục vụ Đầy đủ các tính năng kiểm soát và quản lý định danh

Đầy đủ - Nền tảng AWS ngày nay cung cấp hầu hết mọi nhu cầu sử dụng của

cá nhân hay của các doanh nghiệp trên toàn thế giới

 Bảo mật - Tính bảo mật của nền tảng đám mây được chứng minh tốt hơn

Trang 24

sẵn sàng cho quá trình chăm sóc và cung cấp dịch vụ tốt hơn

Sendgrid

Sendgrid là một nhà cung cấp dịch về gửi, nhận mail Các nhà phát triển ứng

dụng có thể đăng kí dịch vụ của Sendgrid và gọi các API của nó để thực hiện các thao

tác gửi, nhận mail Sendgrid cũng cung cấp nhiều chức năng khác cho phép nhà phát triển thiết kế mẫu email của mình, quản lí IP và người dùng [6],…

Phương thức thanh toán MoMo

Để thuận tiện cho việc thanh toán, gia hạn cho các tin đăng trong hệ thống nhằm

nâng cao quy mô sử dụng của người dùng, hệ thống PRP còn được tích hợp cổng thanh

toán trực tuyến bằng ví điện tử MoMo Một số ưu điểm của MoMo:

 Là một cổng thanh toán đang dần phổ biến và được rất nhiều người dùng ở thị trường Việt Nam

 Quá trình thanh toán dễ dàng, dễ tích hợp Nó còn được cung cấp từ đa dạng nguồn tiền như ngân hàng nội địa, Visa, Mastercard

 MoMo còn hỗ trợ thanh toán trên nhiều nền tảng khác nhau nên dễ dàng cho việc mở rộng sau này nếu cần thiết

Trang 25

CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG

3.1 Khảo sát các hệ thống liên quan

Để hiểu rõ hơn mục đích tại sao cần xây dựng hệ thống PRP, nhóm đã tiến hành

khảo sát một số hệ thống chuyên cung cấp các dịch vụ đăng tin bất động sản Nhóm đã khảo sát 2 hệ thống sau: https://batdongsan.com.vn và https://rever.vn

 Không cho đăng tin miễn phí

3.1.2 Hệ thống rever.vn

Hệ thống rever.vn là một website đăng tin bất động sản lớn, với nhiều dự án khủng, còn cung cấp nhiều dịch vụ khác hỗ trợ cho việc môi giới bất động sản tốt hơn

 Ưu điểm:

 Có nhiều thông tin dự án lớn

 Giao diện được thiết kế có tính responsive cao, hiển thị tốt trên nhiều loại màn hình – Hỗ trợ SEO tốt

 Giao diện và tính năng dễ hiểu, dễ dùng  Tích hợp tính năng chia sẻ qua mạng xã hội  Nhược điểm:

Trang 26

người dùng, tin đăng của hệ thống PRP

3.3 Phân tích nghiệp vụ

3.3.1 Trang dành cho người dùng

Các tính năng chính của trang dành cho người dùng được trình bày ở Hình 3.1

Trang 27

Tên usecase Đăng kí

Mô tả Người dùng muốn đăng kí để sử dụng các dịch vụ dành cho người có tài khoản

Tiền điều kiện Người dùng đang ở trang đăng kí Điều kiện thực hiện

thành công Hiển thị thông báo đăng kí thành công Luồng thực thi chính

1 Nhập thông tin cho các trường được yêu cầu

Bảng 3.1 Usecase đăng kí trên website

Mô tả Người dùng muốn đăng nhập vào hệ thống trên website để sử dụng các chức năng của hệ thống

Tiền điều kiện Người dùng đang ở trang đăng nhập Điều kiện thực hiện

Luồng ngoại lệ 3b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.2 Usecase đăng nhập trên website

Trang 28

Tên usecase Đăng xuất

Điều kiện thực hiện thành công Đăng xuất thành công và trở về trang chủ Luồng thực thi chính 1 Người dùng nhấn “Đăng xuất”

2a Đăng xuất thành công Luồng thay thế

Luồng ngoại lệ 2b Hiển thị lỗi nếu có

Bảng 3.3 Usecase đăng xuất trên website

mình

Điều kiện thực hiện thành công

Hiển thị thông tin cá nhân của người dùng Luồng thực thi chính 1 Người dùng chọn “Quản lí thông tin cá nhân”

2a Hiển thị thông tin cá nhân của tài khoản đã đăng nhập

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị lỗi nếu có

Bảng 3.4 Usecase xem thông tin cá nhân trên website

Trang 29

Tên usecase Chỉnh sửa thông tin cá nhân

Tiền điều kiện Người dùng đã đăng nhập và ở trang thông tin cá nhân Điều kiện thực hiện thành

công

Thông báo cập nhật thành công

Luồng thực thi chính 1 Chỉnh sửa những trường cần cập nhật

2 Nhấn “Lưu”

3a Cập nhật thành công Luồng thay thế

Luồng ngoại lệ 3b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.5 Usecase chỉnh sửa thông tin cá nhân trên website

Mô tả Người dùng muốn xem danh sách các bài đăng về bất động sản trên website

Tiền điều kiện Người dùng đang ở trang chủ hoặc những trang có thể thấy được navbar

Điều kiện thực hiện thành công

5a Hiển thị danh sách các bất động sản phù hợp với bộ lọc Luồng thay thế 1b Người dùng nhấn “Tìm kiếm” ở ô tìm kiếm nhanh của

Trang 30

Tên usecase Tìm kiếm danh sách tin tức

Mô tả Người dùng muốn xem danh sách các tin tức trên website

Tiền điều kiện Người dùng đang ở những trang có thể thấy được navbar Điều kiện thực hiện

thành công

Hiển thị danh sách tin tức

Luồng thực thi chính 1 Người dùng chọn một trong các danh mục tin tức trên thanh navbar

2a Hiển thị danh sách tin tức và các danh mục tin tức ở

đầu trang

3 Chọn danh mục tin tức ở đầu trang

4a Hiển thị danh sách tin tức phù hợp với danh mục tin tức đã chọn ở bước 3

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi 4b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.7 Usecase tìm kiếm danh sách tin tức trên website

Tiền điều kiện Người dùng đang ở trang danh sách bất động sản Điều kiện thực hiện thành

công

Hiển thị chi tiết về bất động sản

Luồng thực thi chính 1 Người dùng click vào một bất động sản trong danh sách

2a Hiển thị chi tiết bất động sản được chọn

Trang 31

Tên usecase Yêu cầu liên hệ lại

Mô tả Người dùng muốn gửi yêu cầu liên hệ lại trên một bài đăng bất động sản cho người đăng

Thông báo gửi yêu cầu thành công

Luồng thực thi chính 1 Người dùng click vào “Yêu cầu liên hệ lại”

2 Người dùng nhập các thông tin cần thiết

3 Nhấp “Gửi yêu cầu”

4a Gửi yêu cầu thành công Luồng thay thế

Luồng ngoại lệ 4b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.9 Usecase yêu cầu liên hệ lại trên website

Tiền điều kiện Người dùng đang ở trang danh sách tin tức Điều kiện thực hiện thành

công

Hiển thị chi tiết về tin tức

Luồng thực thi chính 1 Người dùng click vào một tin tức trong danh sách

2a Hiển thị chi tiết tin tức được chọn

Trang 32

Tên usecase Lưu bài đăng

Mô tả Người dùng muốn lưu lại một bài đăng bất động sản để xem sau

Trigger Người dùng muốn lưu bài đăng bất động sản

Tiền điều kiện Người dùng đang ở trang danh sách bất động sản hoặc trang chi tiết bất động sản

Điều kiện thực hiện thành công

Thông báo lưu bài đăng thành công

Luồng thực thi chính 1 Người dùng click vào button “Yêu thích” của một bất động sản

2a Lưu bài đăng thành công

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.11 Usecase lưu bài đăng trên website

Tiền điều kiện Người dùng đang ở trang có thể thấy được navbar Điều kiện thực hiện thành

công

Hiển thị danh sách bài đăng đã lưu

Luồng thực thi chính 1 Người dùng click vào button “Yêu thích” trên thanh navbar

2a Hiển thị danh sách tin đã lưu

Trang 33

Tên usecase Tạo bài đăng

Mô tả Người dùng muốn tạo bài đăng bất động sản

Trigger Người dùng muốn tạo bài đăng Tiền điều kiện Người dùng đã đăng nhập Điều kiện thực hiện

3a Tạo tin với loại tin miễn phí

4a Thông báo tạo tin thành công Luồng thay thế 3b Tạo tin với loại tin có phí

3b.1 Chuyển đến trang thanh toán 3b.2 Thanh toán

3b.3 Thông báo tạo tin thành công nếu thanh toán thành công hoặc tạo tin không thành công nếu thanh toán thất bại

Luồng ngoại lệ 4b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.13 Usecase tạo bài đăng trên website

Mô tả Người dùng muốn xem lại danh sách bài đăng của mình

Trigger Người dùng muốn xem lại danh sách bài đăng của mình

Điều kiện thực hiện thành công

Hiển thị danh sách bài đăng đã tạo

Luồng thực thi chính 1 Người dùng đến trang danh sách bài đăng của tôi 2a Hiển thị danh sách bài đăng người dùng đã tạo Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.14 Usecase xem danh sách bài đăng đã tạo trên website

Trang 34

Tên usecase Xem chi tiết bài đăng đã tạo

Trigger Người dùng muốn xem chi tiết một bài đăng của mình Tiền điều kiện Người dùng đã đăng nhập và đang ở trang danh sách bài

đăng của tôi Điều kiện thực hiện thành

công

Hiển thị chi tiết bài đăng của người dùng

Luồng thực thi chính 1 Người dùng chọn một bài đăng trong danh sách 2a Hiển thị chi tiết bài đăng

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.15 Usecase xem chi tiết bài đăng đã tạo trên website

Tiền điều kiện Người dùng đã đăng nhập và đang ở trang chi tiết bài đăng

Điều kiện thực hiện thành công

Thông báo chỉnh sửa thành công

Luồng thực thi chính 1 Người dùng thay đổi những thông tin cần cập nhật

Trang 35

Tên usecase Gia hạn bài đăng

Mô tả Người dùng muốn gia hạn thời gian xuất hiện trên website của một bài đăng

Tiền điều kiện Người dùng đã đăng nhập và đang ở trang chi tiết bài đăng của tôi

Điều kiện thực hiện thành công

Thông báo gia hạn thành công

Luồng thực thi chính 1 Người dùng chọn số ngày muốn gia hạn thêm

Bảng 3.17 Usecase gia hạn bài đăng trên website

Tiền điều kiện Người dùng đã đăng nhập và đang ở trang danh sách bài đăng của tôi

Điều kiện thực hiện thành công

Thông báo xóa bài đăng thành công

Luồng thực thi chính 1 Người dùng click button “Xóa” trên một bài đăng trong

danh sách bài đăng

2 Hiển thị popup xem xác nhận xóa

3a Chọn “Xác nhận”

4a Xóa bài đăng thành công Luồng thay thế 3b Chọn “Hủy”

3b.1 Tắt popup và không xóa bài đăng

Luồng ngoại lệ 4b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.18 Usecase xóa bài đăng trên website

Trang 36

Tên usecase Cập nhật trạng thái bài đăng

Mô tả Người dùng muốn cập nhật trạng thái của một bài đăng

Trigger Người dùng muốn cập nhật trạng thái của một bài đăng Tiền điều kiện Người dùng đã đăng nhập

Người dùng đang ở trang danh sách bài đăng của tôi

Bài đăng muốn cập nhật trạng thái đang có trạng thái là

“Đang hiển thị” hoặc “Đang ẩn”

Điều kiện thực hiện thành công

Thông báo cập nhật trạng thái bài đăng thành công

Luồng thực thi chính 1 Người dùng chọn menu mở rộng của bài đăng trên danh sách bài đăng

2 Người dùng chọn “Hiện bài đăng” hoặc “Ẩn bài đăng”

3a Cập nhật trạng thái bài đăng thành công Luồng thay thế

Luồng ngoại lệ 3b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.19 Usecase cập nhật trạng thái bài đăng trên website

Điều kiện thực hiện thành công

Hiển thị lịch sử thanh toán

Luồng thực thi chính 1 Người dùng chuyển đến trang lịch sử thanh toán

2a Hiển thị lịch sử thanh toán của người dùng

Trang 37

3.3.2 Trang dành cho quản trị viên

Các tính năng chính của quản trị được trình bày ở Hình 3.2

Trang 38

Tên usecase Đăng nhập

Tiền điều kiện Quản trị viên đang ở trang đăng nhập Điều kiện thực hiện thành

Bảng 3.21 Usecase đăng nhập trên trang quản trị

Tiền điều kiện Quản trị viên đã đăng nhập hệ thống

Điều kiện thực hiện thành công Đăng xuất thành công và trở về trang đăng nhập Luồng thực thi chính 1 Quản trị viên nhấn “Đăng xuất”

2 Đăng xuất thành công Luồng thay thế

Luồng ngoại lệ

Bảng 3.22 Usecase đăng xuất trên trang quản trị

Trang 39

Tên usecase Xem thông tin cá nhân

tài khoản của mình

Điều kiện thực hiện thành công Hiển thị thông tin cá nhân của quản trị viên

Luồng thực thi chính 1 Quản trị chọn “Quản lí thông tin cá nhân”

2a Hiển thị thông tin cá nhân của tài khoản đã đăng nhập

Luồng thay thế

Bảng 3.23 Usecase xem thông tin cá nhân trên trang quản trị

Trigger Quản trị viên muốn chỉnh sửa thông tin cá nhân Tiền điều kiện Quản trị viên đã đăng nhập và ở trang thông tin cá nhân Điều kiện thực hiện thành

công

Thông báo cập nhật thành công

Luồng thực thi chính 1 Chỉnh sửa những trường cần cập nhật

2 Nhấn “Lưu”

3a Cập nhật thành công Luồng thay thế

Luồng ngoại lệ 3b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.24 Usecase chỉnh sửa thông tin cá nhân trên trang quản trị

Trang 40

Tên usecase Xem thống kê website

Tiền điều kiện Quản trị viên đã đăng nhập Điều kiện thực hiện thành

công

Hiển thị thông tin thống kê

Luồng thực thi chính 1 Quản trị viên chuyển đến trang dashboard 2a Hiển thị thống kê của hệ thống

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3.25 Usecase xem thống kế website trên trang quản trị

Mô tả Quản trị viên muốn xem những danh mục bất động sản đang có trên website của mình

Trigger Quản trị viên muốn xem danh mục bất động sản Tiền điều kiện Quản trị viên đã đăng nhập

Điều kiện thực hiện thành công

Hiển thị danh sách các danh mục bất động sản

Luồng thực thi chính 1 Quản trị viên chuyển đến trang danh mục bất động sản 2a Hiển thị danh sách các danh mục bất động sản của hệ thống

Luồng thay thế

Luồng ngoại lệ 2b Hiển thị thông báo khi có lỗi và nguyên nhân gây ra lỗi

Bảng 3 26 Usecase xem danh mục bất động sản trên trang quản trị

Ngày đăng: 30/07/2024, 23:44